Executive Summary
Most compliance holds on a digital asset account are binary: an account is either open or frozen. JIL Sovereign's ledger service implements a third state - containment - sitting between the two. A contained account cannot move funds freely, but it is not fully seized either: it may send transfers only to destinations on a per-account recipient allowlist, only up to a capped amount per transfer, and only when the transfer carries a specific required memo value. Every one of those checks runs inside the ledger's own payment-application code, at the same execution point that validates balance and nonce - not in a separate policy service sitting in front of the chain.
The account exits containment only when the ledger receives a structured, quorum-signed release receipt bound to that specific account, carrying its own schema, an approvals commitment, a declared quorum, a timelock, and an activation signature. There is no administrative override that simply flips a flag: release is itself a gated, verifiable event.
Problem Statement
Compliance holds on financial accounts - sanctions screening flags, suspicious-activity investigations, AML holds - are conventionally implemented as a full freeze: every outbound transfer is blocked until the hold is lifted. That is operationally simple, but it produces real hardship for the account holder, who may be unable to pay rent, utilities, or legal counsel while an investigation runs its course, even when the underlying concern has nothing to do with those specific, ordinary payments. Regulators and licensing regimes have pushed back on over-broad freezes for exactly this reason, but most account infrastructure - and essentially all smart-contract "pausable" token designs - offers only the binary choice: fully open, or fully stopped.
Why Binary Freeze Models Fall Short
- Full account freeze: stops every outbound transfer, including rent, utilities, and counsel retainers unrelated to the underlying compliance concern.
- Pausable smart-contract tokens: a single global or per-account pause bit; no concept of a restricted, allowlisted subset of permitted activity.
- Off-chain policy engines in front of a ledger: a separate service intercepts and blocks transactions before they reach the chain, which means the restriction is only as strong as that external gate and is not itself part of the ledger's own consensus-enforced state.
- Manual bank account restrictions: case-by-case human review to permit specific payments, slow and unauditable at the protocol level.
Technical Architecture
Three Account States
| State | Outbound Transfers | Enforcement Point |
|---|---|---|
| Normal | Unrestricted, subject to standard balance and nonce checks | Ledger payment-application handler |
| Containment | Allowed only to allowlisted recipients, capped per transfer, memo must equal a required value | Same handler, three additional guards |
| Frozen | Hard stop - no outbound transfers of any kind | Same handler, first-checked guard |
Containment Transfer Guards
When a transfer originates from a contained account, the ledger evaluates three conditions before allowing the transaction to proceed, in this order: the destination account must be present in the account's lifeline_allowlist; if a lifeline_max_amount is set, the transfer amount must not exceed it; and the transfer's memo field must equal the literal value LIFELINE. Any failure returns a locked-account error and the transaction is rejected before it reaches balance debiting.
Setting and Releasing Containment
| Operation | Required Fields | Effect |
|---|---|---|
set_containment | account_id, reason, evidence_id, lifeline_allowlist, lifeline_max_amount | Flags the account contained and installs the allowlist/cap for that account |
release_containment | account_id, a containment_release_receipt matching a pinned schema version, with an approvals commitment, quorum descriptor, timelock, and activation signature | Clears the containment flag, reason, evidence pointer, allowlist, and cap in one atomic update |
The release receipt's schema is version-pinned (rejecting any receipt that does not declare the expected schema string) and its activation signature is verified before the ledger will clear containment, so the release path is itself an authenticated, auditable event rather than an administrative field write.
Relationship to Full Freeze
Containment and freeze are independently tracked states on the same account record, checked in a fixed order: a frozen account is rejected outright regardless of containment status, so freeze remains available as the harder stop for cases that warrant full seizure (for example, a confirmed compromise requiring an administrative clawback). Containment is reserved for the graduated case - an account under investigation or subject to a lesser hold - where blocking every dollar would be disproportionate to the underlying concern. The two states compose rather than compete: an operator can escalate a contained account directly to frozen without first releasing containment.
Prior Art Differentiation
| Approach | Granularity | Enforcement Layer | Auditable Release Gate? |
|---|---|---|---|
| Traditional AML/sanctions freeze | Binary (open/frozen) | Off-chain case-management system | Manual |
| Pausable smart-contract token | Binary pause bit | Contract-level flag | Admin key, unstructured |
| Off-chain policy engine in front of a ledger | Configurable, but external to consensus | Separate gateway service | Depends on gateway design |
| JIL Sovereign graduated containment | Allowlist + amount cap + required memo | Ledger execution layer, in-consensus | Quorum-signed, schema-versioned release receipt |