Security Model Overview
All core contracts extend OpenZeppelin’s audited upgradeable libraries (AccessControl2StepUpgradeable, ERC20Upgradeable, ERC20PermitUpgradeable, Initializable). Stablecoin OFT contracts are independently audited. 10 distinct roles enforce separation of duties. Critical pairs are split by design (pauser vs unpauser, minter vs burner, fee admin vs token mint authority). EIP-7201 namespaced storage eliminates storage collision risks during upgrades. Proxy contracts must be deployed and initialized atomically to prevent front-running. Multiple independent enforcement layers (pause, rate limit, allowlist, fee) operate simultaneously. Compromise of one layer does not disable the others.Compliance Features
KYC/AML Enforcement via Allowlist
The three-mode allowlist system directly supports compliance workflows:
Mode transitions can be performed instantly by
DEFAULT_ADMIN_ROLE without requiring contract upgrades.
Fund Recovery for Regulatory Actions
TherecoverFunds() function enables compliance-mandated seizures:
DEFAULT_ADMIN_ROLE).
Workflow:
- Compliance team blacklists the target address via
BLACKLISTER_ROLE - Default admin calls
recoverFunds()to move tokens to a designated custody address
Per-Destination Controls
Per-destination pause (PauseByID) enables targeted responses when a specific chain requires isolation — whether for regulatory reasons, security incidents, or maintenance:
- Pause transfers to/from a specific destination chain
- Maintain normal operations on all other chains
- No contract upgrade required
Audit Trail via Events
Every state-changing operation emits an indexed event:
All events are indexed where applicable, for off-chain monitoring and reporting.
Threat Model
Monitoring
Deploy off-chain monitoring for:Next Steps
- RBAC Reference for the complete role-to-function matrix
- Architecture for the system design overview