Capability matrix
| Standard | pause | freeze |
|---|---|---|
| QRC-20 | Template-dependent | Template-dependent |
| QRC-721 | Template-dependent | Template-dependent |
| QRC-1155 | Template-dependent | Template-dependent |
| QRC-1400 | Yes (controller) | Yes (per-investor) |
| QRC-3643 | Yes | Yes (per-identity) |
| QRC-4626 | Template-dependent | No |
| QRC-3525 | Template-dependent | No |
POST /v1/tokens/{tokenId}/pause
Pause all transfers, mints, and burns on the token contract.
| Aspect | Detail |
|---|---|
| Authentication | Bearer API key |
| Required permissions | tokens:pause plus the on-chain PAUSER role |
| Idempotency | Idempotency-Key header required |
| Approval policy | Required |
| Blockchain effect | Contract call to pause() |
| Webhook events | token.paused, token.operation_failed |
Example response (202)
POST /v1/tokens/{tokenId}/unpause
Resume activity. Webhook events: token.unpaused, token.operation_failed. Same request envelope as pause.
POST /v1/tokens/{tokenId}/freeze
Freeze a single account so it cannot send or receive the token.
| Required permissions | tokens:freeze plus the on-chain FREEZER role |
| Webhook events | token.frozen, token.operation_failed |
Request body
POST /v1/tokens/{tokenId}/unfreeze
Release a freeze. Webhook events: token.unfrozen, token.operation_failed.
Errors
| Code | Type | Meaning |
|---|---|---|
| 1703 | TOKEN_NOT_DEPLOYED | Token has no on-chain contractAddress. |
| 1704 | TOKEN_OPERATION_NOT_ALLOWED | Standard or template does not support pause or freeze. |
| 1708 | TOKEN_ROLE_REQUIRED | Caller lacks the on-chain PAUSER or FREEZER role. |
| 1200 | POLICY_DENIED | Approval policy denied the operation. |
| 1201 | APPROVAL_REQUIRED | Approval is required and was not yet granted. |
| 1601 | IDEMPOTENCY_CONFLICT | Same Idempotency-Key reused with different body. |