Multisig Wallets

Reveal the enrollment nonce

The candidate reveals the nonce it committed to at enrollment. Accepted only during a live challenge, only on the candidate’s own row, and only if it reproduces the commitment. Once revealed, the 4-digit code is derivable and the validator can confirm it.

post/v1/multisig-wallets/{walletId}/signers/{signerId}/reveal

Request

  • Base URL: https://api.prod.keyban.io
  • URL: https://api.prod.keyban.io/v1/multisig-wallets/{walletId}/signers/{signerId}/reveal
  • 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

signerIdstring uuid required

The caller’s own enrollment

Request body

nonceCstring required

The 32-byte nonce whose HMAC the candidate published as the enrollment commitment. Accepted only after a challenge and only if it reproduces that commitment.

Example request

{
  "nonceC": "0x1111111111111111111111111111111111111111111111111111111111111111"
}

Response

Nonce revealed

idstring uuid required

Entity UUID

createdAtstring date-time required

Creation date (ISO 8601)

updatedAtstring date-time required

Last update date (ISO 8601)

status'requested' | 'validated' | 'active' | 'failed' required

Enrollment status: requested (address bound, awaiting a peer validation), validated (counts towards the threshold), active (in the on-chain signer set, can sign), failed (on-chain add exhausted its retries).

signerType'eoa' | 'webauthn' required

Kind of key behind this signer: eoa (20-byte secp256k1 address) or webauthn (84-byte P-256 passkey signer). Derived from the identity, never stored.

addressstring nullable

ERC-7913 identity of the signing key: a 20-byte EVM address for an eoa signer, the 84-byte verifier ‖ qx ‖ qy bytes for a webauthn one. Withheld while requested: the SAS a validator must type derives from it, so serving it here would let any client compute the code instead of reading it off the candidate's phone — the whole point of the comparison. Revealed once validated.

validatorNoncestring nullable

The challenge nonce, once a validator has challenged this enrollment. The candidate app reads it to derive the 4-digit SAS it displays; null before a challenge and after the ceremony settles.

validatedAtstring date-time nullable required

When a peer validated this enrollment. Null while requested.

Example response

{
  "status": "active",
  "user": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Jeanne Martin",
    "email": "jeanne.martin@example.com",
    "image": "https://example.com/avatar.png"
  },
  "signerType": "eoa",
  "address": "0x36bc36646e0f00e567a126e116f0d1a0dc21c810",
  "validatorNonce": "0x2222222222222222222222222222222222222222222222222222222222222222"
}

Changes

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