Wallet Access

Verify and link wallet

Verifies a signed EIP-4361 message and links the wallet to the authenticated Shodai account. OAuth bearer tokens require agreements.write; API keys require the equivalent account entitlement. Verification proves control only: it does not transfer custody or authorize Shodai to sign agreement inputs.

post/v0/siwe/verify

Request

  • Base URL: https://test-api.shodai.network
  • URL: https://test-api.shodai.network/v0/siwe/verify
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Request body

addressstring required

Wallet address claimed by the EIP-4361 message.

messagestring required

Complete EIP-4361 message containing the issued nonce, wallet, domain, URI, chain ID, and issued-at timestamp.

signaturestring required

Hexadecimal signature over the complete EIP-4361 message.

domainstring

Optional assertion that must exactly match the domain in the signed message.

chainIdinteger

Optional assertion that must match the chain ID in the signed message.

Example request

{
  "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
  "message": "api.example.com wants you to sign in with your Ethereum account:\n0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\n\nProve control of this wallet to Shodai.\n\nURI: https://api.example.com\nVersion: 1\nChain ID: 59141\nNonce: 0123456789abcdef0123456789abcdef\nIssued At: 2026-08-07T20:00:00.000Z",
  "signature": "0x1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
  "domain": "api.example.com",
  "chainId": 59141
}

Response

Verified and linked wallet.

Example response

{
  "data": {
    "wallet": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
    "walletBinding": "verified_via_siwe",
    "verifiedAt": "2026-08-07T20:01:00.000Z"
  },
  "meta": {
    "apiVersion": "v0"
  }
}

Changes

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