Pilot environment: testnet, simulated yield, mocked fiat rails — read the disclosure
Beneficiaries

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).

GET
/api/partner/v1/beneficiaries/{beneficiaryId}/instruments/{iid}/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).

AuthorizationBearer <token>

In: header

Path Parameters

beneficiaryId*string

The destination id.

iid*string

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"}