Rules v3-transfer-evidence
HOW THE ROAST IS WRITTEN
Twelve rules, one formula, no opinions. A line only appears on a ticket if its rule fired, and a rule only fires on a number read from the chain. If a source is unavailable the rule is skipped — it is never estimated. Opposite transfers alone do not prove a swap or realised profit.
The twelve
| Code | Name | Weight | Fires when |
|---|---|---|---|
| R01 | Top of the menu (disabled) | 18 | Disabled: required trade or valuation evidence is not available. |
| R02 | Thin liquidity | 16 | Still holding at least one token whose deepest pool is under $5,000 of liquidity. |
| R03 | Round trip (disabled) | 14 | Disabled: required trade or valuation evidence is not available. |
| R04 | Paper hands (disabled) | 12 | Disabled: required trade or valuation evidence is not available. |
| R05 | Serial degen | 10 | Touched 8 or more different tokens in the last 7 days. |
| R06 | Second helping (disabled) | 14 | Disabled: required trade or valuation evidence is not available. |
| R07 | Gas martyr (disabled) | 8 | Disabled: required trade or valuation evidence is not available. |
| R08 | Night shift | 6 | 60% or more of transfers land between 00:00 and 05:00 UTC (at least 10 transfers). |
| R09 | One token church | 8 | 80% or more of transfers involve a single token (at least 10 transfers). |
| R10 | Stock tourist (disabled) | 6 | Disabled: required trade or valuation evidence is not available. |
| R11 | Ghost | 6 | Newest observed token transfer is at least 14 days old, with current token holdings. |
| R12 | Clean plate | 0 | No rule fired. Printed anyway, because everyone gets a ticket. |
The formula
doneness = round(100 × Σ weight of every rule that fired ÷ 46)
The divisor is the total weight of the rules that are enabled right now (46). Scoring against it rather than against a raw sum is what keeps all four bands reachable while the trade-accounting rules are off, and keeps the scale meaning the same thing on the day one of them is switched back on.
Worked example. A wallet still holding a token whose pool is under $5K (R02, 16) that has touched nine tokens this week (R05, 10) scores 26 of 46, which is 57 on the scale: WELL DONE. Add a wallet that is 85% one token (R09, 8) and it reaches 74.
A partial read stops at 74 and says so on the ticket. That happens when Blockscout refuses the transfer endpoint for an address, which it does for wallets with very large histories; the ticket is then built from balances and counters alone, and it would be dishonest to let a half-read wallet reach BURNT.
The scale
- RARE 0–19Barely touched. Either careful or new.
- MEDIUM 20–44A couple of stories. Normal for this chain.
- WELL DONE 45–74The ticket runs long. You know what you did.
- BURNT 75–100We printed it twice to be sure.
- 0–19 · RARE
- 20–44 · MEDIUM
- 45–74 · WELL DONE
- 75–100 · BURNT
Where each number comes from
| Source | Gives us | Refreshed |
|---|---|---|
| Blockscout /addresses/{a}/counters | transaction count, transfer count, gas units burned | 5 min |
| Blockscout /addresses/{a}/tokens | current holdings and their listed price | 5 min |
| Blockscout /addresses/{a}/token-transfers | up to 150 recent transfers, newest first | 2 min |
| GeckoTerminal /tokens | price now and deepest indexed pool liquidity | 1 h, shared |
| Robinhood assets registry | which contracts are Stock Tokens | 6 h |
What we never do
- — No guessing. A rule with a missing input is dropped, not approximated.
- — No data from outside the chain. No names, no handles, no clustering of addresses.
- — No full addresses on the wall, ever. Shortened only.
- — No judgement of people. Every line is about a transaction.
Changing a rule or a weight bumps the version. Tickets keep the version they were printed with; the API returns it with every response.