docs · the short manual
everything num does, in the order it happens.
[what a numeral is]
An Ethereum address is a 160-bit integer. Written in decimal it is a number of up to 49 digits, and that number is the Numeral. num renders it as a cute ASCII character whose body is one big digit 0–9 taken from the address integer, dressed with deterministic traits: eyes, mouth, cheeks, hat, accessory, arms, companion, stance, background, an optional lime spot.
Same address in, same numeral out, on every machine, forever. Nothing is stored to make it; the art is a pure function of the address. Minting only records who owns it.
[the kernel]
The generator is a set of NumPy-derived array kernels, ported to TypeScript, deterministic from your address. The address is hashed with keccak256 into a seed; the seed drives a 48×24 float grid through meshgrid, sin/cos fields, blur, thresholds, mirrors and cellular automaton steps, the same array math NumPy popularised. Six body families are distinct kernels: lattice box-drawing outline, wave gradient blocks, orbit digit rings, glyph solid mirrored blocks, noise dithered fill, and the rare prime, whose body is drawn from the address's own decimal digits.
It runs in under 5ms, on the server for the SVG and OG image and in your browser for the live preview, so nothing waits on a network round-trip.
[traits & rarity tiers]
Every part is a trait with a rarity percentage computed over the address space. Numeric traits come from the number itself: digit sum, leading zeros, palindromes, repeated digits, lucky sequences. Traits roll up to a 0–100 score and a tier; the tier sets the rebate multiplier.
- common×1most numerals
- uncommon×1.5one or two rare parts
- rare×2.5several rare parts
- epic×5≤ 8% of all addresses
- prime×12≤ 2% · body drawn from the address's own digits
[mint]
Minting costs 10,000 $NUM, sent from your wallet to the num treasury on Robinhood Chain as a plain ERC-20 transfer. There are 1,000 numerals in total, one per address, and only the owner of an address can mint its numeral: the wallet you sign in with must be the address itself. Anyone can preview any address.
The flow is prepare → transfer → confirm. The server verifies the transfer receipt on chain before it records the mint; the 1,001st mint is impossible by construction.
[rebates]
Each numeral streams a basket of three Stock Tokens, chosen and weighted from its seed (weights sum to 100%, none under 15%). The stream is paid in USD terms and denominated in each leg at the live Chainlink mark, so your balance accrues in units of the underlying Stock Token.
daily = $2.00 × tier × stake boost + staked value × 45% / 365
Stake $NUM into a numeral to boost it: 25k → ×1.5, 100k → ×2, 500k → ×3, 2.5m → ×5, plus a 45% APR on the USD value of what you staked, valued at the live $NUM pool price. Unstake any time after a 24h cooldown. Rebates are funded by the num treasury and claimed in USDG once a leg is worth at least $1.
[$NUM]
$NUM is an ERC-20 on Robinhood Chain. Its address is not fixed at build time: when the token goes live the address is flipped at runtime and every open tab switches over the live stream, no redeploy. Until then, minting shows mint opens when $NUM is live. The price and market cap in the live strip come from the token's Uniswap v3 pool against USDG.
[who built this]
Creator of SciPy, NumPy, and Numba; founder of Anaconda, Inc and NumFOCUS. CEO of Quansight, OpenTeams, and OpenTeams Global, Head of Product at Zyphra
[disclaimer]
num is not affiliated with, endorsed by, or operated by Robinhood. Robinhood Stock Tokens are tokenized debt securities issued by Robinhood Assets (Jersey) Limited; they track the price of the underlying, are not shares, and carry no shareholder rights. Nothing here is investment advice.
Stock Token prices are read from Chainlink feeds on Robinhood Chain and may be held or stale outside market hours; accrual uses the last good mark. Test mints and paper claims are labelled as such and move no money.
