Language

Choose a language

Topics · First trade

COMPUTE has exchanged hands — first OTC trade fully on-chain

On 28 July 2026 at 14:15 UTC, in mainnet block 19,978, one unit of COMPUTE.V26C2M — a tokenised option on TensorCash network difficulty — moved from one person to another, and 0.90000000 TSC moved the other way. Both legs happened in the same transaction. Neither side ever held the other’s money.

There was no exchange account. No deposit, no withdrawal, no order book operator, no escrow agent, no multisig arbiter, no “trusted” third party of any kind. Two people ran the TensorCash desktop wallet, found each other over an encrypted peer-to-peer channel, agreed a price, and pressed a button. The chain did the rest.

View the transaction on the explorer →

1e923ee8c490081e2f63dea34b4c9e8d81189b30db806652960a9852fd8d05ca

This is a technical demonstration, not an offer or a solicitation. Nothing here is an invitation to buy, sell or subscribe to any instrument, nor investment, legal, tax or financial advice. It documents how a piece of software works, during a technical demonstration between two consenting operators. Screenshots have been redacted: wallet names, public keys and the offer identifier are replaced with placeholders.

What changed hands

COMPUTE.V26C2M is one of the two option series we wrote about last week — a call option on the COMPUTE Index, which is simply the network’s difficulty read as AI-inference throughput. It is fully collateralized: each of the 100 units is backed by 1 TSC sitting in an on-chain vault, and at fixing height 28,416 the chain itself splits that vault between holder and writer according to a published formula. No oracle, no issuer to chase, no counterparty to trust at maturity.

So it is an asset with a real, chain-enforced payoff. Which raises the obvious next question: can you actually sell one to somebody?

Until this week the honest answer was “yes, if you both trust an exchange, or one of you goes first and hopes.” Now the answer is: yes, directly, with neither.

How the two parties agreed

1. The seller writes an offer

In the wallet’s Trading → Market tab, the seller opens the Spot builder and states the terms in plain language: send 1.00 COMPUTE.V26C2M, receive 0.90000000 TSC. The wallet turns that into a signed term sheet and hands back a share dialog.

The wallet confirms the spot atomic swap offer and asks how to share it: Publish with Proof, Export Manually, Publish to Market, or Decide Later.

Those four buttons are the whole distribution model, and they matter:

  • Publish with Proof — post the offer publicly, and attach cryptographic evidence that you actually hold what you are promising to deliver.
  • Publish to Market — post it publicly without that evidence.
  • Export Manually — don’t publish anything. Save the offer to a file or the clipboard and send it to one named counterparty however you like. A genuinely private OTC ticket.
  • Decide Later — keep it local.

The seller chose Publish with Proof.

2. The offer goes out over a board, not through a venue

“Publishing” means signing the offer and posting it to a bulletin board carried over Nostr relays — the Relays: 1/1 indicator in the status bar below.

A relay is a noticeboard, not a venue. It stores and forwards signed notices. It runs no matching engine, holds no balances, takes no custody, and cannot halt trading, reorder your quote, front-run you or lose your coins — because at no point does anything but your own wallet hold your keys or your assets. Everything binding happens directly between the two wallets.

Buyers running the same wallet see the offer appear in their market table:

The wallet's Market tab showing a single spot offer: maker redacted, sending 1.00 COMPUTE.V26C2M, receiving 0.90000000 TSC, price 0.90000000, with a green tick in the Funds Verified column.

3. “Funds Verified” — the green tick

Look at the Funds Verified column. That tick is the Publish with Proof option paying off.

Attached to the offer are BIP-322 signatures: the seller signs a challenge message with the private keys controlling the specific coins holding the COMPUTE.V26C2M units. Any wallet that receives the offer re-checks those signatures against the live chain state — the outputs exist, they are unspent, they carry the asset, and whoever wrote the offer can spend them.

It is the difference between “I have the goods” and “here, check for yourself.” Nobody is asked to take the seller’s word, and no reputation system, rating or deposit is involved.

