Skip to main content
[ ARKIV ]HUB
Tools
Tools · proposed · Local devLater

Deterministic tests with no chain — for when faucets aren't an option.

A drop-in fake of the Arkiv client that keeps entities in memory and reproduces the real semantics. It's deterministic test infrastructure — not "avoid the faucet". On testnet the faucet is easy, so this waits; on mainnet (real gas) and for serious CI, a fast offline double earns its keep (category c).

Why later: Most valuable on mainnet, when you can't freely test against real gas. On testnet the faucet is easy.

arkiv-localtestingCItest-doublelater
Status
Later · mainnet-era
Type
Tool
Feasibility
Medium
THE IDEA

An in-memory client that behaves like Arkiv (TTL expiry, attribute queries, batch, full-replace) so unit tests and CI run instantly and deterministically — no testnet, wallet, or gas.

The problem today

  • Tests that hit the network are slow (block time), flaky (RPC), and need a funded wallet in CI.
  • Expiry behavior is nearly impossible to assert quickly against a live chain.
  • Today the faucet makes testnet testing easy enough — so this is a LATER tool, not a now tool.

What it would do

  • In-memory store with the same API shape as the public + wallet clients.
  • Reproduces TTL expiry, attribute predicate queries, mutateEntities batching, and full-replace updates.
  • Vitest/Jest helpers: reset between tests, seed fixtures, fast-forward time to assert expiry.
  • Marks tx hashes and finality as simulated — it's a test double, not a chain.
WHY IT’S A BETTER EXPERIENCE
  • Deterministic, millisecond, offline tests — the loop every web2 dev expects, especially in CI.
  • Lets you assert expiry behavior in a unit test, which is impractical on-chain.
HOW IT COMPARES
Firebase Emulator Suiteoffline/CI testing without prod — the feature Firebase devs love most.
Local L3 dev env (WIP at Arkiv)a real local chain for heavy/load testing. This is a fast in-memory double for unit tests — complementary.
FEASIBILITY — AND WHY THIS ISN’T HAND-WAVING
Medium to build

A faithful in-memory reimplementation of query predicates + TTL + full-replace. The honesty bar (simulated finality) matters more than the code.

Grounded in

  • Arkiv DX audit lists "no local dev env" as a real gap; CI/determinism is the sharpest consequence.
  • Semantics to mirror (full-replace, TTL, predicate query) verified live on Braga.
  • Deferred per product call: testnet faucet is easy today; this matters at mainnet.
PAIRS WITH
arkiv-localThis is a proposal— not built yet. It’s here so the case can be read and the idea ranked. Want it? Open an issue on the Arkiv GitHub.
© 2026 Golem Factory · Braga testnet · Proposed tool — status: not yet.