Enforcement

Freeze, release, clawback and pause are how an issuer enforces the law on its asset. Each is a contract call that the administering vault's quorum signs, carries a reason code, and leaves a public on-chain event.

Updated 08 Nov 20263 min read

Enforcement is run from the asset's Controls tab and from the actions menu. Frozen and restricted addresses are listed on the left of the Controls tab, with their balance, reason and case; the enforcement history is on the right.

#Freezing a holder

Required permissions: Manage compliance (MANAGE_COMPLIANCE).

  1. Open the asset and select Freeze a holder.
  2. Enter the target: an address, or a single outpoint (txid:vout).
  3. Select the reason.
  4. Enter the case reference from your case management system. It is required.
  5. Select Request freeze.

The freeze is proposed for signing. Once the vault's quorum signs it, the target's balance cannot move. Freezing an outpoint pins that balance whoever tries to spend it. Freezing an address blocks it as a sender and holds back any balance sent on its behalf. Freezes stay in force while an asset is paused, and SQRL Enterprise refuses to build a movement from a frozen sender before any transaction exists.

#Freeze reasons

CodeReason
1Sanctions screening hit
2Law-enforcement request
3Suspected fraud
4Source of funds unverified
5Court order
6Internal investigation

#Releasing a holder

Select the frozen target on the Controls tab, choose a release reason and case reference, and select Request release.

CodeReason
101Cleared after review
102False positive
103Case closed, no finding
104Court order lifted
105Law-enforcement request withdrawn
info:

What goes on chain

The reason code is written on chain with the call. The case reference is recorded with the action in SQRL Enterprise and the audit log, and kept off-chain, so the public record shows what happened and why without naming the case.

#Clawback

A clawback forcibly transfers a frozen balance to a recovery vault. You can then burn it, or return it when a case is resolved.

Required permissions: a compliance officer requests the clawback; it is submitted under Burn tokens (BURN_TOKENS) and signed by the administering vault's quorum, with a different operator approving.

  1. Select the frozen holder on the Controls tab and select Clawback.
  2. Check the amount and select the recovery vault.
  3. Select the reason code (clawbacks use the freeze reasons) and enter the case reference.
  4. Submit for approval. The approval chain shows who proposed and who must sign.
warning:

A clawback is irreversible once broadcast and emits a public on-chain event.

#Pausing an asset

Required permissions: Pause tokens (PAUSE_TOKENS).

Select Pause asset, choose a reason from your code book and submit. Once signed, every transfer of the asset halts until a pauser selects Resume and the resume is signed. Freezes and clawbacks still work while an asset is paused.

Key takeaway

Every enforcement action is proposed by one operator, approved by the quorum, reason-coded on chain and recorded with its case in the audit log. An issuer can show regulators exactly what it did, and holders can see that it happened.

Was this page helpful?