moth

CA: ......

root · 2EG8gntgo6vm7DnrDqqycDnu transactions

moth: we put an ai on solana

we put a complete language model inside solana transaction data. the weights, tokenizer, configuration, browser runtime and a small interface are packaged together. one root signature identifies the publication.

we wanted the model itself to be the published object. not a link to an ai api, and not just a hash of a file stored elsewhere. the transaction history contains the bytes needed to recover the package and run it on your own device.

publication status: finalized. every transaction was read back and all file hashes matched.

1. the model we chose

we chose smollm2-135m-instruct from hugging face, using the q4f16 onnx export in the original model repository. the weight file is 117,691,126 bytes. we keep its source revision, license and checksums in the package.

this is a small experimental language model, not a frontier assistant. it primarily speaks english, can repeat itself and can answer incorrectly. we tested local generation before publishing. putting its weights onchain does not make its answers more reliable.

2. how we put it in transactions

we compressed 148,139,121 bytes of model and runtime files into a 106,796,105-byte package. we split it into 28,105 chunks of up to 3,800 bytes and attached each chunk to a successful solana v1 transaction.

we use the existing spl noop program. no model-sized account and no separate program deployment are needed. 486 index transactions record the chunk signatures in order. one root transaction identifies the index, source revision, sizes and sha-256 checksum. the complete publication contains 28,593 transactions.

we publish the root only after its referenced transactions finalize. actual signatures and fee totals are on the transactions page.

one additional transaction contains a corrected player page with a local tokenizer-path fix. the root pins its signature and hash; reconstruction verifies it before applying it. the original bundled page is preserved alongside it.

3. how you run it

our verifier reads the root, follows the index, retrieves the transaction data and reconstructs the compressed package. it checks the package hash, decompresses it and checks every file against the embedded manifest.

the recovered package includes a browser player and its runtime files. inference runs on your device, not on solana validators. the local player does not call an ai api or send your conversation to a model server.

transaction history is not permanent account storage. recovering the package later requires an rpc provider that retains the relevant history. we also keep a local copy of the verified, recovered files for opening the model without downloading thousands of transactions again.

view transactionsverify the model

4. talk to moth

press load inside the player to download the recovered model and run it on your device. our site launcher explicitly selects the bundled wasm runtime; the model and runtime files are unchanged.

open standalone player

requires webassembly support. this site launcher is separate from the archived onchain player.