Verify ownership with a wallet signature
Complete a WALLET_SIGNATURE challenge by submitting the signature the
wallet produced for the challenge’s messageToSign. The message must be
signed exactly as returned, and the signature must be submitted before
the challenge’s expiresAt — after expiry, start a new challenge.
On success the account moves to ACTIVE; on an invalid signature it
moves to UNVERIFIED (start a new challenge to retry). LIVENESS
challenges complete asynchronously and never use this endpoint — their
outcome is delivered via EXTERNAL_ACCOUNT.STATUS_UPDATED webhooks or by
polling the account.
Authorizations
API token authentication using format <api token id>:<api client secret>
Path Parameters
External account ID
Body
Completes a WALLET_SIGNATURE challenge by submitting the signature the wallet produced for the challenge's messageToSign.
The signature produced over the exact messageToSign — EIP-191 hex for EVM chains, base64 for Bitcoin, base58-encoded Ed25519 for Solana.
"0x52d75f01c9e7b8b2ce2fbcbd21bfeeee7bcd1a2f01ce6b8ad9a67a45e83a8f5d1c"
Bitcoin message-signing format. Defaults to bip137; use electrum for Electrum/Sparrow wallets. Ignored for non-Bitcoin chains.
bip137, electrum Response
Signature valid; the updated external account is returned with status: ACTIVE.
The system generated identifier of this account
"ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965"
Status of the external account
PENDING, ACTIVE, PENDING_OWNERSHIP_VERIFICATION, UNVERIFIED, UNDER_REVIEW, INACTIVE "ACTIVE"
The ISO 4217 currency code
"USD"
- AED Account
- BDT Account
- BRL Account
- BWP Account
- CAD Account
- COP Account
- DKK Account
- EGP Account
- EUR Account
- GBP Account
- GHS Account
- GTQ Account
- HKD Account
- HTG Account
- IDR Account
- INR Account
- JMD Account
- KES Account
- MWK Account
- MXN Account
- MYR Account
- NGN Account
- PHP Account
- PKR Account
- RWF Account
- SGD Account
- SLV Account
- THB Account
- TZS Account
- UGX Account
- USD Account
- VND Account
- XAF Account
- XOF Account
- ZAR Account
- ZMW Account
- SWIFT Account
- Base Wallet
- Ethereum L1 Wallet
- Lightning
- Polygon Wallet
- Plasma Wallet
- Solana Wallet
- Spark Wallet
- Tron Wallet
- CNY Account
The customer this account is tied to, or null if the account is on behalf of the platform.
"Customer:da459a29-1fb7-41ce-a4cb-eb3a3c9fd7a7"
Optional platform-specific identifier for this account
"acc_123456789"
Whether the external account belongs to the customer themselves (FIRST_PARTY) or to someone else (THIRD_PARTY). Required when creating self-custody crypto wallet external accounts on platforms subject to counterparty requirements — for example, under the EU Travel Rule or similar requirements in other regions; recommended for all other accounts, where providing it can unlock additional capabilities and smoother compliance handling.
FIRST_PARTY, THIRD_PARTY "FIRST_PARTY"
Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer.
false
The result of verifying the beneficiary name against the account holder name
MATCHED, PARTIAL_MATCH, NOT_MATCHED, UNSUPPORTED, CHECKED_BY_RECEIVING_FI, PENDING Verified beneficiary data returned by the payment rail, if available