sdrrand v0.1.0

True-random entropy, relayed from real RTL-SDR hardware.

Contributors run sdr-rand against a USB RTL-SDR dongle, harvest the LSBs of the ADC quantization noise, and POST the bytes here under their nuts.services identity. Anyone can drain. No PRNG. No seed. Just thermal noise from a tuner chip somewhere.

65536
Pool bytes
65536
Capacity
1
Contributors
10423520
Bytes received
4088
Bytes drained
95658s
Uptime

Drain entropy

curl https://sdrrand.nuts.services/api/entropy?bytes=32
curl https://sdrrand.nuts.services/api/entropy?bytes=64&format=hex
curl https://sdrrand.nuts.services/api/entropy?bytes=256&format=raw > bytes.bin

Push entropy (contributors)

POST raw bytes with a nuts-auth bearer token. Get one at auth.nuts.services (either an ahp_ API token or a session JWT).

# From the sdr-rand CLI:
sdr-rand push \
  --remote https://sdrrand.nuts.services \
  --token "$NUTS_TOKEN" \
  --frequency 433000000

# Or raw:
curl -X POST https://sdrrand.nuts.services/api/entropy \
  -H "Authorization: Bearer $NUTS_TOKEN" \
  --data-binary @entropy.bin

Endpoints

MethodPathDescription
GET/api/entropy?bytes=N&format=json|hex|rawDrain up to 4096 bytes (consumed on read).
GET/api/entropy/streamServer-Sent Events stream, one event per second.
POST/api/entropyPush raw bytes from a contributor. Auth required.
GET/api/statusPool stats + uptime.
GET/api/contributorsLeaderboard, by bytes contributed.
GET/healthzLiveness.