[v] Verified
RPC endpoints only deliver bytes. A wrong or dishonest endpoint can be slow, but it cannot change what you run.
runs on Solana devnet today
chainboot stores whole Linux systems on the Solana ledger and runs them on your own computer, in your own terminal, at native speed. There is no server in between: it reads the chain through the RPC endpoints you give it and checks every byte.
# how it works
A Solana transaction can carry 3,912 bytes of free data for a fixed fee of 0.000005 SOL. chainboot cuts a file into pieces and puts each piece into a transaction.
Lists of signatures are stored the same way, forming a small tree. The signature of the top transaction is all you need to find a file of any size, with its size and SHA-256.
One request returns a whole block with hundreds of the file's transactions. That is why a single endpoint with an API key downloads Ubuntu base in one to three seconds.
Signatures and hashes are checked before anything is used. The system is unpacked once and runs directly on your processor: no emulation.
# what you get
RPC endpoints only deliver bytes. A wrong or dishonest endpoint can be slow, but it cannot change what you run.
Programs run on your own processor. Work is spread over all your endpoints, with batching, hedging and learned rate limits.
Your machines are saved to chain, encrypted with a key that only your wallet can make. No account, no company.
What you publish is encrypted for your wallet alone. Sharing with everyone takes an explicit --public.
Ubuntu is the example, not the limit. Any Linux distribution, on amd64 or arm64, can be published by anyone.
Built on a TypeScript SDK with no dependencies: files on chain, pointers, an RPC pool, wallet-derived encryption.
# and more
Machines run in a user namespace: no sudo, no password. Where a computer does not allow that, they run through sudo.
With --boot the system's own systemd starts: services, timers, logs, and a network of its own for the machine.
A lazy machine fetches each file from the chain when it is first read. Solinux opens in about 4 seconds instead of 15.
Give one other wallet a saved machine or a private image. Nothing is uploaded again: they receive the keys of exactly that.
list:2:A,B,C: a system counts when two of three publishers have the very same one. No single key can change it.
The pointer to your newest catalog or save can also live in an account: one request reads it, and nobody else can write there.
chainboot disk writes a machine out with its own kernel, as a UEFI disk for a PC or a virtual machine.
A 30 kB script finds, downloads and verifies a system with nothing but fetch and WebCrypto. Try the reader.
Any chain that answers Solana's RPC is added by name. Where the Noop program is missing, the Memo program carries the data.
# chainboot list
Measured on Solana devnet, on a cloud computer with 14 endpoints. From an empty cache to a running system: Alpine 3 s, Solinux minimal 4 s, Solinux 15 s (4 s as a lazy machine). Every later start: 0.2 s.
# continue anywhere
Sign one message with your wallet. From it chainboot derives an encryption key and a small helper account that pays the fees, so the wallet is never asked again. Everything you change is saved after each session, encrypted. On another computer: sign in, type the same command.
$ chainboot login Signed in as 7xQp…r5uu on devnet. $ chainboot run solinux You have a saved machine named solinux on chain. Bringing it back instead of starting from scratch. ✔ restored "solinux" from save #12: 141 entries root@solinux:~#
# publish your own
# set up a machine the way you like it $ chainboot run solinux-minimal --name mybox $ chainboot export mybox mybox.tar # for yourself (the default): encrypted $ chainboot publish mybox.tar --name mybox \ --version 1.0 --reuse solinux-minimal $ chainboot run me/mybox # for everyone: say so $ chainboot publish mybox.tar --name mybox \ --version 1.0 --public --keypair me.json
A root file system of any distribution works: a download from the distribution, a debootstrap, a docker export, or a machine you configured by hand.
# the sdk
ChainStorefiles of any size on the ledger, addressed by one signature, verified on readputPointer / getPointernames that only their owner can moveRpcPoolmany endpoints that behave like one fast, reliable onederiveVault / seal / openencrypted private state unlocked by a wallet signaturePackage registries that cannot be changed quietly. Development environments shared with one line. Game saves owned by the player. Websites whose every file is on chain. The docs have a page of ideas. The full reference is in the SDK guide.
import { RpcPool, ChainStore, Keypair } from "chainboot"; const store = new ChainStore(new RpcPool([url])); const me = Keypair.fromFile("me.json"); // write: any size, resumable const ref = await store.put(me, data); // read: verified against its SHA-256 const back = await store.get(ref);
# install
curl -fsSL https://raw.githubusercontent.com/bettercallfolio/chainboot/main/install.sh | shchainboot rpc add <your endpoint>free from Helius, QuickNode, Alchemy, Triton, Ankrchainboot run solinuxUbuntu 26.04 LTS, straight from Solanachainboot uior point and click, in your browserGetting started has the details. Linux runs machines directly. Windows uses WSL 2. macOS uses OrbStack, Docker Desktop, Podman or Lima. The installer checks every download against its SHA-256.
# honest status
--boot# thank you
chainboot stands on the work of the engineers who built Solana and made 4096-byte transactions possible, the RPC providers who serve the ledger, Canonical and the Ubuntu, Debian and Alpine communities, the Linux kernel developers, and the authors of xz, Zstandard, Node.js and TypeScript. The full list.