What is Shinzo?
Shinzo is a decentralized indexing network for blockchains. It takes raw on-chain data and turns it into structured datasets that any application can query, without having to go through a centralized indexing service to get them.
If you've built any kind web3 app before, you know the usual pattern: you pick a hosted indexer, pay per API call, cache the results locally, and hope the provider doesn't go down or quietly change what's available. Shinzo replaces that setup with a network of independent operators that index the chain at the source and share the results peer to peer.
The problem Shinzo solves
Blockchains are good at writing data and bad at reading it. If you want to show a user all their previous transactions, or count token transfers for a given contract, you can't just ask the chain. The raw data isn't organized for questions like that. So the industry bolted centralized indexing services onto the side of every chain, and those services now sit in the trust path between your app and the data.
This setup is expensive and fragile. The indexer's DNS might fail, or the cloud service hosting it might go down. But the biggest failure of this system is that you there's no way to verify that the data you're receiving is accurate until after you've received (and paid) for it.
The goal of Shinzo is to make reading blockchain data as decentralized and verifiable as writing to it.
How it works
Three kinds of participants run the network.
Generator clients sit next to blockchain nodes and turn new blocks into structured documents as they arrive. They cryptographically sign everything they produce, so anyone downstream can check that the data is valid.
Host clients receive primitive data from Generator clients over a peer-to-peer network and apply user-defined transforms called Views. They keep attestation records, which count how many different Generator clients signed off on each piece of data, so developers can use those counts to set their own trust thresholds.
Developers define the Views. A View is basically a way to say "here's the raw data I care about, here's how I want it filtered and decoded, and here's how I want it structured." Once a View is deployed, Hosts pick it up, run it, and push the results to whoever subscribes to that particular View.
Underneath all of this is DefraDB, a peer-to-peer document database that handles replication, access control, and GraphQL queries. Applications embed DefraDB locally and query it the way they'd query any other database, meaning no per-read round trip to an external API.
How to get involved
There are several ways you can join the Shinzo network.
Run a Generator client
If you already operate an Ethereum node, adding a Generator client is cheap and easy. The Generator client itself is a sidecar, not a separate heavyweight service. It attaches to your existing execution client, reads blocks as they come in, signs them, and gossips them out over P2P. See the hardware requirements for sizing.
Run a Host
Host clients sit between Generator clients and applications. They receive signed primitive data over P2P, apply any Lens transforms, build attestation records, and serve results to subscribers. Running a Host client is a great way to interact with the network if you don't want to operate a blockchain node.
You'll need a machine that stays online reliably. A Host doesn't need to be close to a blockchain node, but a stable connection and plenty of disk is recommended. See the hardware requirements for sizing.
Build a View
If you're a developer working on an app, wallet, or any kind of web3 service, Views are where you'll spend your time. A View is a versioned bundle that contains:
- A query describing the data you want.
- A schema (GraphQL SDL) describing how you want that data organized.
- Lens transforms to filter, decode, and shape that data into what you actually need.
You build Views with viewkit, Shinzo's CLI, and deploy them to Shinzohub so that anyone else use them. Any Host client can then pick up the View, run it, and serve the results. Your application subscribes through the app-sdk and queries the resulting data locally.
Where the project is today
Shinzo's public testnet is now live. Anyone can join the network by running the Generator and Host clients.
The current testnet includes:
- The Generator client indexes Ethereum Mainnet from a Geth node, signs indexed data and replicates it across the network using DefraDB's libp2p-based replication layer.
- The Host client receives replicated data from Generators, materializes registered Views using Lens transforms, and serves GraphQL queries to applications.
- Viewkit allows developers to define, package and deploy custom Views to the network, making indexed datasets immediately available to participating Hosts.
- ShinzoHub coordinates network participation, View registration, entity registration, and access control for the testnet.
- The Gateway provides a unified GraphQL endpoint by routing requests across Hosts and validating responses through network consensus.
- The App SDK enables Go applications to embed Shinzo components and query attestation-filtered data directly from the network.
This testnet is intended to validate Shinzo's trustless indexing architecture under real-world conditions, gather feedback from operators and developers and harden the protocol ahead of mainnet.