Register a signer key

Register a signer (session) key for an account. The account authorises the signer and the signer proves consent, so this requires two EIP-712 signatures.

Prerequisites:

  1. GET /v1/auth/eip712-domain — EIP-712 domain (name, version, chainId, verifyingContract = Authorization contract). Both signatures use this same domain.
  2. GET /v1/nonce-state/{account}nonce_anchor and current_bitmap_index. Send them back as nonce_anchor / nonce_bitmap_index and sign the exact same values.

1. Account signs RegisterSigner:

RegisterSigner(address account,address signer,string message,uint32 expiration,uint48 nonceAnchor,uint8 nonceBitmap)

Struct hash: keccak256(abi.encode(TYPEHASH, account, signer, keccak256(bytes(message)), expiration, nonceAnchor, nonceBitmap))

2. Signer signs VerifySigner:

VerifySigner(address account,uint48 nonceAnchor,uint8 nonceBitmap)

Struct hash: keccak256(abi.encode(TYPEHASH, account, nonceAnchor, nonceBitmap))

Signature encoding: account_signature and signer_signature are 0x-prefixed hex strings. This differs from permit.signature on the trading endpoints, which is a protobuf bytes field and is therefore base64 in JSON.

Idempotent: if the signer is already active, the call is a no-op and returns success: true with an empty transaction_hash.

Failure modes: a wrong struct or field order fails signature recovery. A nonceAnchor other than the current anchor or the current anchor + 1 reverts with InvalidNonceAnchor, which looks like a nonce bug but is usually a mismatch between the signed and submitted values.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string

Account address in hex format (0x...)

string

Signer address in hex format (0x...)

string

Arbitrary message to be included in the signature

string

Bitmap nonce anchor (uint48) from GetNonceState

string

Unix timestamp when the signer registration expires

string

EIP712 signature from account (65 bytes hex)

string

EIP712 signature from signer (65 bytes hex)

int64

Bitmap index within the nonce anchor epoch (0-207)

string

Optional label to identify this signer key

Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json