Current Best Practices

Hey folks,
We want to ensure our proposed architecture aligns with current best practices. Our requirements are modest:

  1. Provision external parties with unique root namespaces.
  2. Hold and transfer CC and CIP-56 tokens
  3. Set up pre-approvals for direct CIP-56 transfers.

To achieve this, we are planning to use:

  1. The CIP-56 standard.
  2. The Canton Admin API (for party provisioning) and the Ledger API (for balances and transfers)
  3. DA Registry and their pre-approvals.

Does this align with the latest recommended best practices and overall direction? Any feedback or course corrections would be greatly appreciated!

Looks like a good approach and plan there @berestovskyy

Some good-to-know points here:

  • For external parties with unique root namespaces…you’d want the External Signing / Party Allocation flow not just the generic Admin API. This is in the doc as it specifically handles generating the namespace from the external key and submitting the PartyToParticipant topology transaction: External Signing: Party Onboarding - Canton Network Docs

  • Good on using cip56 but just a headsup that there is new v2 of token standard, you can read about changes that came from here: Token Standard V2 DevNet is live - #39 by Simon_Meier

  • Do check AmuletRules_CreateTransferPreapprovalvia External Signing for your Preapproval approach.

Overall good research on prepping for the direction, looks right!!

Thanks a lot for the feedback and the links! I’ve seen V2. Do you have any insights on when it will be available on the TestNet or MainNet?

Please, note that these pre-approvals are specific to Amulet.

For DA Registry assets, a different pre-approval template is required (see Registry Utility - Transfer Preapproval API Example — Digital Asset’s platform documentation).

For DA Registry, we are currently working on implementation of Token Standard V2.

Thanks,

Matteo