Code plus a seed
Network
Tezos mainnet
Contracts
7, from router to registry
Runtimes
Canvas 2D, SVG, p5.js, custom
License
Unlicense (public domain)
Built to survive the platform
Generative art on Tezos has already watched platforms die. EditArt shut down and its pieces still render, because the code sat on chain. HEN shut down and the community rebuilt its front end as Teia, because the contracts were unowned and the data was open. Aleatory treats both lessons as requirements. The work has to survive the site, and anyone has to be able to rebuild the site. Every design decision in the contracts, the renderer, and the spec follows from those two rules.
The studio
Four runtimes: Canvas 2D, SVG, p5.js, and custom engines. Start from a template, drop in an .html or .zip, or work in your own editor with a starter kit.
A sixteen-seed grid shows the range of a generator at a glance, since one good output proves very little.
Artists can declare up to five named, ranged parameters that a collector tunes before minting. The values are stored with the token beside the seed.
A cost estimator prices the payload against protocol constants read live from the chain.
Determinism, checked by machine
Each seed runs twice in two fresh sealed frames, and the captures are compared byte for byte.
Network access is blocked by CSP and by API override, Math.random is swapped out, and every violation is reported before publish.
Pieces run in a separate isolate origin with no network. The parent hands it the code.
Libraries are declared by npm coordinates and a hash. Any mirror works, and a renderer refuses bytes that don't match.
Contracts that give up control
Deploying a generator takes one operation, with the artist written in as admin in the initial storage. The platform never holds it, even briefly.
Code, code hash, and royalties have no setter. Artists can pause, reprice, shrink, or close an edition, and no entrypoint exists to grow one.
The collector's own operation mints the token and splits payment: price to the artist, render gas to the provider, nothing left in the contract.
Royalties cap at 25% and are credited, then claimed, so a recipient that can't receive tez never freezes trading.
Open render providers
A provider runs each new piece once in a headless harness with the clock frozen and the network blocked, pins the capture, and publishes its metadata.
Registration is free and permissionless. The registry checks three on-chain views and lists the contract.
The reference provider charges 0.05 ꜩ per mint against about 0.0066 ꜩ in chain fees.
If every provider disappeared, new pieces would arrive without thumbnails and still render, because the code and seed already sit on chain.
Open by default
ALEATORY-001 specifies the interface, so a third-party viewer, indexer, or marketplace can render every piece without reading this codebase.
Agent skills for artists, provider operators, and integrators are served from the site itself.
The list of what the front end hides is one public file, and hiding something there removes it from this site and nowhere else.
A Discord bot reads the chain and posts new generators and mints, with live totals written into channel names.
Audited, then rebuilt
Before mainnet, an adversarial audit of the full repository found three critical issues, including script execution through the sandbox shell and a server-side request forgery path in the render function. Its sharpest observation was that the comments described controls the code didn't implement. Each finding got a written response. Most were fixed in code and two were settled by documented design decisions. The contracts were redeployed, and the marketplace shipped without an admin escape hatch: it holds other people's tokens and tez, so it gets replaced, never upgraded.
Stack
Next.js 16
React 19
TypeScript
SmartPy (7 contracts)
Taquito
octez.connect
CodeMirror
Sandboxed isolate origin
Headless render provider
IPFS
Netlify
Discord bot
Art that outlives the site
Aleatory lets an artist put a fully on-chain generator on Tezos for a few tez and keep sole control of it. If the site went dark tomorrow, every piece minted on it would still render from chain state alone.

