Skip to content
View ram0verflow's full-sized avatar
🏗️
Building something crazy today
🏗️
Building something crazy today

Highlights

  • Pro

Organizations

@Elit-Dynamon

Block or report ram0verflow

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ram0verflow/README.md

ROFL

A small Bitcoin-like chain whose canonical ledger is this README.
Proof of work is subset-sum, not hashing — so mining rewards a better solver, not better hardware

Block explorer · Consensus spec · Mine a block · Send coins · Node


ROFL ledger, height 3284

height 3284
tip dc5183151fc3509e5df95031cfeab685fbd777e011243c9bc76814cda7533bda
difficulty 4.7 (bits 0x1e036f09)
chainwork 3,862,535,174,013,960,724,158,737,811,002,957,870,368,520,276,343,417 expected hashes
supply 20999.56511865 ROFL in 3285 unspent outputs
next reward 0.00152587 ROFL
next retarget in 11 block(s)
next halving in 75 block(s)
transactions 3287

Recent blocks

# hash miner message txs reward mined
3284 dc5183151fc3509e5df9… @ywltby 排位,比世界赛决赛还难打。 1 0.00152587 2026-09-21 20:36 UTC
3283 e63789f8da2a446ee15a… @ywltby 真的假的? 1 0.00152587 2026-09-21 20:21 UTC
3282 57dfb59f022fe92cd29c… @ywltby 康神开播了? 1 0.00152587 2026-09-21 20:00 UTC
3281 2fc4283e3820e3529680… @ywltby 不要小瞧EDG所有人的羁绊啊。 1 0.00152587 2026-09-21 19:45 UTC
3280 887de418b95190f83808… @ywltby 现在拿了世界冠军还在骂我,那拿了世界冠军有什么用呢? 1 0.00152587 2026-09-21 19:34 UTC
3279 12ae71b8eeb301fd06e3… @ywltby 天不生我ZmjjKK,瓦圈万古如长夜。 1 0.00152587 2026-09-21 19:13 UTC
3278 1279d8bd411a1a5fb9d4… @ywltby VCTCN,你们的王回来了! 1 0.00152587 2026-09-21 19:00 UTC
3277 e3fa0a3f55d9eb6f55a3… @hbzhong 显卡说它还能再做一套卷子。 1 0.00152587 2026-09-21 18:59 UTC
3276 75dbae21a7fc169d825a… @ram0verflow no industrial use cases to influence its value 1 0.00152587 2026-09-21 18:50 UTC
3275 512b6dfe6b6da26af6e9… @ram0verflow consciousness that aligns with truth flourishes; systems that reject truth decay 1 0.00152587 2026-09-21 13:28 UTC

Miners

miner blocks share
@ywltby 1358 41.3%
@ksanjeev284 488 14.9%
@americanvain 315 9.6%
@hbzhong 213 6.5%
@sd5884703 164 5.0%
@uselessfree 110 3.3%
@k11agent 100 3.0%
@bulanzade 96 2.9%
@ram0verflow 71 2.2%
@ethahae 69 2.1%
@eltociear 50 1.5%
@b81913221-ai 45 1.4%

Balances

Find your own name here once you have run python3 wallet.py identity.