The same works in reverse: the buyer’s trade request carries proof of the TSC side.

4. The buyer requests the trade

The buyer clicks through, and a request lands on the seller’s screen, again with its own verified-funds tick. Requests queue here until the maker acts on them; the maker can Finalize or Reject each one.

The wallet's Trade Requests panel showing pending incoming requests for "Spot: 1.00 COMPUTE.V26C2M ↔ 0.9000 TSC", counterparty redacted, funds verified, with Finalize and Reject buttons.

The seller pressed Finalize. Everything after that is automatic, and it is where the interesting cryptography lives.

The hard problem: who goes first?

Strip away the interface and a trade is two payments in opposite directions. If they are two separate transactions, somebody has to send first — and that person is exposed. The other side can simply not pay.

The industry’s answers have all been variations on add a third party: an exchange that holds both sides, an escrow agent, a bonded arbiter, a bridge. Each one is a new place your money can be frozen, stolen, subpoenaed or lost.

TensorCash’s answer is different: make both payments the same payment — then give two strangers a way to sign it together in which neither has to go first.

What a cosign adaptor actually is

Start with what a normal signature does. When you sign a transaction you produce a number that only your private key could produce, and anyone can check it. It is a lock that either opens or doesn’t.

An adaptor signature — sometimes called a scriptless-script or “signature encryption” — is a lock with one piece deliberately left out.

Pick a secret number t. From it derive a public point T = t·G on the elliptic curve. T can be shared freely; t cannot be worked backwards from it. Now, instead of a finished signature, you produce an adaptor signature that is bound to T. It has three properties that do all the work:

  1. It is verifiable. Your counterparty can check, right now, that it is a correct adaptor signature by your key, on this exact transaction, locked to this exact T. They know it is real.
  2. It is useless on its own. It will not spend anything. The chain rejects it. It is a signature with a hole in it exactly the size of t.
  3. It completes instantly, given t. Whoever learns t can turn the adaptor signature into a valid, ordinary Schnorr signature by simple arithmetic. And symmetrically: anyone who sees the completed signature next to the adaptor one can subtract them and recover t.

That third property is what makes adaptors a building block rather than a curiosity: a signature can be published in a form that is checkable now and spendable later, and the act of spending leaks a secret that other constructions can be chained to. Here, the wallets use the adaptor layer for what it gives them today — a way for two strangers to sign the same transaction incrementally, verifying every step, with nothing usable changing hands until the last one.

Putting it to work

Here is what the two wallets actually did when the seller pressed Finalize. The wallet log numbers them phases 0 to 4; the whole run took about two seconds.

Phase 0 — one transaction, built by both. The wallets don’t each build a payment. They build a single transaction, cooperatively. The seller’s wallet drafts its own leg — the output delivering the COMPUTE.V26C2M unit to the buyer’s address — and sends that draft across. The buyer’s wallet augments it with its own coins and the output paying 0.9 TSC back to the seller, then sends it back. Each side contributes only its own leg, which matters: only the wallet actually holding an asset knows how to construct a valid spend of it.

The seller’s wallet then checks the returned draft rather than trusting it. It confirms every one of its own inputs is still present and unaltered, and that the merged transaction hashes to the value both sides expect, before adopting the buyer’s version.

At this point the transaction is complete, correct, and completely unsigned. Both parties can read every byte of it. Neither can broadcast it.

Phase 1 — prove who you are. Each side signs a challenge with the key controlling the address it is about to be paid at — BIP-322 again. This closes the gap between “somebody is talking to me on this channel” and “the party being paid is the party I negotiated with.”

Phase 2 — nonces. Schnorr signing needs a fresh random nonce for every input, and in a multi-party session those nonces must be fixed and exchanged before any signature is seen — otherwise whoever chooses their nonce last can bias the outcome. Both wallets generate theirs, publish the public halves, and merge in the other side’s.

