Prerequisites
- A Qustody tenant with the relevant permissions:
tokens:create,tokens:deploy,tokens:mint,tokens:roles:grant,tokens:compliance:update,tokens:allowlist:write,tokens:freeze. - An identity / KYC provider that produces verifiable references for each holder.
- A multi-approver approval policy attached to the token’s admin vault.
Step 1 — Pick a standard
The rest of this guide uses
QRC-3643.
Step 2 — Configure the token
Step 3 — Deploy
token.deployed.
Step 4 — Define roles
Grant on-chain roles to the operating vault accounts:BURNER, FREEZER, COMPLIANCE_OPERATOR.
Step 5 — Configure permissioned-transfer rules
Step 6 — Manage the allowlist
For every eligible holder:Step 7 — Mint to eligible holders
TOKEN_COMPLIANCE_RESTRICTION_FAILED indicates the recipient is not currently allowed.
Step 8 — Freeze and unfreeze
When required (legal hold, fraud, AML follow-up):POST /v1/tokens/{id}/unfreeze.
Step 9 — Audit trail
Every operation produces an audit-log entry. Verify the chain with:GET /v1/token-operations?tokenId={id} for a per-token operation history.
Wording for stakeholders
- Good — “Permissioned QRC-3643 tokens enforce policy-controlled, compliance-aware transfer rules.”
- Bad — “QRC-3643 tokens are automatically legally compliant.”