holder address balance
@ksanjeev284 rofl1qn2wv00sq9a875c7pmqf4hfu2ca2y7fa0le96wk 15112.50000000 ROFL
unclaimed rofl1qhkhmy848s09y2jyly8jexk4gd3gnrrclxj2exx 2062.52441399 ROFL
@ywltby rofl1qrrj2pn86jy9ylnatdwuqfazq0ur5pv7xq9lja3 734.80156132 ROFL
@eltociear rofl1qdsfz9v9r2hc798k26egt33zxj8ysg4cgwgcw2z 612.50000000 ROFL
@uselessfree rofl1qm3zqhkwlh85xsaktutuculxhcqnd8vwnj6rt3z 589.84375000 ROFL
@bulanzade rofl1qhu2r7ghewxnxgkruvrx94udl3nduj2a5u3w2my 468.75000000 ROFL
unclaimed rofl1qx5yhylqaa428e8yc3hqseh8z0pe79qe4cpsyxe 272.97973622 ROFL
unclaimed rofl1qyhsqc8t5ldhasar60yfq5u73ga69n94atrg6pt 218.75000000 ROFL
unclaimed rofl1qxu56n53xphqyvpxdqgdny8rvg5hvuw5n58s6ke 174.41506250 ROFL
unclaimed rofl1qhspne7a9fdpv9ne4x8jvklcf38mn3askher4xh 150.09765625 ROFL
unclaimed rofl1q3jwm3gz2s9xy7wa5hg0cgcn9k2s56uma79ynfl 150.00000000 ROFL
unclaimed rofl1qe02gy6ye34lygmska4j93ul03y2hher4rwc2vp 106.25000000 ROFL
@lovivi rofl1qgz45v82mfe8ksyyfezss7m2p8udlsdwp0984vv 93.75000000 ROFL
unclaimed rofl1qnxjnqn35kf6cqutjyfwz4xnldyextf904gxe24 77.34375000 ROFL
unclaimed rofl1q5yjjcsx8nmxxej5djurawqyxepzhqwcxumhret 50.00000000 ROFL
unclaimed rofl1qslgfl5lmx0czpcyq9g6qh29cdrq238mapaxcr5 37.50000000 ROFL
@KirkLee12345 rofl1qkf8jkr6xz5jaa7a33usnvl3x2njcvzlrgjpe62 37.50000000 ROFL
unclaimed rofl1q3yhuearvq4kktun6caezqwdnkaeqmx9gcjlajy 12.50000000 ROFL
unclaimed rofl1qgzsmx8axle22lgkj8gulm3rh9hzcd9jjjzmlq0 12.50000000 ROFL
unclaimed rofl1qrpnrtc6jnaku3lpaghdn6z6gxf4h88jrdpcmxw 6.25000000 ROFL
@k11agent rofl1qewcjd6x7catlvufhqr9ml6ul3j2d3up367fzmx 5.18798797 ROFL
unclaimed rofl1qp86qhl5pats9c28n48zd9pjda8t4jjeqwk7p44 4.68750000 ROFL
unclaimed rofl1qzmkk6cfxs3jd322twyv7luy9eqdpcn2znmusvq 3.12500000 ROFL
@hbzhong rofl1q722t3c2emfk7utwz4y09xwxs0670kknthwuler 2.36205962 ROFL
@iamgd67 rofl1qhqgh92s92snreh5w3afslt2cv3fv7ekuxuz264 2.33275000 ROFL
unclaimed rofl1qyk9qfjwgth2dfazpx9msskj3sswln76x0x9hqa 0.72631818 ROFL
unclaimed rofl1qyj5rcsu0wazjesvrve9utmvty4t8p0n9ulsd2f 0.21972627 ROFL
unclaimed rofl1q2fuw29475jc0mf2tfmufkf90u76pxwtlxn997z 0.06408665 ROFL
@bg6qcn rofl1qvz2auqlgxzgrhhx4x5q6cwrw3723699y6f2a7z 0.04882812 ROFL
unclaimed rofl1q4mmpdyvcsg54838jppvdm4plzpvt4kw9vqlprm 0.03356928 ROFL
@githubskylh rofl1q4vdjjqjdeay87dmjmqu0hewv578k9uwkcf8qjf 0.01831053 ROFL
unclaimed rofl1ql2wuplshkc5586ea8hejg93eft8cun473xc2v5 0.00305175 ROFL

Recent transfers

block from to amount note
1729 @iamgd67 @ywltby 0.01000000 gm
11 rofl1qhkhmy848s0… rofl1q3jwm3gz2s9… 100.00000000 gm @notram0verflow

Rendered from chain/blocks.jsonl at height 3284. Verify it yourself: python3 verify.py


What this is

Everything here is real except the money. Coins move in UTXOs, spent by ECDSA signatures over secp256k1 — the same curve Bitcoin uses, with RFC 6979 deterministic nonces and low-s enforcement. Difficulty retargets every 16 blocks against how long the last window actually took, clamped to a factor of four. The subsidy starts at 50 ROFL and halves every 210 blocks. Coinbase outputs need 10 confirmations before they can be spent.

The one deliberate departure is the work function. Mining ROFL means solving subset-sum puzzles, not grinding hashes.

Given 40 numbers and a target, find the subset that adds up to it exactly. Verifying an answer is one loop of additions. Finding one is meet-in-the-middle at 2²⁰ time and memory — and memory is what binds, which is why difficulty comes from solving more puzzles rather than bigger ones. A block at the floor needs 1; the ceiling is 3,000, about as many solutions as fit in one GitHub comment. Difficulty stops there, because past that point a harder target buys no extra work.

Nobody has built an ASIC for subset-sum. The reference solver in miner.py is deliberately plain, and beating it is the entire sport. @ksanjeev284's CUDA solver is the fastest one anybody has published so far — it stays out of here because "no dependencies" is the pitch, not because it doesn't work.

The full rules, the measurements behind every constant, and each place this knowingly diverges from Bitcoin, are in SPEC.md.

Mine a block

No dependencies. Python 3.9 or newer, standard library only.

git clone https://github.com/ram0verflow/ram0verflow.git rofl && cd rofl
python3 wallet.py new                                  # make a key pair
python3 miner.py --miner YOUR_GITHUB_HANDLE --message "gm"

It solves puzzles until the block is complete, then prints a line starting with rofl-block-v1:. Paste that as a comment on the block issue. A workflow validates it and, if it holds up, appends it to the chain and updates this page.

About half a minute at the starting difficulty. If the chain gets busy, difficulty rises and you solve more puzzles — that is the point.

