What you can do through the API
Step 1: Set up the Fireblocks SDK
Install the Fireblocks SDK in your system; proofs are created and retrieved from your code. See TypeScript SDK.Step 2: Get a UUID from TRUST
Request address ownership in TRUST (CreateAddressOwnership). TRUST returns a UUID that ties the proof to your request.
Step 3: Create the proof of address
Accepts an optional
Idempotency-Key header, valid for 24 hours.
The request returns 400 if you send address for an asset other than BTC or BTC_TEST, or if the address does not belong to the vault account for this asset.
Prove a derived address (UTXO-based assets)
By default, Fireblocks proves the default address of the asset wallet. For UTXO-based assets (BTC and BTC_TEST), an asset wallet can have several deposit addresses. To prove one of the others, a derived address, pass it as address.
- List the addresses of the asset wallet with Get addresses (Paginated). Copy the address you want to prove, exactly as listed.
- Create the proof with that address:
prefix + address + trustUuid, with no separators, using the key of that address. Both the SegWit and the Legacy form of an address are accepted. You cannot choose your own derivation path: only addresses that already exist in the vault account can be proven.
Step 4: Retrieve the signature and submit it to TRUST
Poll the GET endpoint with thetransactionId from Step 3 until the transaction is signed. It always returns 200 with transactionId and status; signature and publicKey are included only once the transaction is signed.
TRUST requires the
publicKey for SUI, TON, and XTZ. For BTC and BTC_TEST, the signature is Base64 text of v, r, and s (65 bytes), where v is the recovery value plus 31.
The proof is complete when TRUST responds VALID.
Supported blockchains
Blockchains supported for TRUST proof of address
Blockchains supported for TRUST proof of address
Testnet variants of these chains are also supported, for example
ETH_TEST5 and BTC_TEST.Limitations
- Proof of address uses the default address of the vault account. For
BTCandBTC_TEST, you can prove a derived address of the vault account withaddress. For other assets, other deposit addresses cannot be verified. - Only addresses that already exist in the vault account can be proven. You cannot set a custom derivation path.
- TRUST has no screening policy; it covers proof of address only.
- TRUST is an external network, not operated by Fireblocks.