Events & fingerprinting
The standardized privacy-transaction event, its EVM topic, a live bytecode-fingerprint tool, and the deployed contract registry — the primitives an indexer or explorer uses to track ZeroStyl activity on-chain.
Reference view. The event schema, topic, and fingerprint tool are live and accurate. The activity feed below is illustrative sample data — the demo contracts on Arbitrum Sepolia are hash-only and do not emit the standardized event, so no live indexer is available. This page makes no RPC calls.
ZeroStylPrivacyTransaction
Every ZeroStyl contract emits this single event. Indexers filter on its topic — the keccak256 of the canonical signature — to reconstruct private activity without seeing any witness.
ZeroStylPrivacyTransaction(bytes32,bytes32,bytes32,bytes32,bytes32,uint256)0x84cd6ecc9e8e48ed1f47bf9ed020f9121737d0802583f74dc7f0fd2749294098| Field | Type | Indexed | Description |
|---|---|---|---|
| circuit | bytes32 | indexed | Fingerprint of the circuit that produced the proof. |
| nullifier | bytes32 | indexed | Double-spend marker, unlinkable to the spent commitment. |
| commitment | bytes32 | indexed | New commitment created by the transaction. |
| merkle_root | bytes32 | — | Merkle root the spent note was proven against. |
| proof_hash | bytes32 | — | keccak256 of the proof bytes (audit trail). |
| timestamp | uint256 | — | Block timestamp (seconds) when recorded. |
Circuit fingerprint
A BytecodeFingerprint is keccak256 of a circuit's name or bytecode — a stable, on-chain-comparable id for “which circuit produced this proof”. This runs entirely in your browser; the same digest zerostyl-runtime computes.
0x48c73f681176fc7b3f9693986fd7b14581e8d540519e27400e88b8713932be01Deployed on Arbitrum Sepolia
The demo contracts and where they live. These record a proof hash rather than verifying the SNARK on-chain, so their integrity guarantees are conditional.
| Contract | Purpose | Address | |
|---|---|---|---|
| tx_privacy_verifier | Private token transfers | 0x0c61c2d2…393bd3 | Arbiscan |
| state_mask_verifier | Range-proof / state registry | 0xf88346c0…1be7e0 | Arbiscan |
| private_vote_verifier | Anonymous voting + tally | 0xd21389df…670edf | Arbiscan |
| private_lending_pool | Solvency proofs + liquidation | 0xaa948bd9…288f36 | Arbiscan |
| private_swap_verifier | Multi-circuit private swaps | 0xd5dfa87f…34bb76 | Arbiscan |
Privacy transactions
How an indexer would surface decoded ZeroStylPrivacyTransaction events. The values below are illustrative — a live feed lights up once the deployed contracts emit the standardized event.
circuit 0x63612e…d7040x9f2c4a1db7…7d6c5b4a0x3a7f1e9c8b…3f2e1d0c0x1c2b3a4958…627182930x0c61c2d2…393bd3circuit 0x241a55…fae80x7e6d5c4b3a…a8f7e6d50x2b1a0f9e8d…d3c2b1a00x5a4b3c2d1e…e6f5a4b30xf88346c0…1be7e0circuit 0x49dd39…e0650x4d3c2b1a0f…f5e4d3c20x8f7e6d5c4b…b9a8f7e60x0d9e8f7a6b…b1c0d9e80xd21389df…670edfcircuit 0x48c73f…be010x1e0d9c8b7a…a2f1e0d90x6b5a4f3e2d…d7c6b5a40x3e2d1c0b9a…a4f3e2d10xaa948bd9…288f36circuit 0x63612e…d7040xc4b3a2f1e0…e6d5c4b30xa0f9e8d7c6…2b1a0f9e0x7a6b5c4d3e…e8f7a6b50xd5dfa87f…34bb76circuit 0x241a55…fae80x0f9e8d7c6b…b1a0f9e80x5c4b3a2f1e…e6d5c4b30x2f1e0d9c8b…b3a2f1e00xf88346c0…1be7e0