On Canton, the receiver must accept an incoming transfer before the funds settle. You choose for each Canton wallet whether Fireblocks accepts incoming transfers automatically or you approve each one yourself. This article explains both options and how to accept or reject an incoming transfer.
Why Canton asks the receiver to accept transfers
Unlike most public blockchains, Canton sends each incoming transfer as an offer that the receiver accepts or rejects. This is part of the Canton protocol. It lets you apply compliance controls at the receiving end and refuse unwanted or unrecognized transfers.
Choose how a wallet handles incoming transfers
You set this when you create a Canton wallet, on the Configure Canton incoming transactions step. See Create a Canton Wallet.
Pre approval wallet (automatic acceptance)
Incoming transactions are approved automatically. This is the default and is recommended for most users.
Approval wallet (manual approval)
Incoming transactions wait until an authorized user accepts or rejects them in the Console or through the API. This is useful for high-value institutional flows.
You cannot change a wallet's type after you create it.
You can control who can accept or reject offers with an Offer response Policy rule. See Canton Policy Rules.
How approval works
An incoming offer creates a pending transaction in your workspace.
An authorized user reviews the offer and accepts or rejects it. The response is signed and sent to the Canton Network.
If you accept and the response is signed, the transfer completes and the funds are credited to your wallet.
If rejected, no settlement occurs and the sender keeps the funds.
Transfer offers expire if you do not respond within 24 hours. Other offer types, such as allocations, can have different expiry times.
Accept or reject in the Console
Open the pending incoming transaction from the activity panel.
Review the transaction details.
Select the Accept (check mark) or Reject (X) icon on the transaction.
In the Accept incoming transfer offer or Reject incoming transfer offer dialog, review the details, then select Accept transaction or Reject transaction.
Sign the response transaction.
Accepting or rejecting creates a transaction that must be signed, like any other Fireblocks transaction: in the Fireblocks mobile app, with the API Co-signer, or with your own signing setup such as KeyLink.
You start accepting or rejecting in the Console or through the API. In the Fireblocks mobile app, you can only sign the response.
Accept or reject through the API
To accept or reject an offer through the API, see Answer an offer in the Developer Docs.
Transaction statuses
Situation |
Status |
Sub-status |
|---|---|---|
Waiting for your response |
Confirming |
Pending receiver response |
Accepted, after the response is signed |
Completed |
|
Rejected |
Cancelled |
Rejected by receiver |
Expired |
Failed |
Receiver approval timed out |
Withdrawn by the sender |
Cancelled |
Sender has withdrawn the offer |