a second brain that marks its own homework

obsidian vault  ·  terminal  ·  zero dependencies

python 3.10+ deps 0 tests 201 scan <1s no index · no database MIT
$YOINK Robinhood Chain NOT LIVE YET · ADDRESS APPEARS HERE AT LAUNCH SWAP
keep going 00 · twenty seconds
00

twenty seconds

YOINK 0.1.0 the whole thing, start to finish click to pause
no sound · it loops plain markdown → a claim with a date → it settles itself every number in it is computed from the files
01

thirty seconds

Two commands. Every number below is computed from the files, not written into the program.

bash~
$ pip install -e .
$ yoink demo && yoink   # a vault that already has a life
0notes
0alive
0never opened again
0claims settled
0still open
0points of overconfidence
02

a thought with a date on it

Every note app counts notes.
None can tell you if one was right.

Four lines of frontmatter turn a thought into a bet. When the date lands, yoink settle reads the source and writes the answer back into the file.

one notebefore → after, same file
title: Robinhood testnet clears 10M
claim: tx count is at or above 10000000
settles: 2026-10-01
reads: chain:robinhood-testnet/txcount
test: gte 10000000
confidence: 0.7
── the date lands, yoink settle runs ──
outcome: false      reading: 8412998
read_from: robinhood-testnet @ 9412998

you say it once

Four lines. A number, a direction, a date, and where the answer will come from.

the world answers

No model, no opinion — it reads the source you named and writes the reading back into your file.

it cannot be walked back

A settled claim cannot settle twice, and the date cannot move after the fact.

03

the pulse

Two numbers nobody’s note app
wants to print.

said 0%average confidence, folded to your side
right 0%how often that side was the right one
+0
points of overconfidence. said − right. It cannot be improved by writing more notes — only by being right, or saying a smaller number and meaning it.
this number is the whole product. Everything else on this page exists to make it honest.
brier score · 0.388
0 · perfect
0.25 · a coin
1 · certain and wrong
0.388
alive 1440%
dead 2160%
notes 35851 w
links 16all resolve

Alive if something links to it, it links to something, you came back after the day you saved it, or it carries a bet that has not closed. Otherwise dead — a third of most vaults, and invisible, which is why people believe their vault is working.

From yoink demo on a fixed seed. scripts/figures.py --check fails if this page and the code disagree.

04

the terminal · type into it

Gold marks what needs you — a claim that is due, a link that dangles, the share of your vault that is dead. Everything healthy is green and quiet. This one is real: the refusals below are the same rules the program runs, and they run in your browser. Nothing here signs anything.

yoink@vault~/demo-vault · 35 notes · 14 alive · +35 pts ENGINE READYAUTORUNNO SIGNERNO TRADES
$
rules live lines 0 uptime 0s python 3.10+ deps 0 tests 201
1VAULTthe list, filtered
2NOTEthe note, wrapped
3LINKS← in, → out
4PULSEalive, dead, the gap
j kmove
open
/search · no index, never stale
a d call · dead · claims
u odue · orphans
t gtags · graph
ssettle everything due
rrescan from disk
05

where an answer comes from

A claim is only worth making if somebody who was not there can check it.

sourcewhat it reads
file:data/readings.json#chain.blocka JSON file, by key path
csv:bars.csv#close@2026-10-01a column, on a date
chain:robinhood-testnet/blocknumbera public chain, over JSON‑RPC
manual:https://…you read it — and the URL is recorded

a number nobody owns

robinhood 4663 · robinhood-testnet 46630 · ethereum 1.

it checks the chain id

Calls eth_chainId first and refuses if the endpoint reports a different chain than the claim named.

it cannot spend

Four methods, all four read. No signing, no keys, no wallet — and a test parses the file to prove the words are not there.

06

what it refuses

This is the part that makes the score mean anything.

--claim "it will moon" ✗ refused — “moon” cannot be settled by reading a number. Say what number, and which way.
--settles 2020-01-01 ✗ refused — not in the future. You cannot bet on yesterday’s race.
--reads nowhere ✗ refused — not a source. Use file: csv: chain: manual:
--test "goes up" ✗ refused — not a test. Use gte 10 lte 3.5 gt 0 eq 1 between 2 4

