Fetch an ownership-proof challenge
The message the wallet's key signs (personal_sign, EIP-191) to prove the payee controls the address. Valid for 15 minutes and only for this destination. Offered for a wallet whose address is shared by several networks (addressFamily set).
The message the wallet's key signs (personal_sign, EIP-191) to prove the payee controls the address. Valid for 15 minutes and only for this destination. Offered for a wallet whose address is shared by several networks (addressFamily set).
Authorization
bearer In: header
Path Parameters
The destination id.
The instrumentId of the wallet destination.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/partner/v1/beneficiaries/string/instruments/string/ownership-proof/challenge"{ "data": { "expiresAt": "2026-09-02T10:15:30.000Z", "message": "Three Comma Bank: I control this wallet and its private key.\nAddress: 0x8Ba1f109551bD432803012645Ac136ddd64DBA72\nPayee method: 1d7a9f42-6b05-4e83-a2c1-8f3b0d6e4c97\nNonce: 3f9c0a…\nExpires: 2026-10-21T10:30:30.000Z" }, "success": true, "timestamp": "2026-09-02T10:15:30.000Z"}Submit an ownership proof POST
Send the challenge message and the wallet's signature of it. A valid proof sets ownership.proven and recomputes extensible.
Fetch one destination by id GET
The destination in its current state — where it stands in the lifecycle, and whether a payout may name it right now (usable). A destination belonging to any other principal answers 404 rather than 403, so an id cannot be probed for existence. Removed destinations stay readable, with deletedAt set.