Skip to main content

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

The recoverFunds() function enables compliance-mandated seizures:
Prerequisite: Blacklist mode must be active (set by DEFAULT_ADMIN_ROLE). Workflow:
  1. Compliance team blacklists the target address via BLACKLISTER_ROLE
  2. Default admin calls recoverFunds() to move tokens to a designated custody address
The constraint that _from must not be allowlisted ensures recovery cannot be used against compliant users. The function reverts with CannotRecoverFromAllowlisted if attempted.

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