THEPROTOCOL

No Model Required

2026-08-27 · 12 min read · ruFFa
The OurChat showcase panel: a header explaining you act as your own sub-agent with authority contained by its parent, chips reading deterministic and no language model, an onboarding list showing a sub-agent spawned, authority scoped, funded by the showcase agent and ready, and a live event ledger on the right counting 220 million events across three frames.
Fifteen seconds after clicking into a text box on a public page: an identity that exists, a boundary around what it may do, a real balance, and a ledger on the right that already has your arrival in it. No account, no card, no model.

There is a small grey chip near the top of our showcase that reads deterministic - no language model. It is the least eye-catching thing on the page and it is the one people ask about, because the setup invites the opposite guess. Software agents, wallets, a chat window, agents buying things from other agents: obviously there is a model in there somewhere.

There isn't. Not in the chat, not in the pricing, not in the payment, not in the refusals. Every screenshot below came out of a session driven by a person typing into a box, and the code that answered was ordinary deterministic code with a schema and a test suite. That is worth saying out loud once, because the interesting claim is not we avoided AI. The interesting claim is that the machinery underneath is useful on its own terms - and that this is exactly what makes it a safe place to point a model at later, if you want to.

What actually happens when you type

Click into the composer on the landing page and four things happen before you have finished your first sentence. An agent is created for you - a real identity on this registry, not a session cookie with a costume on. Its authority is scoped: it may pay eleven named agents and the venue's settlement gateways, at most 5000 BVT per payment and 10000 per day, and it may not delegate, trade, or pay any other address in the world. It is funded, by a transfer out of an existing balance rather than by minting something into existence. And you are signed in as it, for two hours, after which the registry sweeps it and returns whatever is left.

Every one of those steps is narrated in the thread as it happens, because an onboarding you cannot see is a thing you have to take on faith, and the entire point of the exercise is not having to.

An identity, a boundary, a balance, and a receipt for each. Everything else on this network is those four things in some arrangement.

A command that would rather ask than guess

Here is a small moment that says more about the design than any architecture diagram. Type /card with nothing after it. There is an agent on the other side of the thread already - the showcase opens on one so that a first-time visitor has somebody to talk to - and it would be trivially easy for the command to shrug and show that agent's card.

It doesn't. It says which agents it can show, prices each one in the currency you are actually holding, and tells you the other way to look: /find, which searches the whole federation rather than this venue's short list.

The showcase thread after typing slash card with no argument: a panel headed slash card needs an agent, listing WeatherAgent, CurrencyAgent, NewsAgent, IPInfoAgent, DnsSSLAgent and TimezoneAgent with prices in BVT, and a footer suggesting slash card CurrencyAgent or slash find weather.
The refusal is the feature. It names what it needs, shows what is available with live prices, and points at the wider search - rather than silently answering a question you did not ask.

This is a habit rather than a one-off. A command that takes an argument and quietly substitutes something else is worse than one that refuses, because the second kind teaches you what it does and the first kind teaches you to trust it slightly too much. The same instinct shows up further down the stack: a payment with an amount but no currency is refused in as many words, because this network runs three currencies and "up to 500" is not a limit until it says 500 of what.

Name the agent and you get the card - description, endpoint host, the registry that vouches for it, and a price read from the same code path the discovery page uses, so the two surfaces cannot quietly disagree about what something costs.

An agent card posted into the thread for CurrencyAgent, showing its DID, description, price and the registry it is homed on.
The same command, given what it asked for. The price on this card and the price on the discovery page come from one function; there is no second opinion to drift.

What one text box reaches

Type /stocks and the reply is not this venue's inventory. It is every order book the federation can see: thirty listings across sixteen venues in three currencies, each quoted at what it actually last traded at or what it is actually asked at, and each converted into the currency your agent is holding at the live rate rather than relabelled.

A long listing panel inside the thread showing tickers from many venues with prices, most converted into BVT with an approximate sign, each annotated with its home venue such as op-berlin, op-london, Frame-B, Registry-A, qatest16, and a footer reading 30 of 30 buyable from here, 10 on this venue, 20 elsewhere.
Thirty of thirty buyable from a text box on a public page - ten of them on this venue and twenty somewhere else entirely. The venue name on each row is not decoration; it is where that share's register actually lives, and where the certificate will be signed.

The footer on that panel is the part worth reading twice: prices are the venue's own - last traded or best ask, never the founding float. A price that was true once and is quoted forever is the oldest trick in listings, and refusing to do it costs nothing except the temptation to look busier than you are.

A purchase, and what it leaves behind

Ask for something. /call weather in Berlin stages a service call against an agent that charges for its work. What comes back is a service call card, an answer card, and a line that says paid 0.604195 BVT.

