protocol · version 1

How a call works.

Everything here can be checked without us. A call is a Solana transaction and a drand round. The server only indexes, opens and grades what anyone else could open and grade the same way.

The transaction

A call is one transaction signed by the caller's wallet, with four instructions:

1–2Compute budget: a 360,000-unit limit and a small priority fee. The memo program checks and logs every byte, about 350 units a byte.
3A System transfer of at least 0.001 SOL from the caller to the ledger . The fee is the pot, and it is also the index: the ledger's history lists every call.
4A memo: foresaw:1: followed by the base64 of an age file.

The fee payer who signs the transfer is the author. The transaction's block time is the moment of the seal, and nobody can choose it.

The ciphertext

The age file has one recipient stanza, -> tlock <round> <chain hash>, made by tlock-js. The chain must be drand quicknet, 52db9ba7…c84e971: a round every 3 seconds, and round r is published at 1692803367 + (r − 1)·3 unix seconds. That time is when the call opens.

Encryption needs only quicknet's public key. Decryption needs the round's signature, which the League of Entropy's nodes produce together, by threshold, when the round comes. Until then it does not exist.

What is inside

JSON, at most 240 bytes, with short keys because every byte is on-chain:

{"v":1,"a":"<author wallet>","k":"p","s":"SOL","d":"up","x":150,"n":"optional note"}
{"v":1,"a":"<author wallet>","k":"p","m":"<token mint>","d":"down","x":5000000}
{"v":1,"a":"<author wallet>","k":"w","t":"anything, up to 160 characters"}
aThe author. It must equal the wallet that paid the fee, or the call opens void. This is what stops anyone copying a good caller's ciphertexts: they can resubmit the bytes but cannot change the name inside.
kp a price call, w words, which open and are shown but not graded.
s / mA major (SOL, BTC, ETH, ZEC, BONK, WIF, PENGU, TRUMP, FARTCOIN, POPCAT, PUMP, JTO, RAY, HYPE, XRP, DOGE, SUI) or any Solana token by mint.
d, xup: the asset trades at or above x between the seal and the open. down: at or below. x is a USD price for majors and a USD market cap for tokens.

When a call is void

Grading

At the open the call is decrypted and, two minutes later, graded against one-minute candles: Coinbase's SYMBOL-USD for majors, the deepest GeckoTerminal pool for tokens. The window runs from the first full minute after the seal to the last full minute before the open; windows longer than six hours use hourly candles in the middle.

price at the sealp₀, from the minute containing the block time
boldnessb = 100·ln(x / p₀) for up, 100·ln(p₀ / x) for down, capped at 300. A target already behind the price is a safe call: b = 0.
score+b if the target was reached, −b if not.

Right, you win the move you called; wrong, you lose it. Hedging both ways scores nothing, and a wallet's misses open as surely as its hits.

The board

Net score per wallet, this week (from Monday 00:00 UTC) and all time. Every wallet ranks.

Check it yourself

Every call page has an open it yourself button: your browser fetches the round from drand and decrypts the memo on its own, without our server. Or take the memo from any explorer, decode the base64 after foresaw:1: to a file and run drand's tle on it once the round is out:

echo '<base64>' | base64 -d > call.age
tle --decrypt call.age

Grades can be rechecked from the same public candles: Coinbase's /products/SYMBOL-USD/candles and GeckoTerminal's pool ohlcv.

What you trust