{"success":true,"data":{"service":"zorb-rollup-worker","version":"1.0.0","note":"Relayer has been moved to separate zorb-relayer-worker (relayer.zorb.cash)","endpoints":{"health":"/health","debug":"/debug","indexer":{"health":"GET /indexer/health","status":"GET /indexer/status","start":"POST /indexer/start","stop":"POST /indexer/stop","trigger":"POST /indexer/trigger","reset":"POST /indexer/reset?clearData=true"},"sync":{"state":"/api/sync/state","data":"/api/sync?after=&limit=1000","deltas":"/api/sync/deltas?after=&to=&limit=50"},"commitmentTree":{"state":"/api/commitment-tree/state","leaves":"/api/commitment-tree/leaves?cursor=&limit=100&sinceNoteIndex=&sinceSlot=&includeEncrypted=true","roots":"/api/commitment-tree/roots?limit=100","validate":"/api/commitment-tree/roots/validate?root=...","proof":"/api/commitment-tree/proof/:noteIndex (debug)","consistency":"GET /api/commitment-tree/consistency (diagnostic)","repair":"POST /api/commitment-tree/repair?limit= (rebuild missing roots)"},"nullifierTree":{"state":"/api/nullifier-tree/state","leaves":"/api/nullifier-tree/leaves?sinceEpoch=&toEpoch=&limit=1000&cursor=&all=false","epochs":"/api/nullifier-tree/epochs?limit=100","roots":"/api/nullifier-tree/roots?limit=100","validate":"/api/nullifier-tree/roots/validate?root=..."},"nullifiers":"/api/nullifiers?cursor=&limit=100&sinceSlot=","receipts":{"list":"/api/receipts?cursor=&limit=50&sinceReceiptIndex=&sinceSlot=&assetId=&recipient=&txType=&fromTime=&toTime=&minAmount=&maxAmount=&order=desc","byIndex":"/api/receipts/:index","byHash":"/api/receipts/by-hash/:hash","bySignature":"/api/receipts/by-signature/:signature"},"transactions":{"list":"/api/transactions?cursor=&limit=20&fromTime=&toTime=&order=desc","description":"Receipts with resolved mint addresses (joins pool_registered_events)"},"legacy":{"noteCommitments":"/api/note-commitments (redirects to /api/commitment-tree/leaves)","merkleRoots":"/api/merkle/roots (redirects to /api/commitment-tree/roots)","merkleValidate":"/api/merkle/validate/:root (redirects to /api/commitment-tree/roots/validate)","merkleProof":"/api/merkle/proof/:noteIndex (redirects to /api/commitment-tree/proof/:noteIndex)"},"stats":{"general":"/api/stats","anonymity":"/api/stats/anonymity","network":"/api/network-stats (TPS metrics)"},"pools":{"list":"/api/pools (all pools with APY/TVL)","byAssetId":"/api/pools/:assetId (SOL: So11111111111111111111111111111111111111112)"},"metrics":"/api/metrics","deadLetterQueue":{"stats":"/api/dlq/stats","failed":"/api/dlq/failed?limit=50","resolve":"POST /api/dlq/resolve/:id"},"websocket":{"connect":"/ws (WebSocket upgrade)","health":"/ws/health","stats":"/ws/stats","channels":["commitments","nullifiers","receipts"]}}}}