Hartii developer docs
Hartii is a group of independent production apps on Quai Network. Each one deploys its own contracts and runs its own API — there is no shared backend. Pick a product below.
Products
- HartiiLabs — the token launchpad at hartiilabs.com: one factory, a bonding curve per token that graduates into its own locked pool, and a public read API. New to Labs? Read Buy and sell a token to trade, or Launch a token to create one. Building an app or bot? Start with Pricing a token, the API and contract maths. Paid Promoted placement: Hartii Boost. Terminal wallet + MCP server: Hartii CLI (beta).
- HartiiSwap — the ecosystem's own Uniswap-V2 AMM: pools for any token, swaps, add/remove liquidity, LP farms, and a one-call Lens. 0.30% swap fee.
- QuaiAxe (partner project; its mining vaults are run by QuaiAxe) — mining that burns $QAXE (quaiaxe.com): no-code CREATE2 deposit addresses, an ownerless burn vault with a fixed 0.5% fee, a Lens for one-call reads, and a standard Quainance V2 QAXE/WQUAI pool. Live supply, verifiable call by call: QAXE supply tracker.
- QuaiRelay — a single stateless contract that turns a QUAI transfer into a contract call, for wallets that can't send a plain transfer. No backend at all.
- Hartii Gallery — the NFT marketplace and creator platform at hartiigallery.com. Collection factory, five marketplace venues, public read API.
- Hartii Games — the skill-game arcade at hartiigames.com (plus the Biome dashboard at hartiibiome.com, which also hosts the Hartii Airdrop batch-sender (beta), the Hartii OTC Link zero-deposit P2P swap, and the Hartii Claim Merkle-claim campaign tool (beta)). Twelve games with free play, a daily challenge and replay-verified leaderboards, a Shop for cosmetic skins priced in HBOME, and prize-pool contracts (paid ranked entry is off).
Network facts
| Network | Quai Network mainnet |
| Chain ID | 9 |
| Active zone | Cyprus-1 (the only zone live on mainnet) |
| Address prefix | 0x00 — every valid Cyprus-1 address's first byte is zero |
| RPC (HTTPS) | https://rpc.quai.network/cyprus1 |
| RPC (WSS) | wss://rpc.quai.network/cyprus1 |
| Explorer | https://quaiscan.io |
| Native currency | QUAI, 18 decimals |
| SDK | quais — never ethers on Quai |
| Mining reward maturity | new mining rewards are locked ~14 days (2-week base coinbase maturity) before they mature to a spendable balance (docs.qu.ai) — irrelevant to app logic, but it explains why a freshly-mined balance can look smaller than expected |
Gotchas every integrator hits
usePathing.quais.JsonRpcProvidercan append the zone path itself. If yourRPC_URLalready ends in/cyprus1, construct the provider with{ usePathing: false }or the SDK doubles the path. If yourRPC_URLis the bare host (no/cyprus1), use{ usePathing: true }and let the SDK add it. Both patterns are live in this ecosystem's own code — check whichRPC_URLyou're holding before picking one.getFeeDataneeds the zone. Call it asprovider.getFeeData(quais.Zone.Cyprus1), not with no argument — some providers return nothing without it. Live example:hartii-labs/src/pages/BlipSend.jsx.eth_getLogs/quai_getLogsblock range. The RPC caps how many blocks onegetLogscall can scan; this ecosystem's own code treats it defensively rather than relying on a documented cap — e.g. Hartii Gallery's live activity fallback scans only the most recent 1,000 blocks per call rather than the full chain. Unverified: the exact enforced cap was not confirmed against a live RPC error for this doc; chunk your scans and handle a range-too-large error rather than assuming a specific number.- Block time. ~5 seconds per Zone block on Cyprus-1 — measured directly:
quai_blockNumberminus 1,000 blocks, compared byquai_getBlockByNumbertimestamps, gives 4,973s / 1,000 blocks = 4.97s/block (checked 2026-09-23). Plan confirmations accordingly — this is not sub-second finality. - Zone-bound addresses. An address that doesn't start
0x00is not on Cyprus-1. Sending native QUAI to it with a same-zone call is unrecoverable — validate the prefix client-side before you let a user submit.
Official links
| Site | Its own docs | |
|---|---|---|
| HartiiLabs | hartiilabs.com | hartiilabs.com/docs/ — Labs, Swap, Agent Terminal, QuaiRelay |
| Hartii Gallery | hartiigallery.com | hartiigallery.com/docs/ |
| Hartii Games | hartiigames.com | hartiigames.com/docs/ |
| Hartii (Biome) | hartiibiome.com | hartiibiome.com/docs/ |
| QuaiAxe | quaiaxe.com | www.quaiaxe.com/docs/ |
| These docs | docs.hartiilabs.com | every product in one place; each site's /docs/ is generated from the same source |
| X / Telegram | |
|---|---|
| Hartii Gallery | @hartiigallery |
| Hartii | @hartiibiome |
| QuaiAxe | @quaiaxe_qaxe |
| QuaiAxe Telegram | t.me/Quaiaxe |
For AI agents: llms.txt
These sites publish an llmstxt.org index at /llms.txt (plain text, for agents and crawlers): hartiilabs.com, hartiigallery.com, hartiigames.com, hartiibiome.com, hartii.org, hartiipay.app, www.quaiaxe.com and docs.hartiilabs.com (which also has /llms-full.txt).
Contributing to these docs
Every fact here was checked against source code in the product's repo or a live GET/RPC call —
see each page's contracts/API tables for the addresses and endpoints used. Conventions for
writing more pages: CONVENTIONS.md in this repo.