{"_id":"@addybook/sdk","_rev":"5-afdd52576b2dfd8523cc242f21522bb2","name":"@addybook/sdk","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@addybook/sdk","version":"0.1.0","keywords":["defi","blockchain","contracts","registry","x402","agents"],"license":"MIT","_id":"@addybook/sdk@0.1.0","maintainers":[{"name":"karelxfi","email":"balogh.karel@gmail.com"}],"dist":{"shasum":"1e115da0bb96fe8bdce5ba2d3396a320ca089e9c","tarball":"https://registry.npmjs.org/@addybook/sdk/-/sdk-0.1.0.tgz","fileCount":10,"integrity":"sha512-pPw+qwc7wBWZh9Fifo28cCJ6SOGl576UKxtWfO9wi8DQkbAkGv2UD83/7pd/ejDRG3oiWIcby0TETpSqoN5zCg==","signatures":[{"sig":"MEUCICClY6UHcQdYZWuMMYqLqII8/GluqZndeime4CIjBiZIAiEAgG+QYYtN5r6LSXsGBcN8fNl5ieaUC4ZraLTxKb1Qgzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11963},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"858dba5ee14318e69e02597ff5002dac7d5badb2","scripts":{"build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"karelxfi","email":"balogh.karel@gmail.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","_npmVersion":"11.11.0","description":"TypeScript SDK for the Addybook DeFi contracts registry API","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1773920442679_0.8110367234340001","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@addybook/sdk","version":"0.2.0","keywords":["defi","blockchain","contracts","registry","provenance","agents"],"license":"MIT","_id":"@addybook/sdk@0.2.0","maintainers":[{"name":"karelxfi","email":"balogh.karel@gmail.com"}],"dist":{"shasum":"568971d19eeaf1fa9347397584b9160a5891ebbb","tarball":"https://registry.npmjs.org/@addybook/sdk/-/sdk-0.2.0.tgz","fileCount":12,"integrity":"sha512-X1xqIiloGnTaSYb3Zdty+19JRMCqiabP5a/Ng7qRBhgooB9j+Z+qG+NYsYJ/8ed0dB6kxctR6sm+5YGhoJB80A==","signatures":[{"sig":"MEQCIFrlW9hPvLP52YsJnY+k1sl1JccR+OX0ei+YZo+zUZ9sAiBhYAZFE9aIZRzWmmBQ7vaRPQUP0WWymXNMWMlWh4wPPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCjoUQPW3TDZBvTq41Ystd2cKW8uv+4kHJP5vHEYzzttQIgC7wjXd69oXnLFhL0806psFeynw7wScda5KnJadYxh8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57290},"main":"./dist/index.js","type":"module","_from":"file:.build/releases/addybook-sdk-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"karelxfi","email":"balogh.karel@gmail.com"},"_resolved":"/Users/kb/Documents/Codex/addybook/app/.build/releases/addybook-sdk-0.2.0.tgz","_integrity":"sha512-X1xqIiloGnTaSYb3Zdty+19JRMCqiabP5a/Ng7qRBhgooB9j+Z+qG+NYsYJ/8ed0dB6kxctR6sm+5YGhoJB80A==","_npmVersion":"11.13.0","description":"TypeScript SDK for the Addybook DeFi contracts registry API","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1789111590891_0.13554769655699817","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@addybook/sdk","version":"0.2.1","keywords":["defi","blockchain","contracts","registry","provenance","agents"],"license":"MIT","_id":"@addybook/sdk@0.2.1","maintainers":[{"name":"karelxfi","email":"balogh.karel@gmail.com"}],"dist":{"shasum":"99fd6c8661d132db024ad53bb248dd2d47defb12","tarball":"https://registry.npmjs.org/@addybook/sdk/-/sdk-0.2.1.tgz","fileCount":12,"integrity":"sha512-JQtSyL74XgX+MuH++UYqiEmf7MBcj97+47YkgmMR94hy4iP6fbJ3U1KpnxJmLeh4AKywXfzXk6s3azFGHG0LsQ==","signatures":[{"sig":"MEUCIC3Q9tGY3K5Avf1nnsrXZ4EvVSAl+tEja7Yv/P3tN3ZQAiEAidOXn/oIPaZP3rD/8CiS/e/Th83uDQDca3Bxl3r87X8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEMCH1yehUwU+SLdsK5DcULLzngyXK3QFanP5/j6acMrn90CIFidJKtZBaM2dhEFkcVGwXxCCr9rEJoPIFI1ZzIRzzyY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58330},"main":"./dist/index.js","type":"module","_from":"file:.build/releases/addybook-sdk-0.2.1.tgz","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"scripts":{"build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"karelxfi","email":"balogh.karel@gmail.com"},"_resolved":"/Users/kb/Documents/Codex/addybook/app/.build/releases/addybook-sdk-0.2.1.tgz","_integrity":"sha512-JQtSyL74XgX+MuH++UYqiEmf7MBcj97+47YkgmMR94hy4iP6fbJ3U1KpnxJmLeh4AKywXfzXk6s3azFGHG0LsQ==","_npmVersion":"11.13.0","description":"TypeScript SDK for the Addybook DeFi contracts registry API","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.1_1789113692955_0.03098527838156806","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"_id":"@addybook/sdk@0.2.2","dist":{"shasum":"6efe66f47d69e0cf74ec5fea2a2c940aa49080ab","tarball":"https://registry.npmjs.org/@addybook/sdk/-/sdk-0.2.2.tgz","fileCount":14,"integrity":"sha512-UvxlLM2e4pnHucS1xRcwaWexuhqJEL+bmT0auvbpinNZQbl0ZCwkxXZVkJT4cklIE21RQkD6RFFSsgmXJBkRwA==","signatures":[{"sig":"MEUCIBFpRBMqC8hIZp0VFNGMYz7SQrs/f16X3KPfv2aj4XcRAiEA4B6jNnp9jMFzNQjLUEzLiV8H+ocb/3Wr6RALqHfvgsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC1TxwsYyUyuTFxraX+dbg/WmyuNJzHnn87YseJun2YrwIgM45Juams5RYjbb/psyXrRyooFGtfuRTplH3CZ+5F0gk="}],"unpackedSize":68954},"main":"./dist/index.js","name":"@addybook/sdk","type":"module","_from":"file:.build/mcp022-aligned-release/addybook-sdk-0.2.2.tgz","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"license":"MIT","scripts":{"build":"tsc","clean":"rm -rf dist"},"version":"0.2.2","_npmUser":{"name":"karelxfi","email":"balogh.karel@gmail.com"},"keywords":["defi","blockchain","contracts","registry","provenance","agents"],"_resolved":"/Users/kb/Documents/Codex/addybook/indexing-api/.build/mcp022-aligned-release/addybook-sdk-0.2.2.tgz","_integrity":"sha512-UvxlLM2e4pnHucS1xRcwaWexuhqJEL+bmT0auvbpinNZQbl0ZCwkxXZVkJT4cklIE21RQkD6RFFSsgmXJBkRwA==","_npmVersion":"10.9.8","description":"TypeScript SDK for the Addybook DeFi contracts registry API","directories":{},"maintainers":[{"name":"karelxfi","email":"balogh.karel@gmail.com"}],"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.2.2_1789219252282_0.29082980789669577"}}},"time":{"created":"2026-03-19T11:40:42.575Z","modified":"2026-09-12T13:20:52.543Z","0.1.0":"2026-03-19T11:40:42.813Z","0.2.0":"2026-09-11T07:26:30.990Z","0.2.1":"2026-09-11T08:01:33.052Z","0.2.2":"2026-09-12T13:20:52.385Z"},"license":"MIT","keywords":["defi","blockchain","contracts","registry","provenance","agents"],"description":"TypeScript SDK for the Addybook DeFi contracts registry API","maintainers":[{"name":"karelxfi","email":"balogh.karel@gmail.com"}],"readme":"# `@addybook/sdk`\n\nTypeScript client for Addybook's public evidence catalog and controlled smart contract registry API.\n\n```bash\nnpm install @addybook/sdk\n```\n\nPublic catalog access needs no key:\n\n```ts\nimport { AddybookClient } from \"@addybook/sdk\";\n\nconst addybook = new AddybookClient();\nconst protocol = await addybook.getProtocol(\"1inch\");\nconst quality = await addybook.getQualityReport();\nconst chains = await addybook.getChains(); // includes local logo paths and content hashes\n```\n\nFull protocol and chain records, reverse resolution, and batch resolution\nrequire a bearer key:\n\n```ts\nconst addybook = new AddybookClient({\n  accessKey: process.env.ADDYBOOK_ACCESS_KEY,\n});\n\nconst fullRecord = await addybook.getPrivateProtocol(\"1inch\");\nconst avalancheContracts = await addybook.getChainContracts(\"avalanche\");\nconst graph = await addybook.getProtocolGraph(\"1inch\");\nconst candidatePools = await addybook.getFactoryChildCandidates({\n  protocol: \"pancakeswap-v3\",\n  role: \"pool\",\n  cursor: 0,\n  limit: 100,\n}); // candidate-only: attribution is not verified identity\nconst protocolClaims = await addybook.getProtocolCandidates({\n  protocol: \"pancakeswap-v3\",\n  sourceType: \"official-source\",\n  sort: \"priority\",\n  cursor: 0,\n  limit: 100,\n}); // exact claims plus source context; still explicitly unverified\nif (graph.factoryChildExpansion?.childrenOmitted) {\n  const page = await addybook.getFactoryChildren({\n    protocol: \"1inch\",\n    cursor: 0,\n    limit: 100,\n  });\n  // Continue with page.nextCursor until it is null.\n}\nconst bootstrap = await addybook.getIndexingBootstrap(\"morpho-blue\", \"base\");\n// bootstrap.contracts[].address / startBlock / events / eventCoverage,\n// bootstrap.factories[].event.topic0, bootstrap.dataAvailability.portal\nconst intelligence = await addybook.getContractIntelligence(\n  \"ethereum\",\n  inputAddress,\n);\nconst match = await addybook.resolveAddress(inputAddress, \"ethereum\");\nconst historicalCandidates = await addybook.resolveAddress(\n  inputAddress,\n  \"ethereum\",\n  { quality: \"all\" },\n);\nconst snapshot = await addybook.getSnapshot();\nconst changes = await addybook.getChanges(previousSnapshotId);\n```\n\nNever expose the access key in browser-side code. Request access at [addybook.xyz/access](https://addybook.xyz/access).\n\nPublic methods:\n\n- `getMetadata()` and `getQualityReport()`\n- `getCandidateActivity(protocol?)` for public address-free candidate counts,\n  source types, and freshness across the corpus or one protocol\n- `listChains()`, `getChains()`, and `listCategories()`\n- `searchProtocols(query)`\n- `getProtocol(id)` and `getProtocolsByChain(chain)`\n- `getVerifiedContracts()`\n\nRestricted methods:\n\n- `getPrivateProtocol(id)`\n- `getChainContracts(chain)` for canonical role addresses grouped by protocol,\n  exact per-address event inventories with reviewed-key-event fallback, and\n  per-role completeness/provenance\n- `getProtocolGraph(id)`; `getPrivateProtocolGraph(id)` remains a deprecated alias\n- `getFactoryChildren(query)`, with protocol scope, a maximum page size of 100,\n  and `nextCursor` pagination\n- `getFactoryChildCandidates(query)` for explicitly unverified, protocol-scoped\n  source and factory-event candidates; never treat these as canonical contracts\n- `getProtocolCandidates(query)` for all collected claims attributed to one\n  protocol, including exact source context, provenance, and priority signals\n- `getContractIntelligence(chain, address)`\n- `resolveAddress(address, chain?)`\n- `batchResolve(addresses, chain?)`, up to 100 addresses\n- `getSnapshot()` including the complete observation-archive digest and hot-index counts, and `getChanges(snapshotId, options?)`\n\nRestricted address lookups default to `evidence-verified`. Lower-quality records are returned only when a caller explicitly passes `{ quality: \"all\" }`. Evidence v2 requires official identity evidence, independent identity evidence, and a current onchain code or executable-account observation. See [the methodology](https://addybook.xyz/methodology/) before using an address in a transaction.\n\nAuthenticated protocol records and graphs inline factory children only while a\nprotocol has at most 5,000 declared children. Larger protocols return inventory\ncount, digest, status, `childrenOmitted`, and selector guidance; use\n`getFactoryChildren` for the exact children.\n\n### Vault state without consumer RPC\n\n```ts\nimport type { VaultStateSnapshot } from \"@addybook/sdk\";\nconst page = await addybook.getFactoryChildren({\n  protocol: \"morpho-vault-v2\", chain: \"ethereum\", listed: true,\n  limit: 3, includeState: true,\n});\nconst state: VaultStateSnapshot | undefined = page.state;\n```\n\nState includes code observations, underlying asset/share decimals, total assets\nand share supply at `state.block`, plus provenance and `observedAt`. Preserve\n`stateBlock`, `stateFromBlock` and `snapshot` across subsequent pages. An empty\nselection returns an empty page without state. State is an on-demand Addybook\nobservation, not a historical archive or yield metric. Recipe `observationReads`\ndescribes Addybook's internal reads; consumers do not need an RPC provider.\n","readmeFilename":"README.md"}