Skip to main content

Suspension and Freezing

General Provisions and Scope

The DEUSS platform includes robust on-chain administrative controls to halt, suspend, or freeze specific assets, entities, or trades in response to security incidents, compliance breaches, or legal orders.

These operations are strictly role-gated on-chain. Depending on the severity and scope of the required intervention, the DEUSS Backoffice or Validator teams can invoke different types of freezes.

Types of On-Chain Suspensions and Freezes

1. Bond Suspension (BondRegistry)

  • Target: A specific Bond issue (ISIN + Version).
  • Role Required: SUSPEND (and UNSUSPEND to revert).
  • Mechanism: The BondRegistry.suspendBond() function changes the bond's global state to Suspended.
  • Impact: Once a bond is suspended, it halts major lifecycle operations across the platform until it is explicitly reactivated using unsuspendBond(). It restricts further minting, trading, and certain corporate actions.

2. Entity Type Freezing (EntityRegistry)

  • Target: An entire class of entities (Entity Type).
  • Role Required: ENTITY_TYPE_MANAGER.
  • Mechanism: The EntityRegistry.freezeEntityType() function permanently freezes an entity type classification.
  • Impact: This prevents the entity type metadata from being further modified or updated.

3. Entity Suspension (EntityRegistry)

  • Target: A registered company/entity.
  • Role Required: GUARD.
  • Mechanism: The EntityRegistry.setEntityStatus() function with EntityStatus.DISABLED.
  • Impact: Disables the entire entity on-chain, preventing all associated wallets and smart accounts from executing platform-level actions.

4. Wallet / Account Suspension (EntityRegistry)

  • Target: A specific user wallet or smart account.
  • Role Required: GUARD.
  • Mechanism: The EntityRegistry.setAccountStatus() function with AccountStatus.DISABLED.
  • Impact: Disables the specific wallet on-chain. This does not freeze the tokens themselves but prevents the wallet from interacting with core DEUSS contracts (e.g., placing offers, executing transfers).

5. Token Balance Freezing (DEUSSToken)

  • Target: A specific user's wallet balance for a particular bond.
  • Role Required: TOKEN_FREEZER_ROLE.
  • Mechanism: Invokes the freezing logic to lock a specific amount of tokens in the user's wallet.
  • Impact: The frozen tokens remain in the user's wallet (visible in their balance) but cannot be transferred, sold, or escrowed. This is commonly used for compliance holds or vesting locks. (Note: The FORCE_TRANSFER_ROLE can override this freeze if a regulatory seizure is required).

6. Marketplace & Orderbook Freezing (Offers, Deals, Orders, Trades)

  • Target: Specific active trades, orders, offers, or pending deals.
  • Role Required: FREEZE_ROLE.
  • Mechanism:
    • In Marketplace: setOfferFrozen() and setDealFrozen().
    • In OrderbookMarketplace: setOrderFrozen() and setTradeFrozen() (requires an explicit reason hash).
  • Impact: Freezing an offer or deal blocks normal progression, settlement, and payout. The locked escrow cannot be released or rerouted by normal participants. It is often used as a prerequisite step before a forced administrative seizure (seizeDeal / seizeTrade) can be executed by an arbitrator.

Sequence Diagrams

The following diagrams illustrate how authorized administrators trigger these various protective freezes on the blockchain.

Bond Suspension

Entity/Wallet Suspension

Token Balance Freezing

Marketplace Trade Freeze