Managing External Pause Lists
Learn how to create and manage external pause contracts that can control multiple asset tokens simultaneously.
Overview
External Pause Lists are on-chain smart contracts that enable coordinated pausing across multiple assets. Instead of pausing each token individually, institutions can pause or unpause hundreds or thousands of assets at once through a single external pause contract.
Key Features
- Centralized Pause Control: Pause multiple assets simultaneously from a single contract
- Institutional Use Cases: Ideal for platforms managing multiple tokens
- Emergency Response: Quick response to security incidents or regulatory requirements
- System Maintenance: Coordinate upgrades across all linked assets
- Legal Compliance: Meet regulatory requirements for coordinated halts
Use Cases
Multi-Asset Platforms
- Tokenization platforms managing hundreds of securities
- Institutional issuers with multiple bond series
- Corporate entities with various equity classes
Emergency Situations
- Security vulnerabilities requiring immediate pause
- Regulatory investigations affecting all assets
- System-wide upgrades or maintenance
Coordinated Operations
- Platform-wide bug fixes across all assets
- Synchronized system updates
- Legal requirements for simultaneous halts
How External Pause Works
Architecture
Each asset token can be linked to multiple external pause contracts. Before executing any operation, the asset checks:
- Internal Pause: Is the asset individually paused?
- External Pause Contracts: Is any linked external pause contract active?
If either the internal pause is enabled or any external pause returns isPaused() = true, the asset is paused.
┌─────────────────────────────────────────────────────────────┐
│ Asset Operation │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────┐
│ Check Internal Pause │
└────────┬────────────────┘
│
▼
┌─────────────────────────┐
│ Check External Pause 1 │
└────────┬────────────────┘
│
▼
┌─────────────────────────┐
│ Check External Pause 2 │
└────────┬────────────────┘
│
▼
┌─────────────────────────┐
│ Any Pause Active? │
│ YES → Block │
│ NO → Allow │
└─────────────────────────┘
How External Pause Status Works
When you create an external pause list, it has a simple activated/deactivated status:
Status: Activated
- All assets linked to this external pause list are paused
- No transfers or operations are allowed on linked assets
- Toggle to "Deactivated" to resume operations
Status: Deactivated
- All assets linked to this external pause list operate normally
- Transfers and operations are allowed (subject to other restrictions)
- Toggle to "Activated" to pause all linked assets
Prerequisites
- ATS web application running and accessible
- Hedera wallet connected with sufficient HBAR
- PAUSE_MANAGER_ROLE on assets you want to link
- Understanding of your pause management requirements
Accessing External Pause Lists
- Navigate to the ATS web application
- Click on "External Pause" in the sidebar menu

