Testnet previewPublic Zcash data, built for your next application.Get started
The open-source Zcash data stack

Zcash data.
Ready to build.

Query public chain data with Prep.
Turn it into application APIs with Chef.

Public data. Your infrastructure. Your rules.
Complete public blocks

Blocks and transactions, ready to query

TypeScript handlers

Shape data with your application logic

Your PostgreSQL

Keep your data on your infrastructure

GraphQL APIs

Serve the entities your application needs

The Zeer stack

Two layers. One developer workflow.

  1. Zcash

    Public chain data

  2. Prep

    Query and filter chain data

  3. Chef

    Run your logic and store it

  4. Your app

    Build with GraphQL APIs

Direct API (from Prep)
Zcash public data is prepared by Prep. Chef transforms it into application entities and GraphQL APIs. Applications can also query Prep directly, without passing through Chef.
Zeer Prep

Less searching. More building.

Choose the data you need. See exactly how to query it.

Browse block history

Read block heights, hashes, and timestamps without full transaction payloads.

Build a block timeline or check chain progress. Select a large historical range and retrieve a bounded page at a time.

Prep captures the latest indexed block when you run. Next page stays within that same snapshot.

POST /query
{  "from_block": 0,  "limit": 100,  "field_selection": {    "block": [      "height",      "hash",      "time"    ],    "transaction": []  }}
Example modeNo request has been sent.

Shielded recipients, amounts, and memos remain encrypted.

Choose your layer

From Zcash data to your application.

Build your API with Chef, or query chain data directly with Prep.

Zeer Chef

Turn public Zcash data into the entities your application needs.

Write your logic in TypeScript

Typed handlers transform blocks and transactions.

Keep your own PostgreSQL

Your schema, your data, your infrastructure.

Serve it through GraphQL

An authenticated API over your indexed entities.

chef.config.ts — handler excerpt
async block({ block, context }) {  await context.entities.set("BlockSummary", {    id: String(block.height),    height: block.height,    hash: block.hash,    time: BigInt(block.time),    transactionCount: 0,  });}
Handler excerpt · public-data example

Your next Zcash app
starts here.

From public chain data to your first GraphQL response.