Every market that grew up put one counterparty between the two sides of a trade. Not because the trades were bad, but because a market where everyone has to form a view on everyone else spends its capital on that question instead of on liquidity.
Tokenised equities skipped the step. Counterparty risk was solved by removing the interval: everything is prefunded, so nothing is ever owed. It works, and nobody has failed to deliver. The bill arrives somewhere else, as capital that has to sit still.
One member, one asset, one window: buy 400, sell 250, buy 350.
|
|
window N [ intake 300s ][ finalise 30s ][ settle 120s ]
window N+1 [ intake 300s ][ finalise 30s ][ settle 120s ]
Not a saving on gas. Every unit of gross flow that reaches the chain is a unit of capital that has to exist, at that moment, in the right place.
The chain runs at 0.101 seconds a block. Our parameter table said 2 seconds for three months.
It came from a note in the first week and was repeated in three files without anybody measuring it. The check that killed it is in this account, it runs on a schedule, and the note that introduced the assumption is still there unedited.
Windows are wall clock, so netting and margin are unaffected. What changed is the block count inside a window: about 2,959, not 150.
git clone https://github.com/spireproto/spire-checks
cd spire-checks && node checks/chain.mjs| spire | The protocol: twenty pages on novation, netting, collateral, defaults, the API surface and what is not built. |
| spire-core | Windows, novation, netting, margin, collateral, waterfall. BigInt, zero dependencies, 55 tests. |
| spire-sdk | Client and EIP-712 signing. Keccak and secp256k1 written out, not pulled in. |
| spire-contracts | The on-chain surface as interfaces, published ahead of deployment. |
| spire-checks | Every number we publish, as a script you can run against us. |
| netting-replay | 33 modelled days through the netting rules, each reproducible from its date. |
| awesome-tokenized-equities | The landscape this sits in. |
| Stage | Status |
|---|---|
| Specification | ✅ complete, 20 pages, same source as the site |
| Clearing arithmetic, tested | ✅ 55 tests, zero dependencies |
| Signing and client surface | ✅ works offline today |
| Interfaces, published | ✅ ahead of deployment |
| Checks against our own claims | ✅ and one of them has already fired |
| Deployed contracts | ❌ nothing, on either network |
| Live API | ❌ does not answer |
| Audits | ❌ none |
Nothing here holds an asset and no contract address is claimed. A clearing layer asking to be trusted with margin should be legible before it is live, and being blunt about what does not exist is the cheapest part of that.
|
spire-core 55 tests · 0 dependencies |
spire-sdk 27 tests · offline suite |
spire-checks 5 checks · 0 dependencies |
spireproto.xyz · @spire_proto · notes


