Agent Wallet Signers

Submit a FROST signer for on-chain registration

Called by the agent (via MCP) after FROST DKG. Enqueues a job that broadcasts SchnorrAccount.registerSigner(frostBytes, signature) to consume the on-chain commitment and add the agent as a signer. The signature must be made by the corresponding KEYBAN_INVITE_KEY over keccak256(abi.encode(chainId, walletAddress, frostBytes)). Returns immediately with a jobId — poll GET /agent-wallets/register-signer/:jobId for status. A registration is attempted up to 3 times (2 retries, exponential backoff from 2 s); one the contract rejects for good (malformed signature or signer already registered) fails without retry.

post/v1/agent-wallets/register-signer

Request

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

Request body

frostBytesstring required

ERC-7913 signer bytes for the FROST signer (84 bytes): frostVerifier || abi.encode(pkX, pkY)

signaturestring required

ECDSA signature (65 bytes, r || s || v) over keccak256(abi.encode(chainId, walletAddress, frostBytes)), signed with KEYBAN_INVITE_KEY

Response

Job enqueued. Poll GET /agent-wallets/register-signer/:jobId for completion.

jobIdstring

Changes

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