Phase 3 — adaptor partials. Each wallet now produces adaptor signatures over its own inputs, bound to its session adaptor point, and sends them across. Each side checks that the other’s are well-formed against the exact transaction on the table. Both now know the transaction is fully covered — and both know it is still inert. Nothing here can be broadcast, and nothing either party has received lets them take anything.

Phase 4 — completion. The adaptor secrets are applied, the completed signatures are exchanged and merged, the few remaining ordinary inputs are signed, and the transaction goes to the network. Ten minutes later it was in block 19,978.

Where the safety actually comes from

Worth being precise about, because the distinction matters.

The atomicity is structural. There is one transaction. The buyer’s TSC and the seller’s option move inside the same object, validated by the same rules, into the same block. There is no ordering, no “who goes first”, and no window in which one leg has settled and the other has not — not because the parties behaved well, but because the chain has no way to accept half a transaction.

The ceremony is what lets strangers get there. Every step is verified rather than trusted: the merged draft is checked input by input, identities are attested with BIP-322, nonces are committed before any signature is seen, and every adaptor signature is validated against the exact transaction it claims to cover. At no point does either wallet hand the other something it can use on its own.

One protection was available and was not used in this run. The wallet also implements a lock-step reveal: before releasing final signatures, each side commits to a hash of the signature it is about to publish. Its job is to stop one party seeing the counterparty’s completed signature while withholding their own — which would leave them holding a fully valid transaction they could broadcast, or sit on, depending on which way the market moved over the next few minutes. That is a free option, obtained for nothing. Both wallets negotiated this trade with reveal_lockstep: false, and the ceremony log records the bypass explicitly.

That is a fair-exchange refinement, not a custody hole. Neither side could have stolen anything, and neither side could have produced a one-legged settlement; the worst outcome reachable was a stall in which both parties keep exactly what they started with. Turning it on by default in the automated path is the obvious next step — and we would rather say so than let a tidy diagram imply it already happened.

The channel the two wallets talked over

All of that message-passing needs somewhere to happen, and it must not be a place where an eavesdropper can substitute themselves for one of the parties.

The wallets establish a cosign session. A SPAKE2 password-authenticated key exchange runs first, and the secret it derives keys a Noise channel (NNpsk0, X25519 / ChaCha20-Poly1305 / BLAKE2b). SPAKE2’s job is to make a machine-in-the-middle impossible even though the shared secret is short and human-typeable, and the handshake ends by showing both users the same short authentication string — five words that must match on both screens before anyone proceeds.

The transport underneath is a plain WebSocket rendezvous relay, which is deliberately uninteresting: it is a mailbox with a room number, and it sees only ciphertext. Every PSBT, nonce and signature in the ceremony above crossed it end-to-end encrypted.

What the chain saw

One transaction. Three inputs, five outputs, 487 vB, a fee of 2,705 sats.

LegWhat it is
1 × COMPUTE.V26C2Mdelivered to the buyer
1 × COMPUTE.V26C2Masset change — the seller’s remaining unit from the same coin
0.90000000 TSCpaid to the seller
2 further outputsnative TSC change, one back to each side

Confirmed in block 19,978, 9f0e2f53…c56d873a, at 14:15:40 UTC.

Notice what is not in that list: no escrow output, no timelocked refund branch, no hash-preimage, no multisig, no second transaction, no on-chain trace of the negotiation at all. To the network this looks like an ordinary Taproot spend, because that is exactly what it is. All the cleverness lived in how the signatures were made, and none of it costs block space. That is what “scriptless” means, and it is why this approach is cheap and private as well as safe.

Why this is a bigger deal than one small trade

TensorCash already lets you tokenise things that are hard to tokenise anywhere else: options on the network’s own difficulty, contracts-for-difference settled by consensus, repos, forwards. Those instruments are only as useful as your ability to get in and out of them.

