Tari Ootle · Esmeralda testnet · Spooky Secrets

Seance

A private payment on Tari is a letter sealed in plain sight. Everyone can pass the envelope around, and only one key opens it. A real one, saved from the testnet, is already on the table below: watch three ghosts try to read it, and see what still leaks to anyone. Then summon a live transaction or paste any id.

Call up a transaction

Any transaction on the Esmeralda test network. The page looks for the id in the indexer's list of latest transactions first, and that request carries no id. An id that is not in the list is asked for by id only if you say so. A demo you pick or paste is asked for by id. The links beside an answer open another site, which is then told the id.

These are public transactions from our own test account, so the page asks the indexer for them by id.

These are public transactions from our own test account. Their saved copies are inside this file.

Live

The page's code is still loading. The buttons wake up when it is ready.

What this page asked of the network

The list appears when the page's code has loaded.

Pressing this sends one request; nothing is sent before. Cloudflare, which fronts the indexer, answers with a short text about your connection (your IP address is in it). This page reads one line of that text, the key exchange, and drops the rest. The request shows in the list below.

The requests, one by one
# Started Host Asked for Sent Read Status What that host learns

The page wrote this list itself, so it is a report to check, not a proof: your browser's network panel is the check. The list holds this page's own requests and the files the browser reports loading for it. It may miss what the browser does by itself, anything an extension does, and the links you open. "Sent" is the address plus any body, without the headers the browser adds. "Read" is the size of the answer after decoding, not what crossed the wire. Only the hex form of a key is searched for.

Three ghosts, one transaction

The Stranger

Holds no key. Sees what everyone sees.

The Medium

Holds a recipient's view key. Listens inside this page.

Whose key does the medium hold?

A key you paste is used inside this page and goes nowhere. The demo keys are public on purpose, for testnet only.

The Auditor

Holds a token's audit key. Counts the amounts. Cannot read a memo.

Whose key does the auditor hold?

An audit key belongs to the token, not to a person. The token's maker names it once, and from then on every note of the token carries a proof that only that key opens. The demo key is public on purpose, for testnet only.

How this token was made: of Rust

The token's maker names the audit key once, in the line .with_view_key(auditor). That is all it takes: from then on every note of the token carries a proof that only that key opens. Anyone may mint this token, which is fine for a testnet toy.

The explorer's page for the token lists its View key. That is the audit key above, in its public half.

What still leaks

Sealed notes hide the amount, the memo and the receiver. Everything below is read by anyone, with no key at all, from the same transaction as the cards above.

The Poltergeist

A ghost with no keys at all, only patience. It reads what a stranger can read and asks one question of the demo payments: were they all sent by the same wallet? It tries four tricks, and one extra, on two ledgers.

The transparent ledger is synthetic. It is not a real chain. This page builds it from the same payments, with the sender, the receiver and the amount written in the open, the way an account ledger does. The times, epoch windows and fees are the real ones. It holds only these payments.

Ghosts from later

Two more ghosts, about a key that was copied and a computer that can solve discrete logarithms. The Doppelganger asks what a copied key would read. The Revenant asks what that computer would read from public data that was kept. Both work on what this page already holds, and neither asks anyone for anything.