TRACT
That passphrase didn't verify. Try again.
TRACT
The thesis · June 2026

Advertising never had market infrastructure.
TRACT is building it.

A functioning market needs three things: price discovery, a clearing mechanism, and trust in the record. Advertising has had none of them working properly — and a stack of technologies grew up extracting a toll at each point where the market function was missing.

The three missing functions

Built as neutral infrastructure, not tolls

trust in the record

Attest

The gap it fills: the verification industry — each vendor selling one side a favourable read.
A signed, tamper-evident, independent record of delivery: this slot, this page, this creative, this time, this deal. Produced by neither transacting party.
clearing

Settle

The gap it fills: month-end CSV-and-email reconciliation, AR chase, disputed-invoice limbo.
Trades settle deterministically against the parties' own agreed terms — a pure function of the deal and the counts, with a thin clearing fee on volume.
price discovery

See outcomes

The gap it fills: publishers sell into a void and never learn what their inventory produced.
Symmetric per-trade outcome facts, and above them the attested index — the population tape no single participant can assemble alone.
The "ad tech tax" is the cost of the market's absence, paid to whoever stood in the holes. When the infrastructure exists, the toll layers collapse — and that value does not transfer into TRACT's pocket. It returns to participants as the market prices correctly. The tax is dissolved, not inherited. (ADR-0006)
Neutrality

Neutrality is the product, not a constraint

prohibited

No position in any trade

TRACT never buys, sells, matches, bids, or finances off its own balance sheet. An exchange operator who also trades is disqualified from clearing neutrally. (ADR-0001)

prohibited

No scores, ever

TRACT captures raw signed evidence and carries vendor-attested scores through. The moment it computes its own number it becomes the seventh measurement vendor — and forfeits the rail. (ADR-0002)

prohibited

No identity, ever

Both sides reconcile through the impression_id TRACT minted — never a user ID. TRACT is the one party in the chain that structurally cannot build the identity graph. That inability is the product. (ADR-0004)

These three prohibitions are what make the neutrality auditable — anyone can read the rules and verify TRACT cannot be secretly arming one side. Every lucrative-looking adjacent move resolves the same way: TRACT is the layer underneath the move, never a player in it.

Price discovery, reframed

Attention is an option, not a commodity

Oil has a settled spot price before refining — intrinsic, buyer-independent. Attention is the opposite: it has no intrinsic value until converted, and its value is entirely buyer-dependent. The same impression in front of a high-net-worth reader is worth 50× more to a wealth manager than to a razor brand. Attention is a right to attempt a conversion — priced like an option. So the price surface is two-dimensional: inventory × buyer-category, never inventory alone. Tap a cell:

The attested conversion rate is the shared, indexable component — the tape. The buyer's payoff (margin, LTV) is private, never indexed. An options exchange publishes implied volatility; it does not publish what any trader's book is worth.
The finance model

An exchange revenue model, not a transaction-fee model

At every mature exchange the per-trade fee is the anchor, not the profit centre. CME and ICE earn more from data and access than from match fees. The test every line must pass: invariant to trade outcome. If a fee changes with how a trade resolves, TRACT has taken a position. Tap a stream to expand:

The end-state

One-to-many, agent-to-agent

The agentic shift matters because autonomy finally creates a consumer fast enough to act on attested outcome data at the speed it is produced — a human repricing on conversions is a quarterly negotiation; an agent repricing on them is a continuous closed loop. The market dictates a dense many-to-many graph of buy and sell agents. Intermediation (auction, arbitrage, matching-for-a-clip) collapses; the three market functions remain. That dense topology is precisely where a neutral settlement layer is most load-bearing.

The honest caveat — TRACT does not win every branch. It is robust across market-structure branches (brands in-house, agencies-become-agents, the long messy middle, full A2A). It is not robust against integrity failure. The entire value rests on the attested record being believed, and trust is exactly what bad actors attack. Defending the integrity of the attestation chain is not a feature — it is the thing the build most has to get right.
Where the build is

MVP complete. Verified green. Moving.

Distance to first revenue