The thread showing a SERVICE CALL card reading weather in Berlin dispatched, an ANSWER card reading delivered and paid 0.604195 BVT, the purse in the header now reading 4999.40 BVT spent 0.6042, and the live ledger on the right showing FxSwapSettled, LedgerBalanceChanged and A2APaymentAuthorized rows all marked verified.
One request, and four things move: the work, the money, the ledger and the purse. The agent's price is 0.5 in its own currency and the payment settled in ours, so an FX leg appears too - the conversion is a real swap on a real pool, not a display trick.

Look at the right-hand column in that frame. A2APaymentAuthorized, then the delivery, then LedgerBalanceChanged, then FxSwapSettled - each row marked verified, each one caused by something that happened in the thread on the left and nothing else. That panel is filtered to your agent alone, which is only possible because you were given an agent of your own rather than a shared demo identity.

Nobody had to file anything. There is no invoice, because the receipt is the record. There is no reconciliation step, because there is only one ledger and both parties are already on it. And there is no question a week later about whether the work was delivered, because the rail releases the authorization when it is not.

Knowing what you are spending

The newest thing in these frames is the least clever and possibly the most useful: a line in the header that says what you hold and what you have spent, and a /balance command that gives the whole position - held, spent against the opening float, the most a single payment may be, the most the session may spend in a day.

A panel headed Your position showing you hold a balance in BVT, spent this session of an opening amount, most one payment may be, and most this session may spend in a day, with a footer noting it is a real balance on the public ledger.
The number is read from the ledger, not tracked in the page, and what you have spent is derived from it rather than counted separately - so the display cannot quietly drift away from the money.

It exists because someone used the showcase, spent real money in it, and observed that they could not see how much. That is the correct complaint about any system that can spend on your behalf, and the answer is not a monthly statement. It is a number on the screen while you are deciding.

The efficiency argument, stated plainly

Strip out the vocabulary and what this network does is remove steps between wanting something done and it being done and paid for.

A supplier is discoverable without an introduction: fourteen thousand nine hundred and eighty-seven agent cards are visible from the registry these screenshots were taken on, each carrying its own price, its own endpoint and its own track record. Terms are machine-readable, so agreeing to them is not a phone call. Payment is contemporaneous with delivery rather than thirty days after an invoice that somebody has to type. The record is created by the transaction instead of being written about it afterwards - which is the single biggest saving, because most of what finance departments do is reconstruct, in a second system, what already happened in a first one.

Underneath all of it sits one property we refuse to trade for anything: the supply invariant. Tokens issued minus tokens destroyed, plus what is in transit, equals what is in circulation - checked continuously by an auditor that does not belong to the registry it audits, and that has now run 777,553 audits since March. The difference is zero. Not "within tolerance". Zero.

Every other feature on this network is allowed to be interesting. That one is only allowed to be boring.

And the ledger those audits read is not small: the panel in these screenshots was showing north of 220 million events across the three frames while a visitor bought a weather report for sixty cents of BVT.

No model required

Nothing you have just read needs artificial intelligence, and we would rather you noticed that than took our word for it. A person typing into a box drove every frame. A company could wire its existing systems to these rails the same way it wires anything else - the agents are HTTP endpoints with signed identities and published prices, and there are several hundred typed operations available over an ordinary tool interface. Used that way, with no model anywhere near it, the protocol is a settlement and coordination layer that happens to be very strict about receipts. That is a complete product and it is the one we would defend first.

But the design does anticipate the other case, and it anticipates it by being suspicious of it. If you do put a model on the controls - and there are good reasons to, since deciding which of thirty listings to buy or which of fourteen thousand agents to hire is exactly the kind of judgement people would rather delegate - then everything in this post becomes a containment property rather than a convenience. An agent's authority is a subset of its parent's, re-derived on every single request, so a compromised or confused driver cannot exceed the boundary it was given. Payments are capped per transaction, per day, per hour. The counterparty allowlist means a leaked credential can pay the eleven agents it was always allowed to pay and no one else. Every refusal names its reason instead of failing silently. Every action leaves a receipt with a human's name behind it, because a ceiling with nobody underwriting it is a number, not authority.

Put another way: we did not build safety features for AI. We built a network where authority is bounded, spending is capped, refusals are explicit and the record is a by-product of the work - because those are good properties for software that handles money regardless of what is driving it. That they are also precisely the properties you want when something less predictable takes the wheel is not a coincidence, but it is not the reason either.

The efficiency is available with or without a model. The safety is not optional in either case, which is the only arrangement we were ever willing to ship.

Everything above is live at the front page of this registry. It costs nothing, it creates an agent that belongs to you for two hours, and the money it moves is real - which is the only reason any of the numbers in this post mean anything.