Skip to main content
POST
/
v1
/
wallets
/
{address}
Register wallet
curl --request POST \
  --url https://api.calmtreasury.xyz/v1/wallets/{address} \
  --header 'Content-Type: application/json' \
  --cookie calm_session= \
  --data '
{
  "first_name": "Ada",
  "last_name": "Lovelace",
  "email": "ada@example.com"
}
'
{
  "wallet": "0xaabbccddeeff00112233445566778899aabbccdd",
  "status": "active",
  "has_accepted_terms_of_service": true
}

Authorizations

calm_session
string
cookie
required

Session cookie issued by POST /v1/session/{address}. Sent automatically by the browser; the SDK uses credentials: 'include'.

Path Parameters

address
string
required

Ethereum address (0x-prefixed, 40 hex chars). Lowercased server-side before binding.

Pattern: ^0x[a-fA-F0-9]{40}$
Example:

"0xaabbccddeeff00112233445566778899aabbccdd"

Body

application/json
first_name
string
required
Required string length: 1 - 100
Example:

"Ada"

last_name
string
required
Required string length: 1 - 100
Example:

"Lovelace"

email
string<email>
required
Example:

"ada@example.com"

Response

Registered

Wallet-scoped customer state. Notable status values are not_started, incomplete, under_review, active, rejected; other values may also appear and should be treated as opaque strings.

wallet
string
required
Pattern: ^0x[a-fA-F0-9]{40}$
Example:

"0xaabbccddeeff00112233445566778899aabbccdd"

status
string
required

Identity-verification status. active means the user is fully verified and can transact. Branch on this value as a string.

Example:

"active"

has_accepted_terms_of_service
boolean
required

Whether the user has accepted the Terms of Service.

Example:

true