Skip to main content

Overview

A Shinzo HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. is a service that turns indexed blockchain data into ViewsView A curated, SDL-defined representation of defraDB documents. Views transform raw indexed data into a structured output shape. that applications can query over GraphQL. It receives signed data from one or more IndexersIndexer A node that reads blockchain data from a source chain, parses it into structured documents, and writes them to defraDB. Indexers are write-only: they push data out over P2P and reject all incoming replication. over a peer-to-peer network, verifies it, runs WebAssembly transforms over it, and stores the results in a local DefraDBdefraDB A peer-to-peer, document-oriented database embedded in every indexer and host. It handles storage, content addressing, CRDT merging, query serving, and P2P replication via libp2p. instance.

A HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. is not an IndexerIndexer A node that reads blockchain data from a source chain, parses it into structured documents, and writes them to defraDB. Indexers are write-only: they push data out over P2P and reject all incoming replication.. It does not talk to a source-chain execution client and does not pull blocks from GethGeth Go-Ethereum, the Go implementation of an Ethereum node. Each indexer runs alongside a Geth node and connects over WebSocket (port 8546) and JSON-RPC (port 8545) to fetch block data., Reth, or the equivalent node on other supported chains. Instead, the HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. consumes primitive documents that IndexersIndexer A node that reads blockchain data from a source chain, parses it into structured documents, and writes them to defraDB. Indexers are write-only: they push data out over P2P and reject all incoming replication. have already produced and signed (blocks, transactions, logsLog A document type the indexer produces for event logs emitted during transaction execution. `topics` holds the indexed parameters and `data` holds the non-indexed ones, both as raw hex. ABI decoding happens later, in a lens., and chain-specific extras like EIP-2930EIP-2930 An Ethereum standard that adds optional access lists to transactions, pre-declaring which storage slots a transaction will read or write. The indexer stores these as `AccessListEntry` documents. access list entries on Ethereum). The HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. then verifies those documents, runs the transformations defined by registered ViewsView A curated, SDL-defined representation of defraDB documents. Views transform raw indexed data into a structured output shape., and makes the results available to applications.

Purpose and role in the stack

A HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. does two things.

Transformations

Developers register ViewsView A curated, SDL-defined representation of defraDB documents. Views transform raw indexed data into a structured output shape. on ShinzoHubShinzoHub Shinzo's coordination chain: a Cosmos SDK chain (v0.53.4) with an integrated EVM, running CometBFT consensus. It holds the view, host, and indexer registries and the economic layer (staking, pricing, payments). It does not store or serve indexed blockchain data., where each ViewView A curated, SDL-defined representation of defraDB documents. Views transform raw indexed data into a structured output shape. defines how primitive data should be filtered, decoded, and reshaped. A ViewView A curated, SDL-defined representation of defraDB documents. Views transform raw indexed data into a structured output shape. might ABIABI Describes how to encode and decode function calls, arguments, and event data for an EVM contract. Lenses such as `decode_log` take ABI JSON as input to read raw log data.-decode ERC-20 Transfer logsLog A document type the indexer produces for event logs emitted during transaction execution. `topics` holds the indexed parameters and `data` holds the non-indexed ones, both as raw hex. ABI decoding happens later, in a lens. from Ethereum into a USDCTransfer collection, or decode equivalent token events on another supported chain. The HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. downloads the ViewView A curated, SDL-defined representation of defraDB documents. Views transform raw indexed data into a structured output shape.'s WebAssembly lensLens A WASM module that transforms primitive documents (e.g., raw `Log` records) into view documents (e.g., `USDCTransfer`). Lenses must be deterministic: the same input always produces the same output. Hosts run them via LensVM., runs it against the primitives it receives from IndexersIndexer A node that reads blockchain data from a source chain, parses it into structured documents, and writes them to defraDB. Indexers are write-only: they push data out over P2P and reject all incoming replication., and writes the resulting documents to its local DefraDBdefraDB A peer-to-peer, document-oriented database embedded in every indexer and host. It handles storage, content addressing, CRDT merging, query serving, and P2P replication via libp2p.. Applications query those documents over GraphQL.

Attestations

When a HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. receives the same block from multiple independent IndexersIndexer A node that reads blockchain data from a source chain, parses it into structured documents, and writes them to defraDB. Indexers are write-only: they push data out over P2P and reject all incoming replication., it verifies each signature and creates an AttestationRecord that tracks how many IndexersIndexer A node that reads blockchain data from a source chain, parses it into structured documents, and writes them to defraDB. Indexers are write-only: they push data out over P2P and reject all incoming replication. produced identical data. These records replicate between HostsHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. using a P-counterP-counter A CRDT that only increments. Each node tracks its own count separately; merging just takes the max per node and sums them. `AttestationRecord.vote_count` uses a P-counter so all hosts converge on the same indexer count without coordinating. CRDTCRDT A data structure that multiple nodes can update independently and then merge without coordination, always reaching the same result. defraDB uses CRDTs — specifically MerkleCRDTs — to merge document updates from peers., which lets applications check how many independent sources agree on a piece of data before trusting it.

IndexersIndexer A node that reads blockchain data from a source chain, parses it into structured documents, and writes them to defraDB. Indexers are write-only: they push data out over P2P and reject all incoming replication. are the write side of the network. HostsHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. are the read side.

Supported networks

HostsHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. can serve data for any chain Shinzo supports. Ethereum Mainnet is live today, and additional chains are being added. Any ViewView A curated, SDL-defined representation of defraDB documents. Views transform raw indexed data into a structured output shape. registered against a supported source chainSource chain Any external blockchain that Shinzo indexes — Ethereum, an L2, a Cosmos chain, etc. A source chain hosts an outpost contract and is read by indexers. can be loaded and served by a HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL.. The current list of supported chains is at shinzo.network/chains.

Running a Host

The Shinzo team publishes a reference implementation, the Shinzo Host Client, which is the recommended way to participate in the network. You can run it locally for development or deploy it on a virtual machine for production.

See the Host Quick Start for installation, configuration, and registration steps.

The Architecture overview covers how the HostHost A Shinzo node that receives indexed data from indexers over P2P, verifies it, runs lens transforms to produce view documents, and serves those documents over GraphQL. connects to the rest of the stack, including the IndexerIndexer A node that reads blockchain data from a source chain, parses it into structured documents, and writes them to defraDB. Indexers are write-only: they push data out over P2P and reject all incoming replication. P2P layer, ShinzoHubShinzoHub Shinzo's coordination chain: a Cosmos SDK chain (v0.53.4) with an integrated EVM, running CometBFT consensus. It holds the view, host, and indexer registries and the economic layer (staking, pricing, payments). It does not store or serve indexed blockchain data. registration, the attestation pipeline, and ViewView A curated, SDL-defined representation of defraDB documents. Views transform raw indexed data into a structured output shape. distribution. The Host client reference goes deeper into the client internals.