wire format: 8 bytes. big-endian uint64. UDP port 37373. that is the entire spec.
every second, the capacitor mixes all contributions with /dev/urandom into a SHA-256 chain. each epoch produces a new hash of everything before it. your contribution changes what everyone else derives next — and what this page suggests next.
the commands below derive from three independent sources mixed at the moment of each epoch:
SHA-256(chain + session + time + counter) produces each value. when you contribute one, it mixes into the next epoch, which changes the chain, which changes what this page derives, which if contributed again creates a cascade. the old values cease to exist. the rate limiter (3/sec) prevents flooding — you contribute, you watch, you contribute again with fresh data.
this proves the chain accepts self-referential input safely. derived values carry entropy from all three sources. even two browsers viewing the same page derive completely different values. the chain cannot degenerate because /dev/urandom mixes into every epoch regardless.
copy a command, paste into a terminal. watch the chain advance. your old command vanishes, replaced by one derived from the new chain state + your session + the current time.
stream entropy via server-sent events:
curl -N https://blobrand.com/entropy/stream
poll the current chain state:
curl https://blobrand.com/entropy/chain
check pool health:
curl https://blobrand.com/entropy/status | python3 -m json.tool
these bytes are public — every reader gets the same ones. that makes them useful for shared draws, coordination without a coordinator, and verifiable shuffles, and useless as key material. the consumer guide covers every use with code, and the ones that will burn you.
run deskblob to harvest entropy from desktop chaos continuously:
cd ~/git/deskblob && make run-capacitor
or feed /dev/urandom into the pool (single socket, one contributor ID):
python3 -uc "import socket,time,os,sys;s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM);n=0
while True:b=os.urandom(8);s.sendto(b,('blobrand.com',37373));n+=1;sys.stdout.write('\r#'+str(n)+' '+b.hex());sys.stdout.flush();time.sleep(1)"