Your GitHub handle seeds your puzzles. Two things follow. Nobody can submit your solved block as their own, because a different handle means different puzzles and the work would have to be redone. And copying a solution out of the comment thread gets you nothing, because it answers a question only you were asked.

Send coins

python3 wallet.py balance
python3 wallet.py send --to rofl1... --amount 1.5 --memo "gg"

That prints a rofl-tx-v1: line. The memo rides inside the signature, so it cannot be altered or stripped on the way, and it shows up in the ledger above.

Two ways to submit it, and they do the same thing:

  • Comment on the mempool issue. Ten seconds.
  • Pull request adding one file under chain/pending/, if you want the contribution on your profile. The node reads the file, applies the transaction to main and closes the PR — it is never merged, so your submission can't conflict with anyone else's.

Either way it waits in the mempool until a miner includes it. Higher fees get picked first, and the fee goes to whoever mines the block.

Put your name on your balance

python3 wallet.py identity --handle YOUR_GITHUB_HANDLE

Post the rofl-id-v1: line it prints on the mempool issue from the account it names. The signature proves you hold the key; posting it from your account proves you hold the handle. Your name then appears beside your balance in the table above.

This is display only. It gives nobody any authority over your coins — those are spendable by signature and nothing else — and verify.py ignores the registry completely.

The explorer

A README is one file served identically to everyone — no scripts, no per-visitor anything. So the personal view lives one click away, at the block explorer.

It fetches chain/blocks.jsonl and replays the entire chain in your browser: every hash, every merkle root, every difficulty retarget, every signature, every subset-sum puzzle re-checked against its target. The consensus rules in docs/app.js are a direct port of the Python, and the two agree bit for bit.

Tell it your GitHub handle once and it remembers — your balance, the blocks you mined, your transfers, your rank. That is stored in your browser and sent nowhere. Search takes a block height, a block hash, a txid, a rofl1… address or an @handle.

Nothing on that page is served by a backend. There isn't one.

Verify everything yourself

python3 verify.py

Replays every block from genesis: recomputes each hash, re-derives every difficulty retarget, rebuilds every merkle root, checks every signature and every coinbase amount against the subsidy schedule, and asserts that emitted supply equals unspent supply.

It reads only chain/blocks.jsonl. It does not trust this README, the workflow, or any cached state. If I ever rewrite history, this is what catches me.

python3 tests/test_chain.py

Builds a chain in memory, spends real coins with real signatures, then tries to break it nine ways — tampered subsets, forged signatures, inflated coinbases, double spends, stolen blocks, padded solutions, wrong difficulty, deleted blocks, stale tips — and asserts every one is rejected. Runs at a shrunk puzzle size so the whole suite takes seconds.

Layout

rofl/crypto.py       secp256k1, RFC 6979 ECDSA, bech32
rofl/pow.py          subset-sum: instances, solver, verification
rofl/consensus.py    nBits, retargeting, merkle, UTXO set, validation
rofl/chain.py        load, replay, extend
rofl/render.py       this page
docs/                the block explorer — consensus ported to JavaScript
miner.py             the reference solver — beat it
wallet.py            keys, balances, signed transactions
verify.py            independent full-chain verification
submit.py            what the workflow runs
SPEC.md              the consensus rules

Limitations

One writer, so no reorgs. Two miners who solve the same height race on submission time; the loser is handed the new tip and mines again.

The reference solver is pure Python and wants about 200 MB while it runs. That is the memory wall meet-in-the-middle hits, and the reason difficulty scales by puzzle count instead of puzzle size.

Proof of work makes a rewritten history detectable to anyone holding an earlier copy. It does not make one impossible. This chain lives in a single repository and is exactly as durable as that. SPEC.md §13 and §16 say the same thing in more detail.

ROFL coins are worth nothing and always will be. rofl-wallet.json holds a private key in plain text — never reuse it anywhere that matters.

License

MIT.

Pinned Loading

  1. go-file-explorer go-file-explorer Public

    Go

  2. continuumd continuumd Public

    A local memory daemon for LLMs. Treats the context window like RAM: a kernel pages relevant history in and out on demand, the model asks for more when it's missing something, everything is versione…

    Rust

  3. portfolio portfolio Public

    Shell-first portfolio for ramoverflow.dev — content.json edited on GitHub, live without a redeploy

    JavaScript

  4. ram0verflow ram0verflow Public

    A small Bitcoin-like chain whose canonical ledger is my README. Proof of work is subset-sum, not hashing.

    Python 65 39

  5. rust-payjoin rust-payjoin Public

    Forked from payjoin/rust-payjoin

    Supercharged batching to save you fees and preserve your privacy

    Rust

  6. upi-402 upi-402 Public

    Open HTTP 402 payment standard for UPI — AI agents pay for API endpoints using UPI mandates. PA-agnostic. No intermediary.

    TypeScript