Your game's economy, on a chain, in one install.
Currencies and items that outlive your server, with no payment infrastructure, no balances table, and no signup. Sub-cent payments work, because transactions are free.
0 click credits, 0 available.
Press to connect to the public testnet.
Each manual press sends 0.000001 testnet-only Kei to the null account. Only available credits can be spent in the workshop; pending ones are still with the testnet.
Before you scroll
- Fees · none
- Signup · none
- Smart-contract VM · none, by design
- Network · public testnet
- Value · nothing holds any
- Licence · MIT
The owl keeps pushing. Kei makes the ledger remember how far it got.
Why Kei
The boulder is the point.
Kei means boulder in Latin. The coin shows an owl driving it uphill — our version of Sisyphus, except the work is not a punishment. It is the work of making a world persist.
Game design is a behemoth of a task. State, ownership, settlement, recovery, exploits, and the promise that what a player earned will still be there tomorrow all have to move uphill together. A restart should not send the whole thing rolling back down.
What it replaces
The auction house is the product.
Every game with an economy eventually needs listings, bids, settlement, price history, anti-fraud, and a database with a server in front of it. It is weeks of work, it is the part most likely to be exploited, and it is the part a small team cannot build safely.
A card processor cannot take a $0.001 payment, because the fee exceeds the payment. A feeless chain can — and that single fact is why the rest of this is possible.
- Feeless transfers
- No balances table
- Offer-locked escrow
- Atomic settlement
- History on the chain
- No payment processor
| Component | What you build today | On Kei |
|---|---|---|
| Balances | A table, a service, and a permanent worry about rollbacks | consensus |
| Ownership | An inventory table plus the index that makes it queryable | balanceOf |
| Escrow | You hold the item, so you are now a custodian | the offer locks it |
| Settlement | A transaction you have to get exactly right, every time | atomic, or nothing |
| Price history | An events table and a reporting job | read the chain |
| Payments | A processor, a floor of about fifty cents, and a compliance surface | free, and no floor |
The whole shape of it
Two entry points, and only two.
A key signs only for its own account, so a purchase is always two signed
transactions. There is no charge(someoneElse, …), and there
never will be — it cannot exist. Any API implying otherwise is a bug.
- Player key in the browser
- Issuer key on the server
- Two signed transactions
- No charge-on-behalf call
import { Kei } from 'kei-transaction'
// Browser. Wallet created and persisted. No signup, API key, or dashboard.
const kei = await Kei.start()
const order = await createOrder({ sku: 'sword' })
const payment = await kei.pay({ to: gameAddress, amount: 0.05 })
await attachPayment(order.id, payment.hash) // durable server-side record
await kei.token('GEM', gameAddress).then(g => g.balance())import { Kei } from 'kei-transaction'
// Server only — it refuses to run in a browser, loudly, on purpose.
const game = await Kei.server({ seed: process.env.KEI_SEED })
const gems = await game.token.issue({
name: 'Gems', symbol: 'GEM', decimals: 0,
transfer: 'open', // enforced by the chain, immutable
})
game.onPayment(async ({ from, amount }) => {
if (amount >= 0.05) await gems.mint(from, 100)
})Use cases
Find the one you were actually asked for.
Each of these answers the request in the words it usually arrives in, with the API that satisfies it and the part that does not work yet named.
Browse the documentation →add an in-game currency to my gameOne call issues it. No database, no payment processor, no balances table. →
build an inventory system for my gameItems are supply-1 tokens. Ownership is a balance lookup. There is no indexer. →
add an auction house to my gameListings, settlement and price history become consensus instead of code you maintain. →
add an economy to my MMOA hosted Babylon.js + Colyseus prototype keeps gold and items in the Kei SDK ledger instead of the game database. →
hand out rewards to a lot of players at onceOne issuer block covers the whole batch; every player claims in parallel. →
take micropayments in my game or appA card processor cannot take $0.001, because the fee exceeds the payment. A feeless chain can. →
What is being built, right now
Four tracks, and none of them is mainnet.
They run at once rather than in order, and each one is finished by a condition somebody could check — not by a date. The milestone ladder is retired: a page still quoting a number off it was describing a plan that no longer exists.
Mainnet is deliberately not one of them. It is not a build task: validator distribution, reserve governance and a legal conversation gate it, and none of those are shipped their way through. Nothing here is mainnet-ready.
What each track owes, and the commands that prove it →- Economy DXThe priority. The primitives ship and are measured; what is being closed is the distance between an economy you can describe in a sentence and the code that runs it.
- Create Kei MMOThe creation harness. An unpublished draft, and far from its own claim — fresh blank 2D and 3D projects now install, build, and prove a first shared authoritative encounter, but the one bounded harness pass still stops at the first plan step.
- Chain and public networkOne node at
https://testnet.keicoin.org/rpc, reportingstore_version 24, with conformance run against it rather than a fresh CI database. - Surfaces — wallet, examples, this siteBoth wallets merged, Button and World of Wonder running. Carpet Markets is the weak one, and it is a mock-chain demo.
Read this before you commit to anything
Where this actually is.
This is published early on purpose. A page that only starts being honest on launch day was never honest — and the admission is a filter for the developer who would otherwise arrive with the wrong expectation.
The full status page →Public testnet · no mainnet · nothing here holds value
- What you can install is
kei-transaction@0.8.0, with the coordinated@keicoin/*release graph beneath it. Item stats, the roll-supply fix,token.burn(),kei.economyrecipes and loot-table drops,kei.shop— the player-owned stall, through the player's own key — and@keicoin/market@0.4.0all install with it. Kei.start()defaults to the public testnet. It is one rate-limited, best-effort dev node with weak consensus, no uptime promise, and no monetary value;Kei.mock()remains available for tests.- Rooted claims and atomic swaps settle on that testnet, measured on 3 August 2026 rather than inferred from CI: a claim lands, a double claim is refused, an offer locks its units, and one accept moves both legs — over the public URL. Run it yourself with
bun run test:m3-live. - The demos are demos. Carpet Markets rebuilds its no-value mock from a Durable Object event log across eviction; the hosted World of Wonder uses a process-local mock that resets. Carpet Markets is still weaker than the launchpads it is modelled on, and it is not production-ready or mainnet-ready — deliberately, because a launchpad is the worst possible first thing to put on a real network.
- Create Kei MMO does not produce a complete working MMO yet. It is an unpublished draft: it plans a project and runs one bounded pass at the first step of that plan. At draft integration checkpoint
b6edae7, criteria 2–6 are met only for fresh blank 2D and 3D construction scope: they install, build, prove two headless clients see each other move, preserve server-assigned identity, position, XP, and derived level across clean restarts, and run one atomic Kei trade held and signed by the players rather than the game server. SQLite stores a hash of the resume token and no economy state. Criteria 1, 7, 8, and 9 remain open; account recovery, socket-to-wallet proof, multi-writer and crash-loss guarantees beyond WAL, scale, and public hosting are not established. - There is no token, no mainnet, and nothing holds value. Until the validator set is meaningfully distributed, nothing should.
- Nobody can show you the whole order book. An offer lives on its author's chain and Kei ships no indexer, so every front end — including the standalone wallet's market panel, now wired to the chain — shows the offers of accounts it has heard of and says so.
- There is no smart contract VM, deliberately. If your design needs one, Kei is the wrong tool, and this page would rather you found that out here.
For agents
If you are a model reading this for somebody.
Both files are the same facts as this page, because a site that tells a human one thing and an agent another is a site that will be quoted wrongly.
- No signup
- No API key
- No dashboard
- No OAuth
- No interactive prompt
- The wallet is the account
Start with the package, not an account.
There is nothing to provision. Install it, point it at the public testnet, and the first transaction is the tutorial.