/v1/wallets/ and require a bearer token.
Names are trimmed and unique per user without case, including archived wallets. Signup creates
Your EVM Wallet and Your Solana Wallet. Later forms propose EVM N or Solana N, where N
is one more than the active and archived regular wallet count in that family. A Polymarket Deposit
Wallet stores no name. Reads display Polymarket - <linked EVM wallet name>, which changes when the
linked EVM wallet is renamed. Users cannot name or rename a Polymarket Deposit Wallet. Regular
wallet names cannot start with Polymarket - without case.
List User Wallets
GET /v1/wallets/list returns active wallets, or []. Set archived=true to list archived wallets.
Balances include token identity, decimals, exact
amountRaw, and session agentHoldings.
Refresh Balances
POST /v1/wallets/refresh requires account.write. Send one walletId or {} for all active
wallets. The walletIds response confirms queued observations, not completion. Missing wallets
return 404; missing enrollment rejects the request. Poll the wallet list for state and failures.
Create a Polymarket Deposit Wallet
POST /v1/polymarket/deposit-wallets requires wallet.sign. Send controllerWalletId and an
optional idempotencyKey. It returns the account, or 502 with the operation error. Reuse the key
for duplicate delivery; use a new key after failure. Deployed wallets skip deployment.