Skip to content

Canton Pre-Approving Assets

On the Canton Network, addresses are identified by a party ID, and incoming transfers are not credited automatically — the recipient must accept each incoming transfer before the assets are settled into the vault. Instead of approving every incoming transfer individually, you can pre-approve an asset so that future incoming transfers of that asset are accepted automatically, without a manual claim per transfer.

Pre-approval operations are created through the Create Transaction endpoint using the canton_transaction type, with the specific operation selected by the nested details.type field. Fordefi supports Canton Coin (CC), the native asset, and any asset based on the CIP-56 token standard.

Pre-approving assets

Approving every incoming transfer individually can be cumbersome. Instead, you can create a one-time pre-approval for a specific asset so that subsequent incoming transfers of that asset are auto-accepted, without a manual claim per transfer.

Submit a canton_pre_approval_setup request and specify the asset_identifier you want to pre-approve.

Pre-approve a CIP-56 token

A CIP-56 token is identified by its instrument ID — the address (party ID) of the instrument provider together with the instrument id within that provider's namespace.

{
  "signer_type": "api_signer",
  "type": "canton_transaction",
  "vault_id": "your_canton_vault_id",
  "details": {
    "type": "canton_pre_approval_setup",
    "asset_identifier": {
      "type": "canton",
      "details": {
        "type": "cip56_token",
        "token": {
          "address": {
            "chain": "canton_mainnet",
            "account": "45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf"
          },
          "id": "the_instrument_id"
        }
      }
    }
  },
  "note": "Pre-approve incoming transfers of a CIP-56 token"
}

Pre-approve the native asset

To pre-approve incoming transfers of the native asset (Canton Coin), use the native asset identifier.

{
  "signer_type": "api_signer",
  "type": "canton_transaction",
  "vault_id": "your_canton_vault_id",
  "details": {
    "type": "canton_pre_approval_setup",
    "asset_identifier": {
      "type": "canton",
      "details": {
        "type": "native",
        "chain": "canton_mainnet"
      }
    }
  },
  "note": "Pre-approve incoming transfers of the native asset"
}

Once the pre-approval is set up, incoming transfers of the specified asset are accepted automatically, and you no longer need to submit a canton_approve_transfer request for each one.