runs on Solana devnet today

Boot an operating system from a blockchain.

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.

1 to 3 sto download Ubuntu base (22 MB) through one RPC endpoint with an API key
0.2 sto open a machine you already have
0.0013 SOLto store one megabyte, forever
0servers between you and the chain

# how it works

A ledger is a hard disk, if you cut the files small enough.

1

Files become transactions

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.

2

One signature is the address

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.

3

Whole blocks, not single requests

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.

4

Verified, then run natively

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

Small program, strong guarantees.

[v] Verified

RPC endpoints only deliver bytes. A wrong or dishonest endpoint can be slow, but it cannot change what you run.

[>] Fast

Programs run on your own processor. Work is spread over all your endpoints, with batching, hedging and learned rate limits.

[*] Yours

Your machines are saved to chain, encrypted with a key that only your wallet can make. No account, no company.

[#] Private by default

What you publish is encrypted for your wallet alone. Sharing with everyone takes an explicit --public.

[+] Universal

Ubuntu is the example, not the limit. Any Linux distribution, on amd64 or arm64, can be published by anyone.

[/] A toolkit

Built on a TypeScript SDK with no dependencies: files on chain, pointers, an RPC pool, wallet-derived encryption.

# and more

A machine is only the beginning.

[~] No administrator rights

Machines run in a user namespace: no sudo, no password. Where a computer does not allow that, they run through sudo.

[@] Boots like a server

With --boot the system's own systemd starts: services, timers, logs, and a network of its own for the machine.

[z] Starts before the download

A lazy machine fetches each file from the chain when it is first read. Solinux opens in about 4 seconds instead of 15.

[&] Shared between wallets

Give one other wallet a saved machine or a private image. Nothing is uploaded again: they receive the keys of exactly that.

[=] Catalogs kept together

list:2:A,B,C: a system counts when two of three publishers have the very same one. No single key can change it.

[1] Found with one request

The pointer to your newest catalog or save can also live in an account: one request reads it, and nobody else can write there.

[o] Onto a real disk

chainboot disk writes a machine out with its own kernel, as a UEFI disk for a PC or a virtual machine.

[w] Read in a browser

A 30 kB script finds, downloads and verifies a system with nothing but fetch and WebCrypto. Try the reader.

[x] Other chains

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

On chain right now.

imagewhat it isarchdownloadcost to publish
solinuxUbuntu 26.04.1 LTS server system, 419 packages: SSH, sudo, git, editorsamd64, arm64114 MB0.12 SOL
solinux-minimalUbuntu 26.04.1 LTS base systemamd64, arm6422 MB0.028 SOL
alpineAlpine Linux 3.24amd64, arm643 MB0.004 SOL

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

Your machine follows your wallet.

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.

  • Only what is new is uploaded. A session that installs a few packages costs well under 0.001 SOL.
  • Every save is kept. Go back to any earlier one.
  • Two computers changed the same machine? chainboot tells you and never picks silently.
  • Works with Phantom, Solflare, Backpack and any Wallet Standard wallet, or a keypair file.
another computer
$ 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

Build a machine. Put it on chain.

publish
# 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.

  • Private by default. A ledger never forgets, so the safe choice is the default. Only your wallet can list, fetch or read what you publish.
  • Pay only for what is new. Files that are already on chain, like the Ubuntu base, are referenced, not uploaded again.
  • Reproducible. An image's digest depends only on its files and its start command. Anyone can rebuild and compare.
  • No program to deploy. Everything uses ordinary transactions and the existing Noop program.

# the sdk

Four building blocks. No dependencies.

  • ChainStorefiles of any size on the ledger, addressed by one signature, verified on read
  • putPointer / getPointernames that only their owner can move
  • RpcPoolmany endpoints that behave like one fast, reliable one
  • deriveVault / seal / openencrypted private state unlocked by a wallet signature

Package 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.

store.mjs
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

One line. No administrator rights.

$curl -fsSL https://raw.githubusercontent.com/bettercallfolio/chainboot/main/install.sh | sh
  1. chainboot rpc add <your endpoint>free from Helius, QuickNode, Alchemy, Triton, Ankr
  2. chainboot run solinuxUbuntu 26.04 LTS, straight from Solana
  3. chainboot uior point and click, in your browser

Getting 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

Early, working, and clear about its limits.

works today

  • Publish, list, download and verify images
  • Run machines on Linux, with or without administrator rights
  • Encrypted saves, restore, history, automatic saving
  • Private images, and sharing with another wallet
  • systemd machines, lazy machines, bootable disks
  • Web interface, wallet sign-in, reader for browsers
  • Tested end to end on Solana devnet, on every push

good to know

  • A machine is not a security sandbox: run images you trust
  • It uses your kernel; systemd boots only with --boot
  • Ledger data cannot be erased; saves are encrypted but stay
  • Windows and macOS are not yet tried on real computers
  • Not yet tried with a real browser wallet or on real hardware
  • No official images on mainnet yet
  • Devnet is a test network and can be reset

# 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.