Creating or Importing External Pause Lists
You have two options to add an external pause list:
Option 1: Create New External Pause
Creates a new external pause list by deploying a smart contract automatically.
Steps:
- Click "Create" button
- Provide list details:
- List Name: Descriptive name (e.g., "Platform Maintenance Pause", "Emergency Stop")
- Description (optional): Purpose of this pause mechanism
- Configure initial status - you will be asked to choose:
- Activated: Anything linked to this pause list will be paused immediately
- Deactivated: Assets linked to this pause list will operate normally - Recommended for initial setup
- Click "Deploy" or "Create"
- Approve the transaction in your wallet
- The contract is deployed and appears in your External Pause list
What happens:
- A new external pause contract is deployed on-chain
- You become the manager of this pause contract
- The contract address is displayed (0x... or 0.0.xxxxx)
- You can now link assets to this pause list
Understanding Activated vs Deactivated:
- If created ACTIVATED: Any asset you link to this pause list will be paused immediately. All operations on those assets will be blocked until you deactivate the pause list.
- If created DEACTIVATED: Assets linked to this pause list will continue to operate normally. You can activate the pause later when needed.
Tip: Start with "Deactivated" status, link your assets first, then activate when needed.
Option 2: Import Existing External Pause
Use an existing external pause list by importing its contract ID.
Steps:
- Click "Import" button
- Enter the Contract ID: Hedera contract ID (0.0.xxxxx) or EVM address (0x...)
- Click "Import"
- Approve the transaction in your wallet
- The external pause list appears in your list
Use cases:
- Use a pause contract deployed by another team member
- Connect to a platform-wide pause mechanism
- Share pause controls across multiple organizations
Note: When importing, you may have view-only access unless you have admin permissions on the imported contract.
Linking External Pause Lists to Tokens
After creating or importing an external pause list, you need to link it to your security tokens.
Steps:
- Navigate to your security token from the dashboard
- Go to the "Control" tab
- Select the "External Pause" section
- Click "Add External Pause" button
- Select the external pause list from the dropdown
- Click "Add" to confirm
- Approve the transaction in your wallet
Required Role: You must have PAUSE_MANAGER_ROLE on the token to link external pause lists.
Managing External Pause Contracts
View All External Pause Contracts
The External Pause dashboard displays all your pause contracts:
Table Columns:
- Address ID: Contract address (0x... or 0.0.xxxxx)
- Status: Active (paused) or Inactive (not paused)
- Toggle Icon: Click to activate/deactivate pause
- Delete Icon: Remove the pause contract
Activate/Deactivate Pause
To Activate Pause (pause all linked assets):
- Locate the pause contract in the table
- Click the toggle icon to activate
- Confirm the transaction in your wallet
- All linked assets are immediately paused
To Deactivate Pause (resume operations):
- Locate the pause contract in the table
- Click the toggle icon to deactivate
- Confirm the transaction in your wallet
- All linked assets resume normal operations (if not paused internally)
Warning: Activating a pause affects all assets linked to this contract. Ensure you understand the impact before toggling.
Delete External Pause Contract
To Remove a Pause Contract:
- Ensure all assets are unlinked from this contract
- Click the delete icon next to the contract
- Confirm deletion
- Contract is removed from your list
Important: You cannot delete a pause contract while assets are still linked to it. Unlink all assets first.
Linking External Pause to Assets
During Asset Creation
When creating a new equity or bond token, you can link external pause contracts:
In Step 3: External Lists Configuration
- Navigate to the Pause List section
- Select external pause contracts from the dropdown
- Click Add to link to the new asset
- Review linked pauses before deployment
See the asset creation guides for details:
After Asset Deployment
You can link external pause contracts to existing assets:
Prerequisites:
- You must have PAUSE_MANAGER_ROLE on the asset
Steps:
- Navigate to the asset details page
- Click the "External Pause" tab (in Control Tabs section)
- View currently linked external pause contracts
To Add External Pause Contracts:
- Click "Add external pause" button
- A modal appears with a dropdown
- Select external pause contracts to link (can select multiple)
- Click "Add" to confirm
- Approve transaction in your wallet
- Contracts are now linked to the asset
To Remove External Pause Contracts:
- In the External Pause tab, select contracts from the list (left column checkboxes)
- Click "Remove items selected" button
- Confirm removal
- Approve transaction in your wallet
- Contracts are unlinked from the asset
Roles and Permissions
PAUSE_MANAGER_ROLE
This role is required to manage external pause links on an asset:
Permissions:
- Add external pause contracts to the asset
- Remove external pause contracts from the asset
- View linked external pause contracts
Does NOT Grant:
- Ability to activate/deactivate the external pause contract (requires pause contract ownership)
- Ability to pause the asset internally (requires PAUSER_ROLE)
PAUSER_ROLE
This is a different role that controls the asset's internal pause:
Permissions:
- Pause/unpause the asset individually
- Does not affect external pause contracts
See Roles and Permissions for complete role details.
Best Practices
For Institutions Managing Multiple Assets
Use External Pause for:
- Platform-wide emergency stops
- Coordinated system maintenance
- Regulatory compliance across all assets
- Bug fixes affecting multiple tokens
Strategy:
- Create one external pause contract per platform/category
- Link all relevant assets to the contract
- Use multi-signature wallet to control the pause
- Document pause procedures and responsibilities
- Test pause activation in non-production environment first
Security Recommendations
Access Control:
- Use multi-signature wallets for production pause contracts
- Limit pause contract control to authorized personnel only
- Implement time-locks for pause deactivation (if needed)
Testing:
- Test pause activation on testnet first
- Verify all linked assets respond correctly
- Document rollback procedures
Documentation:
- Maintain list of all assets linked to each pause contract
- Document who has authority to activate pause
- Create runbooks for emergency pause scenarios
Operational Guidelines
Before Activating Pause:
- Notify stakeholders and users
- Verify reason for pause is valid
- Document the incident or maintenance reason
- Ensure technical team is ready for resolution
During Pause:
- Communicate status to users
- Work on resolution/maintenance
- Test fixes in isolated environment
- Prepare for reactivation
After Deactivating Pause:
- Verify all assets are operating correctly
- Monitor for issues post-reactivation
- Document resolution and lessons learned
- Update procedures if needed
Common Scenarios
Scenario 1: Platform-Wide Upgrade
Situation: You need to upgrade smart contracts for 500 tokens
Solution:
- Link all 500 tokens to a single external pause contract
- Activate pause before upgrade
- Perform upgrades on all contracts
- Test thoroughly
- Deactivate pause to resume operations
Benefit: Single action pauses all assets instead of 500 individual pauses
Scenario 2: Security Incident
Situation: Security vulnerability discovered affecting all assets
Solution:
- Immediately activate external pause (linked to all assets)
- All assets halt operations instantly
- Investigate and develop fix
- Deploy fix to all affected contracts
- Deactivate pause after verification
Benefit: Instant response across entire platform
Scenario 3: Regulatory Investigation
Situation: Regulator requires halt of all trading pending investigation
Solution:
- Activate external pause linked to all regulated assets
- Provide regulator with proof of halt
- Maintain pause during investigation period
- Deactivate when cleared by regulator
Benefit: Compliance with regulatory requirements
Scenario 4: Multiple Pause Categories
Situation: You have equities and bonds that need separate pause controls
Solution:
- Create External Pause A for all equity tokens
- Create External Pause B for all bond tokens
- Link each asset type to its respective pause contract
- Pause by category as needed
Benefit: Granular control over different asset types
Common Issues
External Pause Not Working
Problem: Activating external pause doesn't pause the asset
Solutions:
- Verify asset is correctly linked to the pause contract
- Check pause contract implements
IExternalPauseinterface correctly - Ensure
isPaused()method returnstruewhen activated - Verify transaction was confirmed on-chain
Cannot Remove External Pause
Problem: Unable to unlink external pause from asset
Solutions:
- Verify you have PAUSE_MANAGER_ROLE on the asset
- Check wallet has sufficient HBAR for transaction
- Ensure you're selecting the correct pause contract
- Try removing one contract at a time instead of bulk removal
Asset Still Paused After Deactivation
Problem: Asset remains paused after deactivating external pause
Solutions:
- Check if asset is paused internally (separate from external pause)
- Verify no other linked external pause contracts are active
- Confirm deactivation transaction was successful
- Check pause contract status in block explorer
Wrong Assets Linked
Problem: Accidentally linked wrong assets to pause contract
Solutions:
- Navigate to each affected asset
- Go to External Pause tab
- Remove the incorrect pause contract link
- Link to correct pause contract if needed
Monitoring and Auditing
Track Pause History
What to Monitor:
- When pause was activated/deactivated
- Who triggered the pause
- Which assets were affected
- Duration of pause periods
Tools:
- Blockchain explorer for transaction history
- Asset dashboard for current status
- External monitoring systems for alerts
Alert Configuration
Recommended Alerts:
- External pause activated
- External pause deactivated
- Asset linked to new external pause
- Asset unlinked from external pause
Next Steps
- Creating Equity Tokens - Link external pause during equity creation
- Creating Bond Tokens - Link external pause during bond creation
- Managing External KYC Lists - Investor verification lists
- Managing External Control Lists - Transfer control lists
- Roles and Permissions - Understanding PAUSE_MANAGER_ROLE