A Rust app-chain built for fiat-to-crypto trades: escrow with arbitrated disputes, threshold-signed vaults for Bitcoin, Ethereum and Tron, a one-to-one USD stablecoin, and a free action budget instead of gas fees.
A fiat-for-crypto trade needs a holder for the crypto leg until the fiat leg settles. Today that holder is a company. On Keelchain it is a deterministic state machine, and every front end is just a client of it.
Offers, trades, payment windows and disputes are chain actions. Arbitrators are elected by governance and rule on evidence, on chain.
Bitcoin, Ethereum and Tron enter through observer-attested vaults with CGGMP21 threshold-signed keys. Light clients verify deposits against checkpoints.
A USD stablecoin minted only against vaulted USDT. Trades and fees are quoted in it, so nobody carries an unpriced token risk.
Every account gets a free action budget that regenerates daily. Lock KEEL for more capacity, get it back in full on unlock.
A read API for everything the explorer shows, a node RPC that accepts signed actions, a WebSocket block feed, and a TypeScript SDK that encodes, signs and submits. The first client is a live marketplace; yours can be a mobile app, a bot or a desk.
Blocks, accounts, markets, offers, trades, vaults and governance at testnet.keelchain.com/api/v1.
Ed25519 keys. Users bring their own through Keel Wallet, or your service holds keys for custodial accounts.
Post signed actions to testnet.keelchain.com/rpc/v1, get a receipt with events in the next block.
Accounts receive Bitcoin and Tron through vault addresses the chain assigns; on the testnet that is signet BTC and Nile USDT. How deposits work.
Want your service to attest trades or hold a role? Write to [email protected] and it goes through governance.
# node status, no key needed
curl https://testnet.keelchain.com/rpc/v1/status
# an account's balances and nonce
curl https://testnet.keelchain.com/rpc/v1/accounts/<address>
# who attests, observes, arbitrates
curl https://testnet.keelchain.com/rpc/v1/gov/roles
// @keelchain/sdk — place a limit order
import { Keypair, RpcClient } from "@keelchain/sdk";
const rpc = new RpcClient("https://testnet.keelchain.com/rpc");
const me = Keypair.fromSecret(process.env.KEEL_SECRET);
const tx = await rpc.send(me, { PlaceOrder: {
pair: "BTC-KUSD", side: "buy", order_type: "limit",
price: 60_000n * 1_000_000n, quantity: 100_000_000n,
}});
console.log((await rpc.waitReceipt(tx)).events);
A browser extension that creates a 24-word wallet, signs you in to Keelchain clients without a password, and shows you exactly what you are signing before it leaves the page. No server, no telemetry.


One validator, one observer, signet Bitcoin and Nile Tron vaults, governance with a 60-block vote and a 10-block timelock. Everything resets between releases; nothing has value.
Third-party front ends, attesters and observers join through governance. The first marketplace client runs on the testnet today.
After a threshold key ceremony across independent signer hosts, a genesis allocation and a published audit. No date.
Public testnet. Nothing on Keelchain has monetary value yet.