Milestone 3: Indexer Backend Service
- Scope:
- Indexer Core Service (
pkg/indexer/,cmd/indexer/), written in Go for stack consistency, subscribing to Canton Ledger API and processing CIP-56 token + bridge contract lifecycle events (Holding creations/archivals, TransferFactory choices, Offer events). - Database & Storage: PostgreSQL, optimised for real-time balance/holdings/allowance queries and immutable audit trails.
- Deterministic Aggregation: UTXO-style holdings rolled up deterministically into total supply, per-party balance, and per-token allowance views.
- Query API: HTTP query layer exposing balance, holdings, allowance, supply, and event queries to the JSON-RPC server and external consumers.
- Distributed Operation: deployable per node so each operator can run its own indexer scoped to its visibility.
- Infrastructure as Code: containerisation, Kubernetes manifests, observability.
- Indexer Core Service (
| Field | Details |
|---|---|
| Estimated Resources | Engineering: 14 weeks; DevOps: 1 week; Project Management: 1.5 weeks |
| Estimated Duration | 7 weeks |
| Amount | 2,500,000 CC |
| Acceptance Criteria 1 | Indexer-reported balances, holdings, allowances, and total supply reconcile with Canton ledger state for a live CIP-56 token. |
| Acceptance Criteria 2 | The indexer runs per-node scoped to operator visibility, and an EVM dapp or block explorer successfully reads token state through indexer-backed JSON-RPC responses. |