Multisig Wallets

Add a treasury contact

Name a destination so the treasury can transfer to it. Reserved to a signer holding an active key here: naming an address is the durable trust decision, where a transfer is only a proposal that the signature threshold still gates. The address is stored lowercase, and a mixed-case input has its EIP-55 checksum verified — a hand-retyped address fails it. It cannot be changed afterwards: archive the contact and add a new one, which is what puts "never used" back in front of the signers.

post/v1/multisig-wallets/{walletId}/contacts

Request

  • Base URL: https://api.prod.keyban.io
  • URL: https://api.prod.keyban.io/v1/multisig-wallets/{walletId}/contacts
  • Auth: one of:
    • API key in header X-Api-Key
    • bearer (a scheme the document does not define)

Path parameters

walletIdstring uuid required

The unique identifier of the multisig wallet

Request body

labelstring required

Name to give this destination.

addressstring required

Destination address, 0x-prefixed 20 bytes. Stored lowercase; a mixed-case input has its EIP-55 checksum verified on the way in.

Example request

{
  "label": "Prestataire Acme",
  "address": "0xcb0c0dca4246bb0f6b3309d64e7e35002cc3af1f"
}

Response

Contact added

idstring uuid required

Entity UUID

createdAtstring date-time required

Creation date (ISO 8601)

updatedAtstring date-time required

Last update date (ISO 8601)

labelstring required

Name a signer gave this destination. What one picks in the transfer form, and what the signer app shows instead of a bare address.

addressstring required

Destination address, 0x-prefixed 20 bytes. Stored lowercase; a mixed-case input has its EIP-55 checksum verified on the way in.

archivedAtstring date-time nullable required

When the contact was retired. An archived contact can no longer receive a transfer, but still names the past transfers that went to it. Null while it stands.

lastUsedAtstring date-time nullable required

When a transfer to this contact last EXECUTED — never when one was merely opened, so a cancelled transfer does not make an address look familiar. Null means never used, which the signer app calls out.

Example response

{
  "label": "Prestataire Acme",
  "address": "0xcb0c0dca4246bb0f6b3309d64e7e35002cc3af1f"
}

Changes

No recorded changes to this operation across all 1 revision of this API.