arkiv-indexing
Mirror Arkiv state into an application
When to use
Use this skill when an application needs a derived current-state projection or deliberately retained historical snapshots of Arkiv entities. Use arkiv-query for a one-off read, arkiv-app-integration for delivery/cache behavior, and arkiv-troubleshooting first for an existing error. Use arkiv-security-trust for creator policy and application authorization.
The examples target SDK 0.8.1 and Tiramisu. Building a local projection does not authorize deleting source entities, dropping user tables, deploying a worker or retaining private application data. Keep the indexer's projection ownership and retention policy explicit.
Compatibility gate: arkiv-sync
Published arkiv-sync 0.3.0 depends on SDK 0.8.1 and viem ^2.57.3. Strict npm installation, public API typechecks and the create-arkiv-sync@0.3.0 default scaffold passed with those versions. Funded Tiramisu tests used the same compiled sync module. Before running a worker or funded quickCheck, configure source inputs, a locally held authorized signer, sink network and spend budget.
This package reads EVM contract events into Arkiv. Its public entries include EvmSource, createIndexer, ArkivSink and createArkivReader. The custom consumer below reads Arkiv into an application projection; installing sync does not turn it into that reverse mirror or provide application authorization.
The historical 0.2.2 archive depended on SDK ^0.6.8, statically imported a chain absent from SDK 0.8.1 and used removed query/mutation APIs. Release 0.3.0 updates chain selection, typed SDK queries, full replacement through set/unset mutations and fresh pinned scans. Those source changes, not an RPC URL or widened dependency declaration alone, resolve the old incompatibility. Do not recommend 0.2.2 for this consumer.
Use the installed AGENTS.md and README for configuration, source checkpoints, owner/sync isolation and reorganization recovery. Serialize the signer and preserve a durable caller write journal. WriteReconciliationRequiredError stops further writes until the known outcome is reconciled; restart is not evidence that an earlier write failed. Controlled source/reorg fixtures do not prove a natural network reorganization, and the default external ERC20 source has not been certified by those native-event tests.
The 0.3.0 package's archived candidate evidence and some README wording predate publication. They describe that historical execution, not current registry availability. The registry-installed dist/index.js SHA256 180b2346b53d95c5f3e7a363b4e15be627a9d1fabb6375ec8d9b546d1028f90a matches the archived tested entry. Check the versioned manifest and installed module independently; do not read publicationVerified: false in a candidate receipt as proof that the package is unpublished.