This transaction closes that loop. The same wallet that mines, that holds your keys and that writes the contracts can now also trade them, peer-to-peer, with settlement finality and no settlement risk — and the machinery is generic. Spot was the first one to go end-to-end on mainnet; the Market tab already carries Repo, Forward, Option and Difficulty alongside it, and they share the same adaptor ceremony underneath.

An asset you cannot sell is a certificate. An asset you can hand to a stranger, safely, without asking anyone’s permission, is a market.

That market opened at 14:15 UTC on 28 July 2026, at a price of 0.9.


Technical demonstration only. Not an offer, solicitation, or recommendation to buy or sell any instrument, and not investment, legal, tax or financial advice. Peer-to-peer trading carries risk, including total loss; you are responsible for your own keys, your own counterparties and your own regulatory position. Wallet names, public keys and offer identifiers in the screenshots have been redacted.

Don’t trust — verify. The transaction is on the explorer; run your own node and check it yourself.

Authored pseudonymously by Imosuke Takakuni.

Our mission

TensorCash turns useful AI work into open money.

Out of the potato age, as our whitepaper says…

We believe people deserve a cheaper, more efficient financial system, and fairer AI that works for everyone. TensorCash makes AI work verified and verifiable. Verification gives AI a face: proof of which model did the work, what it saw, and the rules it followed. That lets anyone confidently buy or sell AI work at the most efficient price. The result is more accessible, more sustainable AI, powering a new generation of financial systems. Today's currencies are the potatoes: antiquated, expensive to move, and trapped behind fee-takers. TensorCash is a more efficient way to move and store value — one that harnesses AI's computational power for everyone while pushing the control outward instead of concentrating it.

— Imosuke Takakuni

About us

Imosuke Takakuni is a pseudonym. The Japanese name is both a tribute to Satoshi Nakamoto and a nod to Potato Land — the parable from our whitepaper. The mission is bigger than any one contributor; it should outlast personalities and charisma. Decentralisation works for everyone, or it doesn't work at all. We want everyone to participate in TensorCash as equals.

Open the mission page →

Get involved

How to get TSC

TensorCash is not selling TSC. The project is not running a token sale, pre-sale, ICO, IDO, or official investment round. New TSC enters circulation through active mining. You can mine it, receive it peer-to-peer from someone who already has it, or run the wallet and be ready for mainnet.

TensorCash is not running an official sale. Do not send money to anyone claiming to sell official allocations.

Get involved

Run the Core wallet

The practical first step is to run TensorCash Core, create a wallet, and learn the RPC surface. Today the public guide starts with regtest so you can create addresses and move coins locally before touching mainnet funds.

Get involved

Donate

No mainnet donation address is published yet. For testing only, the TensorCash testnet address below was generated from the running Core wallet; do not send mainnet funds to it.

Get involved

Spread the word

The shortest useful explanation is: TensorCash turns useful AI work into open money. Share the mission page, the flagship whitepaper, or the Get involved page with one person who cares about cheaper financial rails, fairer AI, or open infrastructure.

TensorCash turns useful AI work into open money.

Get involved

Emission schedule

Bitcoin set the baseline: block rewards only, no discretionary minting, and an exact integer subsidy total of 20,999,999.97690000 BTC. TensorCash keeps the fixed-supply discipline and changes the release curve for a compute-mined network; the implemented recurrence ends at 21,184,153.03530240 TSC.

Supply over blocks

Total subsidy issued

Exact integer subsidy rules from Core: Bitcoin halvings against the TensorCash epoch-decay schedule, shown through the first 6,000,000 blocks.

Horizon
...
BTC @ 6M
...
TSC @ 6M
...
BTC and TSC total subsidy over block count At 6,000,000 blocks, Bitcoin has issued 20,999,999.92710000 BTC and TensorCash has issued 20,979,987.36365355 TSC under the implemented epoch-decay schedule.
Block 0
BTC supply 0 BTC
TSC supply 0 TSC
BTC: 50 BTC, 210,000-block halvings TSC: 715 TSC, 715-block epoch, reward x 3/5, capped epoch length