Pause and unpause assets
Enable or disable all transfers for an asset via API.
Pausing an asset temporarily disables all transfers, minting, and burning operations. This is used for emergency stops, maintenance, or compliance holds.
For the web interface approach, see the user guide.
Prerequisites
- Platform URL (e.g.,
https://your-platform.example.com) - API key from a user with Emergency role on this asset (see Getting Started for API key setup)
- Wallet verification method enabled on your account (e.g., pincode or 2FA)
New assets start paused
Assets are automatically paused upon creation. You must unpause them before any transfers can occur.
Pausing an asset
Prepare pause request
Construct the API request to pause the asset:
curl -X PUT "https://your-platform.example.com/api/token/0x9459D52E60edBD3178f00F9055f6C117a21b4220/pause" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"walletVerification": {
"secretVerificationCode": "123456",
"verificationType": "PINCODE"
}
}'Asset address in path
The asset contract address is part of the URL path: /api/token/{tokenAddress}/pause
Execute pause
When you execute the request, the platform:
- Validates your permissions - Confirms you have Emergency role on this asset
- Verifies your wallet - Uses your pincode/2FA to authorize the blockchain transaction
- Pauses the asset - Sets the pause flag on-chain, blocking all transfers
Handle response
A successful response returns the updated asset data (showing key fields):
{
"id": "0x9459D52E60edBD3178f00F9055f6C117a21b4220",
"name": "ACME Holdings Common Stock",
"symbol": "ACME",
"decimals": 0,
"totalSupply": "1000",
"type": "equity",
"pausable": {
"paused": true
}
}The pausable.paused field confirms the asset is now paused. The response includes the full asset object with additional fields like accessControl, identity, and userPermissions.
Unpausing an asset
Prepare unpause request
Construct the API request to unpause the asset:
curl -X PUT "https://your-platform.example.com/api/token/0x9459D52E60edBD3178f00F9055f6C117a21b4220/unpause" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"walletVerification": {
"secretVerificationCode": "123456",
"verificationType": "PINCODE"
}
}'Execute unpause
When you execute the request, the platform:
- Validates your permissions - Confirms you have Emergency role on this asset
- Verifies your wallet - Uses your pincode/2FA to authorize the blockchain transaction
- Unpauses the asset - Clears the pause flag, enabling all transfers
Handle response
A successful response returns the updated asset data (showing key fields):
{
"id": "0x9459D52E60edBD3178f00F9055f6C117a21b4220",
"name": "ACME Holdings Common Stock",
"symbol": "ACME",
"decimals": 0,
"totalSupply": "1000",
"type": "equity",
"pausable": {
"paused": false
}
}The pausable.paused field confirms the asset is now active. The response includes the full asset object with additional fields like accessControl, identity, and userPermissions.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
walletVerification | object | Yes | Your wallet verification |
walletVerification.secretVerificationCode | string | Yes | Your 6-digit PINCODE or TOTP code |
walletVerification.verificationType | string | Yes | "PINCODE", "OTP", or "SECRET_CODES" |
What pausing affects
When an asset is paused, the following operations are blocked:
- User transfers - Normal wallet-to-wallet transfers
- Minting - Creating new units
- Burning - Destroying existing units
- Forced transfers - Administrative transfers
These operations continue to work while paused:
- Viewing balances - Read-only operations
- Checking compliance - Identity and claim verification
- Role management - Adding/removing administrators
- Pause/unpause - Can toggle pause state
All transfers stop
Pausing affects ALL asset holders immediately. Use sparingly and communicate with stakeholders.
Check pause status
Query the asset to see current pause state:
curl -X GET "https://your-platform.example.com/api/token/0x9459D52E60edBD3178f00F9055f6C117a21b4220" \
-H "X-Api-Key: YOUR_API_KEY"Response includes pause status in the pausable field (showing key fields):
{
"id": "0x9459D52E60edBD3178f00F9055f6C117a21b4220",
"name": "ACME Holdings Common Stock",
"symbol": "ACME",
"decimals": 0,
"totalSupply": "1000",
"type": "equity",
"pausable": {
"paused": false
}
}The response includes the full asset object with additional fields.
Troubleshooting
| Issue | Solution |
|---|---|
401 Unauthorized | API key is invalid, expired, or disabled |
403 USER_NOT_AUTHORIZED | Ensure your account has emergency role on this asset |
Asset already paused | Check status first, asset may already be paused |
Asset already unpaused | Check status first, asset may already be unpaused |
Cannot transfer while paused | Unpause the asset before attempting transfers |
Related guides
- Forced Transfer - Administrative transfers
- Mint Assets - Issue assets to investors