keicoin.org Use cases DocsExamples Status llms.txt

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.

bun add kei-transaction
Read the docs →
Live Public testnet 0.000001 Kei per press

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.

EmblemUnus KeiOwl and boulder
The Kei coin: an owl pushing a boulder uphill between two olive branches, with UNUS KEI above and a lyre marked with the Roman numeral one below.

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
See what people ask for →
ComponentWhat you build todayOn Kei
BalancesA table, a service, and a permanent worry about rollbacksconsensus
OwnershipAn inventory table plus the index that makes it queryablebalanceOf
EscrowYou hold the item, so you are now a custodianthe offer locks it
SettlementA transaction you have to get exactly right, every timeatomic, or nothing
Price historyAn events table and a reporting jobread the chain
PaymentsA processor, a floor of about fifty cents, and a compliance surfacefree, 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
Read the integration guide →
Player — browser
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())
Issuer — server only
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)
})

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 →
Active tracksFinished by a condition, not a date
  • 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, reporting store_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.economy recipes and loot-table drops, kei.shop — the player-owned stall, through the player's own key — and @keicoin/market@0.4.0 all 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
  • No signup
  • No API key
  • Testnet only
  • MIT

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.

bun add kei-transaction
Read the docs →