Transfers become envelopes.
The core primitive is not just sender, recipient, and amount. It is an escrowed instruction with lifecycle rules.
T3 is a reference implementation for programmable transfer envelopes: value movements that carry issuer attribution, expiration behavior, dispute handling, and settlement context on a permissioned bank ledger.
It is not a production-audited product, a deposit claim, or a legal opinion. It is a worked argument in code: which controls should a bank-ledger payment primitive be able to express?
The rail does not make policy disappear. It gives policy a place to live.
T3 is easiest to evaluate when the story moves from primitive, to accountability, to activation gates.
The core primitive is not just sender, recipient, and amount. It is an escrowed instruction with lifecycle rules.
Issued value can remain linked to the responsible institution, so cross-bank movement does not collapse into an ambiguous pooled balance.
Banking capacity and settlement features are present for review, but disabled by default until counsel, controls, and operations are ready.
This release does not claim FDIC insurance, regulator approval, production readiness, settlement-finality guarantees, or a complete compliance program.
Read the documented gatesA payment primitive is only serious if it can describe what happens when the transfer is wrong, disputed, abandoned, or still waiting on fiat confirmation.
A corporate payment is sent to the wrong party. In the reference design, the transfer can sit inside a governed envelope window instead of becoming an immediate blind balance update.
Our founder lost $44,000 in minutes. No bank, no regulator, and no blockchain had a remedy—so we engineered one.
Designs a reversible transaction primitive that keeps instant settlement while offering an authorized recall window.
Implements 41-facet upgradeability so every control—rules engine, programmable fee reserves, SmartLock—stays modular and auditable.
41 facets and 1,545 passing tests, running against a permissioned Hyperledger Besu consortium, published under Apache-2.0 with the open legal and compliance questions documented rather than omitted.
Read how the origin story informs T3’s mission, governance philosophy, and relentless focus on protecting consumers.
Explore Our StoryThe modules are easiest to understand as support for the envelope model, not as disconnected product claims.
Transfers can carry expiration behavior, dispute handling, manual holds, and finalization paths.
Issued value can remain tied to the responsible institution so settlement accounting is reviewable.
Scoped policy checks, allow/deny lists, and observation mode let reviewers separate plumbing from compliance program claims.
Forty-one facets keep the implementation modular while preserving a single programmable fiat surface.
See the HalfLife demo, selector maps, and policy modules inside the T3Token Diamond.
Start here if you evaluate payment rails, risk controls, settlement accountability, or counsel gates.
A transfer that carries its own terms: when it expires, what happens if nobody accepts it, who may dispute it, and which institution issued the money.
A defined period after a transfer during which an authorised party can unwind it. After the window closes, it is final.
The transaction-screening engine scores every payment and blocks nothing, so you can see what it would have stopped before it stops anything.
Every unit of money on the ledger records which member institution issued it, so liabilities can be tracked and substituted between institutions.
The ledger runs across nodes operated by known, admitted members. There is no public mempool, no anonymous explorer and no unknown validator.
The two banking features - issuance capacity and settlement - are implemented, tested, and disabled by default. An administrator has to deliberately turn each one on.
The envelope gives a governed reversal path a native state transition instead of leaving recovery entirely to external operations.
AUTO_REVERSE can make the default outcome "nothing happened" when no recipient accepts the transfer in time.
Rules can be evaluated at network, institution, and wallet scope without creating a second ledger of exceptions.
The issuer, terms, and lifecycle are part of the record rather than reconstructed later from disconnected systems.
The important turns are the constraints that forced simplification, not the number of features accumulated.
A governed reversal window means holding per-transfer state for the length of that window. On Ethereum mainnet that made the core premise uneconomic, which is why the contracts moved to Avalanche and the fee logic was rebuilt around it. A safety feature nobody can afford to use is not a safety feature.
Rules, jurisdictions and counterparties all move. A monolithic contract turns each change into a redeployment and a balance migration. The Diamond standard (EIP-2535) made facets individually replaceable without touching stored balances — and made contract-size limits a permanent constraint to engineer around.
Built for a public chain, the design accumulated masked balances, commitment-only events and blinding primitives. On a permissioned consortium there is no public mempool, no anonymous explorer and no untrusted validator — so that machinery was removed rather than ported. Deleting sophisticated work is harder than adding it.
Transfers are scored against weighted rules at three scopes — network, institution and wallet - with Merkle-proof allow and deny lists so screening lists scale without bloating on-chain storage. An observation mode scores everything and blocks nothing, so an institution can shadow-run the engine against real traffic before it stops a single payment.
The published release documents its gaps rather than omitting them. Both banking feature gates ship off by default. The admin UI, the payments gateway and the MCP tooling were held back from v1.0.0 as not yet release-caliber and are tracked as open issues with scoped effort estimates. The legal and compliance questions a deployment would need to answer are catalogued in the repository, not buried.
That is the contribution on offer: not a protocol to adopt, but a worked example of the trade-offs — published somewhere people can disagree with it.
If autonomous systems can initiate spend, the rail needs bounded authority, fail-safe defaults, intervention windows, and attribution.
AUTO_REVERSE envelope ends with the money back where it
started rather than gone.
Every envelope declares an expiration behaviour. AUTO_REVERSE means a transfer
that is not affirmatively accepted within its window reverses itself — the
failure mode is "nothing happened", not "money is gone". HOLD_UNTIL_MANUAL keeps
funds in escrow pending explicit release, and ORACLE_CONDITIONAL gates release on
an external callback. An agent can be given the fail-safe behaviour by default and the
finalising one only where a human has signed off.
The rules engine scores transfers at three scopes — network, institution and wallet — so an agent's wallet can carry its own weights, its own allow and deny lists, and its own velocity window without changing policy for anyone else. Caps are first-class: daily ceilings, outstanding-value limits and a configurable velocity window already exist because banks needed them, not because agents did.
Observation mode scores every transfer and blocks nothing. Point an agent at a consortium devnet, let it run, and read what the engine would have stopped — before it has the authority to stop anything. Delegating spend to a non-deterministic system without that rehearsal step is not a policy anyone should sign off on.
Every issuance is attributed to a specific institution and every envelope records its issuer, so "which agent, acting for which institution, moved this" is answerable from the ledger rather than reconstructed from logs. Agents also do not need to hold gas: ERC-2771 meta-transactions let a relayer submit on their behalf, so an agent's key authorises intent without also being a funded account.
The component that would actually let an AI agent drive these contracts — an MCP server exposing them as tools — exists and was deliberately held back from v1.0.0. Its write path currently defaults to enabled with no allowlist, no confirmation step and no caps, which is the wrong default for any tool an autonomous system can call. Hardening that is tracked in the open rather than quietly shipped.
The claim here is narrow and deliberate: the primitives an agentic payment rail needs are implemented and tested, because a fraud-recovery system needs the same ones. The agent-facing surface on top of them is not finished. Both halves of that are worth knowing.
For banks, fintech architects, counsel, and builders who want to challenge the envelope model before anyone talks about activation.