A settled claim cannot be settled again, and a claim cannot be attached to a date that has passed. No looking, then settling differently.

07

on disk

~/yoink-vaultthe whole storage layer
~/yoink-vault/
├── 2026-09-11-robinhood-chain.md
├── claims-need-a-date.md
├── data/readings.json   ← claims settle against this
└── .yoink/ledger.jsonl  ← the only file that is not a note

No database. No index.
No second copy of the truth.

Everything — the graph, the search, the pulse — is recomputed from the files every run. Ten thousand notes scan in under a second.

The ledger is append-only, each line hashed over the one before it: sha256( seq | at | kind | body | hash₋₁ ). A scoreboard you can quietly edit is not a scoreboard — change one confidence after a bad outcome and yoink doctor names the line.

Delete yoink and nothing is lost, because there was never anything but your files.

08

the token

$YOINK
on ROBINHOOD CHAIN · chain 4663
contract address
NOT LIVE YET · ADDRESS APPEARS HERE AT LAUNCH

The mark is a community token on Robinhood Chain — the same chain a chain: claim reads a block height from. The repository holds nothing, trades nothing and has no market in it.

networkROBINHOOD CHAIN
pair
price
liquidity
24h volume
poolnot connected
statusnot live yet

Nothing is deployed yet. When the mark is live on a pool the indexers can see, the pair, the price and the chart fill themselves in.

LIVE CHARTpowered by GeckoTerminal
waiting for a pool The chart mounts by itself the moment an address is set and a pair is indexed.
09

the burn window

Every 3 hours, the supply gets smaller.

A share of what is left is sent to an address nobody holds the keys to. It only moves one way — nothing brings it back. The clock below is the real one: it is counting to the next burn right now.

not live yet burns every 3h share at
next burn in
00
hours
:
00
minutes
:
00
seconds
00:00:00 UTC0% of the way there
the clock is already real and already counting. the amounts fill in the moment there is an address.
the numbers
total supply
burned to date
remaining
burns so far0
burn address

Every figure here is read from the chain at launch. Until an address is set they stay dashes — a number with nothing behind it is worse than no number.

fixed before the first one

How often, how much, and which address — all three are set before a single burn runs. A rule you can change after seeing the result is not a rule.

you can check every one

Each burn is a transaction. The ledger below carries its hash, so you verify it on the explorer instead of believing this page.

it never comes back

The burn address has no owner and no keys. Tokens that go there are out of the supply for good — that is the whole point.

BURN LEDGERwindow · amount · transaction
no burns yet Nothing is deployed. The first row lands here the first time the clock hits zero on a live pool — with its amount and its transaction.
10

roadmap

No dates. A date you cannot settle is not a claim — and this project would have to refuse its own roadmap. So: order, not calendar.

shipped 2 of 6 next · the mark goes live
00the toolshipped

The vault scanner, the four panes, claims with a date, settlement from four source kinds, the hash-chained ledger, the refusals. 201 tests, zero dependencies, MIT.

01the pulseshipped

Alive against dead, said against right, and the gap between them printed where you cannot avoid reading it.

02the mark goes livenext

A pool on Robinhood Chain. The address lands on this page, the chart mounts itself, and every field that is a dash today fills from the chain.

03the window opensplanned

The burn runs on the clock above, and each one is written into the ledger with its transaction hash so it can be checked without trusting this page.

04settle in publicplanned

A shared board: claims, confidences and outcomes that anybody can read. The score stops being a number you keep on your own machine.

05more sourcesplanned

More things a claim is allowed to read, each one added the same way: only if a stranger can check the answer.

11

honest limits

tamper-evidentNot tamper-proof. Whoever holds the ledger can rewrite it end to end — a test proves it. It catches the single edit people actually make.
the demo is a demoReproducible, and not a record of anyone’s forecasting. Yours starts empty.
the endpoint can be downThen the claim stays open rather than settling on a guess. yoink doctor --chain says who answered.
it predicts nothingNo model, no opinion. It records what you said, reads what happened, and does the subtraction.