---
title: "Verify and link wallet"
method: POST
path: "/v0/siwe/verify"
tags: ["Wallet Access"]
---

# Verify and link wallet

`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

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.

## Request body

- SiweVerifyRequest
  - `address` string, required: Wallet address claimed by the EIP-4361 message.
  - `message` string, required: Complete EIP-4361 message containing the issued nonce, wallet, domain, URI, chain ID, and issued-at timestamp.
  - `signature` string, required: Hexadecimal signature over the complete EIP-4361 message.
  - `domain` string: Optional assertion that must exactly match the domain in the signed message.
  - `chainId` integer: Optional assertion that must match the chain ID in the signed message.

## Response `201`

Verified and linked wallet.

- object
  - `data` SiweVerifyResponse, required
    - `wallet` string, required: Verified lowercase wallet address.
    - `walletBinding` 'verified_via_siwe', required: Proof-backed wallet binding method.
    - `verifiedAt` string, date-time, required: Time the proof was accepted and consumed.
  - `meta` ResponseMeta, required
    - `apiVersion` string, required
    - `requestId` string, required: Correlation ID for support and debugging.

## Other responses

- `400`: Malformed wallet verification input.
- `401`: Missing or invalid API credential, or invalid, expired, replaced, consumed, or mismatched SIWE proof.
- `402`: The authenticated Shodai account has paid_required entitlement mode for the requested scope. Per-call x402 settlement is not implemented. Treat this as an entitlement/operator issue.
- `403`: The credential lacks the required OAuth scope, the account lacks entitlement, or the account cannot access the resource.
- `409`: The wallet belongs to another Shodai account.

---

[API](https://skmtc.dev/shodai/apis/agreements-api.md) · [All operations](https://skmtc.dev/shodai/apis/agreements-api/llms.txt) · [OpenAPI document](https://skmtc.dev/shodai/apis/agreements-api/revisions/0ac329d0e9a0?raw)