The MVP is not 70% done — it is done: every PRD-MVP requirement met, the suite green, the contrast live. The distance that matters now is MVP → first paying pilot, tracked below from the documents and the code. Weights are fixed; the percentages are my read — edit any you disagree with and the headline follows.

pilot-ready
Beyond this milestone, by design at 0%: Phase 2 money movement (gated on the regulated partner) · Phase 3 financing · Phase 4 the index.
Shipped & tested
seller sdk · 11 modulesbuyer sdk · pixelattestation engine (go)settlement core + visibilityadcp adapterchain of trustmandate scope enforcementtrading relationshipss2s ed25519 keyshash-chained ledgeroperator uimcp agent toolsconformance suiteci + smoke scripts

Full Go suite green. make demo reproduces the case-6 contrast end-to-end on a real browser impression.

The phased road
Phase 1 · now
Attest + settle
The rail. Figure + signed record; no money movement yet.
Phase 2
Money movement
Clearing via a regulated partner (Column / Cross River).
Phase 3
Financing
Receivables on the attested chain — partner capital, never TRACT's.
Phase 4
The index
The population tape, served to agents at latency.
Seeing is believing

One media transaction, buy side to sell side.
Run it both ways.

The same campaign, the same divergent self-reports — seller says 1,000,000, buyer says 750,000, 25% apart against a 10% tolerance. Without an independent record that is a standoff. With one, it settles, and billing becomes arithmetic. These are the live numbers from the engine's own demo (make demo).

Seller self-report
TRACT attested · independent
Buyer self-report

Wire log
Neutrality, structural not promised

Who is allowed to see what

The engine is called once per audience and each response arrives already masked — the buyer literally cannot see the seller's count because the engine never sent it. Flip the role; flip attestation on and off.

The machine

What talks to what

Every box below exists in the monorepo today unless marked otherwise. Click a component for what it does, its status, and where it lives.

The chain of trust — every settled action walks back to signed authority
The documents

The library — full text, in here

Everything that governs the build, embedded verbatim. The reading order that makes the story land: Thesis → ADR-0001 → ADR-0002 → Protocol spec → Build state. Each document carries its own discussion thread — leave notes in context.

Working docs — at a glance

Integration & onboarding slices, summarised

Each slice below is a design spec plus a task-by-task build plan living in docs/superpowers/. The full texts are engineering working material — what matters in this room is what each one does and why it exists, so that's all that's here. Anything you want the detail on, say so in its thread.

The open board

What's genuinely unresolved

Pulled straight from the documents — these are the decisions and gaps the project itself flags, not a wish list. This is where your judgement is most useful: pick one, hit Weigh in, and say what you think.

Use of funds — working model

The ask, line by line

A live model, not a pronouncement — every cell is editable, so change a number you disbelieve and the totals follow. Each line carries a status chip (click to cycle: estimate firm needs input) and its own thread () for chipping in. Your edits live in this browser and travel back to Andrew with Export feedback on the Board tab. Baseline assumes an 18-month plan horizon and a lean three-person team. Totals are in USD (it's a Delaware raise), but any line can be entered in pounds — tap the $/£ next to the amount and it converts at the editable rate above. Close enough beats precise.

Total ask · incl contingency
Steady monthly burn
One-off costs
Contingency
%
£ → $ rate · editable
close enough beats precise
Tech infrastructure — the sanity check

Your instinct is right: it's light, and that's architectural, not optimistic. The engine is one Go binary with SQLite (managed Postgres when a pilot wants it), an in-memory queue, and SDKs served as static assets — at pilot volume that's a small managed container, a small database, a CDN and monitoring: roughly $200–900/month all-in, reflected in the lines above. Costs only become interesting when attestation volume does (beacon ingest at billions/month is a Phase-2+ problem that arrives with revenue attached). The line not to trim is security — key custody, the audit, the pen test — because the thesis is explicit that integrity failure is the one branch TRACT loses.

The noticeboard

Workshop

Post to the board
All activity

Every thread, newest first

Mentions for you
How this works

Notes save in this browser (no server behind this page yet). When you've had your say, hit Export feedback and send Andrew the file — or use Email digest. Andrew imports it and your notes merge into his copy. Crude on purpose; the engine it describes is the sophisticated bit.