Mainnet receipts from Mast
Koine's trading terminal started as Mast. Mast ran on Solana mainnet from 30 October to 3 November 2026, and one wallet had receipts turned on. Every rule change, refused buy, exit and trade Mast made for that wallet was written onchain as a memo. These are those receipts, checked from the chain alone.
- Wallet:
CfvB3s8P35WFWJyiisu4TbnxWw9GWX84iNsSiBJNZJ5x - Receipts key (the key that signs and pays for the memos):
6bt4ptYZ3rF3jYRtimCRZL7vp7D8m8ZF4mbFvWXdnGGc - Full results: CfvB3s8P-receipts.json
Result: 9 passed, 3 failed #
| Check | Result | What it shows |
|---|---|---|
| Memo chain | Pass | 26 memos, numbered 1 to 26, each linked to the one before. None missing or reordered |
| Refused buy | Pass | 30 Oct 11:21 UTC (Mast's clock): a buy was refused because "Stop all buying" was tied, and the receipts show it was tied. The refusal itself is Mast's word |
| Buys | Pass ×4 | Each buy happened while it was allowed by every rule in force |
| Hard-stop exits | Pass ×2 | Each sale matched its exit receipt's quantity, and a hard stop was tied. The price that set it off is Mast's word |
| Withdrawal | Pass | 30 Oct 20:10 UTC: went to the saved withdrawal address |
| Swaps with no receipt | Fail ×2 | 2 Nov 21:51 and 3 Nov 01:33 UTC |
| Withdrawal with no receipt | Fail | 3 Nov 01:35 UTC, 0.309 SOL to ApLTot4FxNgwxkbScYDVgwLc4aZYuDrZSUA5XeLvQfLf |
Why the three fails are correct #
The owner exported the wallet's private key at 21:46 UTC on 2 November, while Mast was shutting down. Once exported, the key works without the service. The two swaps and the withdrawal came after that, signed with the exported key outside the bot, so no receipt exists for them.
The checker can't know why a transaction has no receipt. It flags every Jupiter swap that changed the wallet's tokens, every presale action the wallet paid for, and every other transaction the wallet paid for that sent SOL out, without one. That's the point: a trade or withdrawal outside the rules shows up.
Key exports aren't written as receipts yet, so the chain alone doesn't show the export time. It comes from Mast's database.
Check it yourself #
From the trade/ folder, with any mainnet RPC:
TRADE_RPC_URL=<mainnet RPC URL> node scripts/receipts-check.ts CfvB3s8P35WFWJyiisu4TbnxWw9GWX84iNsSiBJNZJ5x --key 6bt4ptYZ3rF3jYRtimCRZL7vp7D8m8ZF4mbFvWXdnGGc
The checker reads only the chain, never Koine's database. Any transactions the wallet made after this run would add checks. How it works: docs/terminal/receipts.md.
Checker fixes found by this run #
The first run reported 6 fails. Two were checker bugs, fixed in trade/server/verify.ts:
- It asked the RPC only for transaction versions up to 0. Two transactions use version 1, so they came back unreadable.
- An untie with no delay takes effect at once and never gets a separate "landed" memo. The checker treated it as still pending, and the next change to that rule dropped it, so "Stop all buying" looked tied when it wasn't. That made three allowed buys look like rule breaks.