### Terms and Conditions
- [x] I agree to the [Grant Agreement](https://9ba4718…c-5c73-47c3-a024-4fc4e5278803.usrfiles.com/ugd/9ba471_6ff6db4095fd4c4ba21babec361e927e.pdf) terms if funded
- [x] I agree to [Provide KYC information](https://9ba4718c-5c73-47c3-a024-4fc4e5278803.usrfiles.com/ugd/9ba471_7d9e73d16b584a61bae92282b208efc4.pdf) if funded above $50,000 USD
- [x] I agree to disclose conflicts of interest
- [x] I understand that this grant program is only eligible for completed work, as it is a retroactive grant program. Applications for planned or partially completed work will not be considered. All completed work will be verified and accepted by its intended users or their representatives, who will confirm that the outputs meet the required quality, functionality, and usability before the work is listed as an option for Coinholder voting.
- [x] I agree that for any new open-source software, I will create a CONTRIBUTING.md file that reflects the high standards of Zcash development, using the [`librustzcash` style guides](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#styleguides) as a primary reference.
- [x] I understand when contributing to existing Zcash code, I am required to adhere to the project specific contribution guidelines, paying close attention to any [merge](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#merge-workflow), [branch](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#branch-history), [pull request](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#pull-request-review), and [commit](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#commit-messages) guidelines as exemplified in the librustzcash repository.
- [x] I understand all grants are valued in USD but will be disbursed in Shielded ZEC. I acknowledge and accept that disbursement amounts may fluctuate based on the ZEC/USD exchange rate at the time of payment.
### Application Owners (@octocat, @octocat1)
@Kenbak
### Organization or Individual Name
Kenbak
### Additional Team Members
```team-members.yaml
None
```
### How did you learn about the Lockbox: Coinholder Retroactive Grants Program?
Through active participation in the Zcash Community Forum and discussions with other Zcash ecosystem contributors.
### Requested Grant Amount (USD)
$125,000
### Category
Infrastructure
### Project Summary
CipherScan is a production Zcash block explorer and privacy-intelligence platform at [cipherscan.app](https://cipherscan.app/). This application covers completed, previously unfunded work that expanded CipherScan beyond its existing ZCG deliverables: a custom Rust chain indexer, privacy-linkage analysis, wallet-fingerprint research, mining intelligence, an automated public data bot, and analytics tools serving the broader Zcash ecosystem.
CipherScan provides a public mainnet and testnet explorer, a documented REST API, a public Lightwalletd endpoint. The work claimed here is live, public, and independently verifiable.
### Project Description
Zcash users need more than pages displaying blocks and hashes. Shielded transactions hide their contents, but users can still weaken privacy through distinctive amounts, unusual fees, timing patterns, or wallet-specific construction. Miners, researchers, wallets, and market-data providers also need reliable public network data.
CipherScan makes that information accessible without accounts, analytics trackers, server-side viewing keys, or wallet scans. Its privacy tools analyze public aggregate chain data and explicitly state their limitations.
This application covers five completed work packages that were not ZCG milestones.
### 1. Privacy intelligence and wallet anonymity
CipherScan now precomputes potential shield-to-deshield linkage rather than running expensive correlations when a page loads. The pipeline provides:
- Linkage edges scored by amount, timing, conservation, and ambiguity.
- Batch clusters for one-to-many and many-to-one behavior.
- Transaction graphs explaining possible public relationships without asserting identity.
- Risk tiers and plain-language explanations.
- Blend Check amount-commonality scoring and privacy-improving split suggestions.
- ZIP-317 fee-lane distributions.
- Wallet-pattern analysis using fees, expiry height, nLockTime, and action padding.
The public pages are [Privacy Risks](https://cipherscan.app/privacy-risks), [Blend Check](https://cipherscan.app/tools/blend-check), and [Wallet Anonymity Analysis](https://cipherscan.app/privacy/wallets).
These tools do not decrypt transactions, identify shielded senders, or prove which wallet created a transaction. Fingerprint matches are estimates.
### 2. Mining and network intelligence
CipherScan shipped a dedicated [Mining Analytics](https://cipherscan.app/mining) product:
- Mining-pool distribution and ranking.
- Historical hashrate share.
- Reward and fee aggregation.
- Miner hold-versus-move behavior based on subsequent coinbase-output spends.
- Daily snapshots for efficient historical queries.
- Per-pool ZODL destination analysis: shielded, exchange, and other.
- Network metrics and expanded pool attribution.
This makes mining centralization and miner behavior visible through public, reproducible queries.
### 3. Public explorer and analytics expansion
Completed public features outside the funded milestones include:
- **Pool Analytics:** dedicated [/pools](https://cipherscan.app/pools) page with per-pool (Sprout/Sapling/Orchard/Ironwood) supply breakdown, daily shield/deshield flow volume charts, and UTXO-level turnstile tracking showing whether deshielded ZEC stayed at transparent addresses or was moved.
- **Rich List:** transparent-holder concentration and supply breakdown, including P2PK/bare-multisig address resolution for early mining outputs. Clearly excludes private shielded holdings.
- **Usage Clock:** aggregate hourly activity combined with network-node geography.
- **Charts hub:** searchable privacy, pool, mining, network, and fee charts.
- **Fully shielded transaction browser:** filtering, statistics, and trends without exposing amounts.
- **Raw transaction data and USD equivalence:** verbose node data tab on transaction pages, historical ZEC/USD price integration for fee and value context, P2PKH/P2SH script-type breakdown, and commitment tree/nullifier set growth charts.
- **Migration wallet fingerprints:** implementation-family detection for Ironwood migrations (Vizor/ZIP-318 SDK, Cake/zkool2-compatible, partial compliance patterns) using fee, action structure, anchor alignment, and denomination signals. Public on the Ironwood analytics page.
- **Granular wallet anonymity breakdown:** decomposition of the "librustzcash family" into actionable sub-categories (ZODL/Vizor Ironwood sends, ZIP-318 migration batches, cross-pool transfers, Orchard-only, shielding/deshielding) plus new wallet attributions (Cake Wallet, Nozy). Reduced "Unknown" from ~40% to ~21% of shielded transactions.
- **Real-time data delivery:** ISR with on-demand cache invalidation triggered by the indexer on new blocks, combined with WebSocket instant client-side updates. CDN speed with zero staleness.
- **SEO and accessibility foundation:** server-rendered content, canonical lifecycle rules, structured data, sitemaps, crawl controls, semantic design tokens, reusable tables, and shared accessible components.
- **Valuation and on-chain metrics page:** [/valuation](https://cipherscan.app/valuation) with daily MVRV ratio, SOPR, NUPL, realized price vs market price, and shielded pool realized capitalization charts. Powered by a custom UTXO-tracking pipeline that computes realized value from transparent spend events.
- **HODL Waves and Coin-Days-Destroyed:** daily UTXO age-bucket computation across 27M+ UTXOs producing HODL wave charts (1d–10y buckets) and a CDD dormancy indicator. Displayed on the valuation page.
- **Network Pulse anomaly detection:** a 12-metric statistical engine computing rolling 90-day z-scores daily for transaction counts, shielded adoption, shield/deshield volume, cross-chain flows, fees, exchange deposits, MVRV, migration volume, and miner sell pressure. Events at |z| ≥ 2.5 are stored and surfaced on a dedicated [/pulse](https://cipherscan.app/pulse) page with severity tiers, metric filters, and pagination. A floating homepage widget animates based on live anomaly state.
- **NU7 Vote Hub:** [/governance/nu7](https://cipherscan.app/governance/nu7) page for the upcoming network upgrade coinholder vote (Aug 25 – Sep 12, 2026), displaying poll questions, voting timeline, key dates, and a chain-data explorer tab for vote-related on-chain activity.
These features are deployed on the public explorer.
### 4. Chain indexer infrastructure
A from-scratch Rust chain indexer ([cipherscan-rust](https://github.com/Kenbak/cipherscan-rust)) replaced the original Node.js indexer, improving throughput from ~7 tx/s to 1,000+ tx/s. This is the data foundation that makes everything else possible, privacy analysis, mining stats, valuation metrics, and real-time alerts all depend on having the full chain indexed quickly and reliably. The indexer reads directly from Zebra's state, handles full-chain rebuilds in hours rather than weeks, and includes automated health monitoring with alerting.
### 5. CipherScan Data Bot — automated Zcash intelligence feed
A dedicated X (Twitter) bot publishing factual, deterministic chain data from CipherScan's indexer without manual intervention:
- Real-time alerts for large confirmed shield/deshield flows (>10K ZEC, top percentile of 90-day rolling window), cross-chain whale swaps (>$5K), Ironwood pool milestones (ZEC volume and USD value thresholds), large Orchard-to-Ironwood migrations, and Network Pulse anomaly events (|z| ≥ 3.0).
- Daily digest summarizing shielded supply, pool movements, Ironwood migration progress, ZIP-318 compliance, and cross-chain inflows/outflows.
- Custom branded image cards generated server-side using node-canvas, following CipherScan's design system (dark glass panels, branded colors, chain logos). Separate card layouts for daily digest, milestone, cross-chain, flow alert, and pulse alert tweet types.
- X API v2 OAuth2 integration with media upload, token refresh, and dedup-key outbox to prevent duplicate posts.
- Deployed as a standalone systemd service with restricted privileges.
The bot is live at [@cipherscan_data](https://x.com/cipherscan_data) and its source is in the public CipherScan repository under `server/bot/`.
### Scope intentionally excluded
This application does not request payment for any ZCG-funded deliverables (M1–M4 and M3.5), Crosslink explorer work, Ironwood activation, corrective indexer maintenance, or unannounced integrations.
### Technical Approach (how you did it)
CipherScan's production architecture uses two public-source repositories:
- [Kenbak/cipherscan](https://github.com/Kenbak/cipherscan): Next.js/React, Express, PostgreSQL, Redis, and scheduled analytics jobs.
- [Kenbak/cipherscan-rust](https://github.com/Kenbak/cipherscan-rust): Rust, Zebra chain types, RocksDB, JSON-RPC/gRPC, SQLx, and PostgreSQL.
The work claimed by this application spans both repositories. The explorer/API repository contains the analytics, privacy tools, and public pages. The Rust indexer provides the chain data layer that makes them possible.
Privacy jobs precompute linkage edges and batch clusters from public shield/deshield records. APIs read these records with bounded filters and pagination. These tools require no viewing keys and create no user profiles.
Mining endpoints aggregate blocks by known payout addresses and group multiple addresses under a pool identity. A daily job snapshots whether coinbase outputs remain held or have moved.
The public API uses parameterized SQL, bounded pagination, and short-lived caching. The Rust indexer supplies normalized chain data, while the claimed analytics are computed in the API and background-job layer.
### Time Period of Work Completion
November 2025 – August 2026
### Total Budget (USD)
$125,000
### Budget Breakdown
- Compensation:
- $(USD): $125,000
- Justification: Fixed retrospective valuation of four completed work packages: chain indexer infrastructure, privacy intelligence, mining and network intelligence, and public explorer/analytics expansion.
- Technology/Software:
- $(USD): 0
- Justification: No separate technology expense requested.
- Infrastructure/Hosting:
- $(USD): 0
- Justification: Hosting expenses covered by ZCG and M3.5 are excluded.
- Services/Contractors:
- $(USD): 0
- Justification: No contractors included.
- Other:
- $(USD): 0
- Justification: No domains, marketing, or future expenses included.
- Total $(USD): $125,000
### Previous Funding
No
### Previous Funding Details
_No response_
### Other Funding Sources
Yes
### Other Funding Sources Details
The original CipherScan ZCG grant approved $58,800 across four $14,700 tranches. A $14,700 M3.5 amendment raised the approved commitment to $73,500.
### Success Metrics
A block explorer is the heartbeat monitor of a blockchain network. It is the tool developers reach for when debugging, the reference journalists cite when reporting, the dashboard researchers consult when analyzing, and the first page a newcomer visits to understand whether the chain is alive and healthy. For a privacy network like Zcash, the explorer carries additional responsibility: it must communicate shielded activity without compromising it.
CipherScan is shaped by its users. Developers from ZODL, Shielded Labs, Valar Group and other teams, regularly provide feedback and feature suggestions that inform development priorities from the Ironwood migration tiers to wallet fingerprint categories. Protocol researchers use its data to inform specification changes. This is a tool that improves continuously through the input of the people who rely on it. CipherScan is also listed as an official Zcash explorer on [CoinGecko](https://www.coingecko.com/en/coins/zcash), serving as a reference point for the broader crypto community.
CipherScan has proven this value under pressure:
- **NU6.2 incident (June 2026):** When the Orchard soundness bug forced an emergency network upgrade, CipherScan was the first explorer back online and providing real-time fork monitoring throughout the event. Developers, wallet teams, and protocol engineers used CipherScan to verify the chain had stabilized and to track reorg depth in real time.
- **Ironwood activation and migration tracking (July–August 2026):** The largest pool migration in Zcash history is ongoing. CipherScan's Ironwood Migration Tracker is the most comprehensive public tool for monitoring migration progress, combining pool balances, migration velocity, wallet compliance scoring, cohort analysis, denomination privacy, and tier breakdowns in a single dashboard. This depth lets wallet developers, protocol engineers, and the community follow the migration in real time with actionable granularity.
- **Direct protocol contribution** — ZIP-318 parameter update: CipherScan's migration data was used by protocol developers to inform changes to the ZIP-318 pool migration specification. The observed migration rates and timing analysis provided the empirical basis for [ZIP-318 PR #1343](https://github.com/zcash/zips/pull/1343), which shortened preparation delay (mean 24→16 blocks), halved migration latency (mean 144→66 blocks), and reduced the anchor age cap (16→4 boundaries). CipherScan is acknowledged in the PR for gathering the migration data that informed these changes.
- **Automated public data presence:** The [@cipherscan_data](https://x.com/cipherscan_data) bot publishes deterministic on-chain facts to Twitter daily, shielded pool milestones, whale movements, cross-chain flows, anomaly events. This gives Zcash a visible, credible data presence on social media that does not depend on any individual posting manually.
- **Developer and researcher infrastructure:** CipherScan's public API, Lightwalletd endpoint, testnet explorer, and real-time WebSocket feed are used by wallet developers (for testing), and by community researchers analyzing network behavior. This is not a vanity dashboard, it is infrastructure.
The value of a reliable explorer is most visible when things go wrong. CipherScan passed that test during the hardest months Zcash has faced, and continues to serve the network around the clock without interruption.
### Platform scale (August 2026)
- 1,100+ commits across two public repositories (explorer/API + Rust indexer).
- 50+ public page routes, 113 API endpoints, 14 indexer subcommands.
- Live mainnet, testnet, and Crosslink explorers with real-time WebSocket updates.
- Public REST API, public Lightwalletd endpoint, and Tor hidden services.
### Community reach
- [@cipherscan_app](https://x.com/cipherscan_app): 647 followers, 421K impressions, 7.4K engagements, 4.7K likes over 10 months. Verified account.
- [@cipherscan_data](https://x.com/cipherscan_data): automated bot publishing daily chain data, milestone alerts, and anomaly events.
- 20 Privacy Index newsletter issues published.
- Migration data cited in [ZIP-318 PR #1343](https://github.com/zcash/zips/pull/1343) for protocol parameter changes.
### Live data served
- 3.4M+ blocks indexed, real-time to chain tip.
- 274K+ ZEC tracked in the Ironwood pool with live migration analytics.
- 12-metric anomaly detection engine running daily z-score analysis.
- On-chain valuation suite (MVRV, SOPR, NUPL, realized price) computed from 27M+ UTXOs.
### Proof of completion
### Repositories
- [CipherScan explorer/API](https://github.com/Kenbak/cipherscan)
- [CipherScan Rust indexer](https://github.com/Kenbak/cipherscan-rust)
### Key commits
- [Privacy linkage pipeline (](https://github.com/Kenbak/cipherscan/commit/1d4103b)`1d4103b`[)](https://github.com/Kenbak/cipherscan/commit/1d4103b)
- [Wallet anonymity analysis (](https://github.com/Kenbak/cipherscan/commit/a9fa19d)`a9fa19d`[)](https://github.com/Kenbak/cipherscan/commit/a9fa19d)
- [Mining analytics (](https://github.com/Kenbak/cipherscan/commit/ebe9e38)`ebe9e38`[)](https://github.com/Kenbak/cipherscan/commit/ebe9e38)
- [ZODL mining endpoint (](https://github.com/Kenbak/cipherscan/commit/69b833e)`69b833e`[)](https://github.com/Kenbak/cipherscan/commit/69b833e)
- [Rich List (](https://github.com/Kenbak/cipherscan/commit/af836b7)`af836b7`[)](https://github.com/Kenbak/cipherscan/commit/af836b7)
- [Usage Clock (](https://github.com/Kenbak/cipherscan/commit/78b3e62)`78b3e62`[)](https://github.com/Kenbak/cipherscan/commit/78b3e62)
- [Charts hub (](https://github.com/Kenbak/cipherscan/commit/1de6c6d)`1de6c6d`[)](https://github.com/Kenbak/cipherscan/commit/1de6c6d)
- [Fully shielded browser (](https://github.com/Kenbak/cipherscan/commit/cba62a2)`cba62a2`[)](https://github.com/Kenbak/cipherscan/commit/cba62a2)
- [SEO foundation (](https://github.com/Kenbak/cipherscan/commit/3d025ba)`3d025ba`[)](https://github.com/Kenbak/cipherscan/commit/3d025ba)
### Live deployments
- [Mainnet explorer](https://cipherscan.app)
- [Testnet explorer](https://testnet.cipherscan.app)
- [Privacy Risks](https://cipherscan.app/privacy-risks)
- [Wallet Anonymity Analysis](https://cipherscan.app/privacy/wallets)
- [Mining Analytics](https://cipherscan.app/mining)
- [Pool Analytics](https://cipherscan.app/pools)
- [Ironwood Migration Analytics](https://cipherscan.app/ironwood)
- [Rich List](https://cipherscan.app/rich-list)
- [Usage Clock](https://cipherscan.app/usage-clock)
- [Charts](https://cipherscan.app/charts)
- [Valuation (MVRV, SOPR, NUPL, Realized Price)](https://cipherscan.app/valuation)
- [Network Pulse](https://cipherscan.app/pulse)
- [NU7 Vote Hub](https://cipherscan.app/governance/nu7)
- [CipherScan Data Bot](https://x.com/cipherscan_data) — live automated X feed
### Conflict of Interest Disclosure
I am the founder and lead developer of CipherScan and would directly receive this grant. I hold separately scoped ZCG grants for CipherScan and the Open Wallet Standard Zcash fork; the CipherScan payment ledger and excluded deliverables are disclosed above. I also own CipherPay, whose separate $35,000 retroactive application is pending in this round, its six repositories and grant scope entirely separate.
I am not employed by the Zcash Foundation, Shielded Labs, ZODL, or a wallet vendor, and I hold no keyholder role in the Coinholder or ZCG multisig programs.
### Community Forum Posting
- [x] I understand it is my responsibility to post a link to this issue on the [Zcash Community Forums](https://forum.zcashcommunity.com/t/about-the-retroactive-grants-category/52106) after this application has been submitted so the community can give input. I understand this is required in order for the community to discuss and vote on this grant application. Note: If you are unable to post on the forum (for example, due to new user restrictions), please leave a comment below, and we will adjust your posting permissions.