TECHNICAL WHITEPAPER

Settlement you can verify, not trust.

The architecture of MuTC's escrow-enforced OTC settlement: one isolated contract per trade, venue-signed authorization, and a Bitcoin settlement path that never takes a counterparty's word for anything.

01

Design principles

Three rules shape every component described in this paper.

02

One vault per trade

MuTC does not operate a single escrow contract holding everyone's funds. Every trade deploys its own dedicated escrow contract — a vault — created by a factory at the moment the trade is opened:

MuTCEscrowFactory.createTrade(...)
    └─ new MuTCTradeEscrow(feeBps, feeRecipient,
         partyA, partyB, tokenA, amountA, tokenB, amountB, deadline)
       → a fresh contract address that exists for this trade alone

The trade's terms — who the parties are, what each side owes, the deadline — are fixed in the vault's constructor as immutable state. Nothing can amend them afterwards: not the counterparty, not the venue, not the contract owner, because the vault has no owner and no admin functions. There is no upgrade path, no pause switch, and no function that moves funds anywhere except to the two parties named at creation (and the flat fee to the fee recipient).

Why per-trade isolation matters

PropertySingle shared contractPer-trade vault (MuTC)
Worst-case loss from one bugEverything the contract holds, across all usersOne trade's two legs
State interferenceAll trades share storage; accounting bugs cross tradesImpossible — each vault's storage holds one trade
Auditability of a tradeReconstructed from event logs among thousandsThe vault address is the trade — its full history is its own
Approval scopeUsers approve a contract that also serves strangersUsers approve a contract that serves exactly their trade

The factory keeps a registry mapping trade IDs to vault addresses and aggregates read-only views for the interface, but holds no funds itself and has no power over any vault after deployment.

03

Trade lifecycle

1 · CREATED

Vault deployed

Terms locked in the constructor. Both legs unfunded.

2 · FUNDING

Deposits arrive

Each party deposits exactly their leg. Wrong amounts revert.

3 · SETTLED

Atomic swap

The second deposit triggers payout of both legs in the same transaction.

✕ · UNWOUND

Refund paths

Timeout or mutual cancel returns every deposit to its owner.

Settlement is atomic: the transaction that completes funding is the same transaction that pays both sides. There is no state in which one party has been paid and the other has not.

Two unwind paths cover every other outcome:

Funds are never stranded. From any reachable state, each depositor has a path to either the swap or a full refund that requires no cooperation from MuTC.

04

Venue authorization

Creating a trade requires a signature from the venue's broker key over the exact terms:

termsHash = keccak256(factory, chainId, partyA, partyB,
                      tokenA, amountA, tokenB, amountB, deadline, nonce)
createTrade(...) requires ecrecover(termsHash, sig) == broker

This closes an attack class that pure permissionless escrow suffers from: reputation forgery. Without authorization, anyone can name an arbitrary address as counterparty in a trade the victim never agreed to, let it time out, and manufacture a public "no-show" against them — or collude between two of their own wallets to fabricate a flawless history. Both attacks were implemented and demonstrated against an unauthorized build of the contracts during internal review; the broker requirement eliminates them.

05

Payment engine

Fees

The fee is 0.40% (40 bps), taken once, on execution, split from each leg at payout. Cancelled and timed-out trades pay nothing, because nothing executed.

Token safety

Griefing-proof payouts

A counterparty whose address refuses incoming ETH cannot hold the swap hostage. If an ETH payout reverts, the vault credits it internally (owedEth) and completes the swap; the recipient withdraws the credit whenever they can accept it. Settlement of one leg is never blocked by the behavior of the other side's receiver.

06

Bitcoin settlement

Bitcoin has no smart contracts, so BTC legs settle through operator-mediated per-trade addresses under rules that mirror the vault model:

07

Self-custodied wallet

The built-in wallet is a standard hierarchical-deterministic wallet, not an exchange account. A 12-word BIP-39 seed is generated in the browser; Ethereum addresses derive from it directly and the Bitcoin address by BIP-84 (m/84'/0'/0'/0/0). Because the derivation is standard, the same 12 words open the same balances in any compliant wallet — the user's access to funds does not depend on MuTC existing.

08

Verifiability

Every settlement claim is independently checkable:

ClaimHow anyone verifies it
The deployed contract is the published sourceThe verification page compiles nothing and trusts nothing: the visitor's own browser fetches live bytecode from a public RPC and compares it against the published build, immutables masked.
A Bitcoin settlement paid what it claimsThe same page decodes any settlement transaction directly from public Bitcoin explorers — amounts, addresses, fee — with no MuTC server in the path.
The source history is realContracts, tests and CI run publicly at MuTC-tech/mutc-contracts; the audit workflow re-runs the full suite weekly and on every push.
A maker's funds existProof-of-funds badges on the board re-verify against mainnet balances every minute, and lapse when funds move away.
09

Trust model

Precision about what is trustless and what is not:

ComponentTrust required
EVM vault settlementNone. Atomicity, refunds and deadlines are enforced by contract code with no admin surface.
Vault refund pathsNone. Timeout reclaim needs no signature from MuTC or the counterparty.
Trade admissionThe broker key signs which trades open. It gates entry, never funds — a malicious broker could refuse service, not steal.
Bitcoin legsOperator-mediated within the published rules (per-trade keys, depth policy, dual-source checks). This is the trust cost of an unscriptable chain, stated plainly.
Wallet custodyNone. Keys derive and sign on the user's device under standard BIPs.

The table above is the complete trust surface — two named concentrations, stated plainly, and nothing else. MuTC's key policy binds both: any key that can touch real-asset settlement operates from hardware-backed custody with co-signing. Everything outside those two rows settles without trusting MuTC at all.

10

Security process

The contracts have been through an adversarial internal review in which each vulnerability class was implemented as a working attack before being fixed and regression-tested: reputation forgery, signature replay and malleability, re-entrancy, ETH-refusal griefing, phantom tokens, non-standard ERC-20s, Bitcoin reorg acceptance, single-oracle trust, and operator surplus capture. The full findings table, with severity and status for every item, is published on the contracts page.