{"_id":"@deltadao/pontusx-registry-hooks","_rev":"6-774f379e591af980a3a597bd96484e09","name":"@deltadao/pontusx-registry-hooks","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@deltadao/pontusx-registry-hooks","version":"0.1.0","keywords":["react","hooks","web3","pontus-x","registry","identity","typescript"],"license":"Apache-2.0","_id":"@deltadao/pontusx-registry-hooks@0.1.0","maintainers":[{"name":"moritzkirstein","email":"moritz@delta-dao.com"},{"name":"abrom8","email":"sebastian@delta-dao.com"},{"name":"oceanbyte","email":"albert@delta-dao.com"}],"homepage":"https://github.com/deltaDAO/pontusx-registry-hooks#readme","bugs":{"url":"https://github.com/deltaDAO/pontusx-registry-hooks/issues"},"dist":{"shasum":"5ca326c3070b7f08674e04a6cac93914b826314d","tarball":"https://registry.npmjs.org/@deltadao/pontusx-registry-hooks/-/pontusx-registry-hooks-0.1.0.tgz","fileCount":9,"integrity":"sha512-eYFEd0b1W7TzoS7h5at4AGBsDIEcTZDeB9UUHV6SX3cWUQneTNvokaOsDSRoRMvlJn5rOKxavH2zL325r88lsg==","signatures":[{"sig":"MEUCIQCn6nQra4xRV9qw1FJUcUb9aph5oBabpWkoZbXdPi0ZTwIgIOk9jfFh8Gcs45bhr6pWtGLuqWuy1eA9rcLEhiFbk6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60182},"main":"./dist/index.cjs","type":"module","_from":"file:deltadao-pontusx-registry-hooks-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"vitest run","build":"tsup","format":"prettier --write \"src/**/*.ts\"","release":"pnpm build && changeset publish","typecheck":"tsc --noEmit","lint:check":"eslint \"{src,apps,libs,test}/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\""},"_npmUser":{"name":"moritzkirstein","email":"moritz@delta-dao.com"},"_resolved":"/tmp/3adceb9c882bb20e3a96c8c28bf2160c/deltadao-pontusx-registry-hooks-0.1.0.tgz","_integrity":"sha512-eYFEd0b1W7TzoS7h5at4AGBsDIEcTZDeB9UUHV6SX3cWUQneTNvokaOsDSRoRMvlJn5rOKxavH2zL325r88lsg==","repository":{"url":"git+https://github.com/deltaDAO/pontusx-registry-hooks.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight React hooks to resolve Web3 addresses to legal identities via Pontus-X Registry","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.0.10","swr":"^2.2.5","tsup":"^8.3.5","jsdom":"^23.0.0","react":"^18.3.1","eslint":"^9.39.0","vitest":"^1.0.4","prettier":"^3.2.5","react-dom":"^18.3.1","@eslint/js":"^9.39.0","typescript":"^5.6.3","@types/react":"^18.3.3","@changesets/cli":"^2.27.1","typescript-eslint":"^8.0.0","@testing-library/react":"^16.3.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.0","@changesets/changelog-github":"^0.5.2","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"swr":"^2.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pontusx-registry-hooks_0.1.0_1764802844327_0.4915477194425224","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@deltadao/pontusx-registry-hooks","version":"0.1.1","keywords":["react","hooks","web3","pontus-x","registry","identity","typescript"],"license":"Apache-2.0","_id":"@deltadao/pontusx-registry-hooks@0.1.1","maintainers":[{"name":"moritzkirstein","email":"moritz@delta-dao.com"},{"name":"abrom8","email":"sebastian@delta-dao.com"},{"name":"oceanbyte","email":"albert@delta-dao.com"}],"homepage":"https://github.com/deltaDAO/pontusx-registry-hooks#readme","bugs":{"url":"https://github.com/deltaDAO/pontusx-registry-hooks/issues"},"dist":{"shasum":"95a43055211f33527f3d7f8bf1c7d7be8c42422a","tarball":"https://registry.npmjs.org/@deltadao/pontusx-registry-hooks/-/pontusx-registry-hooks-0.1.1.tgz","fileCount":9,"integrity":"sha512-1MQIG2Fui7jYEB2UES1cRkMO+Tjjqn0PZaGXjJwliK3mH69BIlLL5Ty5zCqcUltSMbIO7a02PUZqJ7lAdu/27w==","signatures":[{"sig":"MEYCIQC7FvmRoRdeq/VzkG7nH+w11NvDIteeehbCx6YRtmWC/AIhANWLD3ZWPk+I0uWRndnYHU72coFJp0rW961JCnnY5Wij","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63064},"main":"./dist/index.cjs","type":"module","_from":"file:deltadao-pontusx-registry-hooks-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"vitest run","build":"tsup","format":"prettier --write \"src/**/*.ts\"","release":"pnpm build && changeset publish","typecheck":"tsc --noEmit","lint:check":"eslint \"{src,apps,libs,test}/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6702df6-119c-4565-8d9f-cfab3c328788"}},"_resolved":"/tmp/95516e0e2d07fbf42f2ea62a19195eb7/deltadao-pontusx-registry-hooks-0.1.1.tgz","_integrity":"sha512-1MQIG2Fui7jYEB2UES1cRkMO+Tjjqn0PZaGXjJwliK3mH69BIlLL5Ty5zCqcUltSMbIO7a02PUZqJ7lAdu/27w==","repository":{"url":"git+https://github.com/deltaDAO/pontusx-registry-hooks.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight React hooks to resolve Web3 addresses to legal identities via Pontus-X Registry","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.0.10","swr":"^2.2.5","tsup":"^8.3.5","jsdom":"^23.0.0","react":"^18.3.1","eslint":"^9.39.0","vitest":"^1.0.4","prettier":"^3.2.5","react-dom":"^18.3.1","@eslint/js":"^9.39.0","typescript":"^5.6.3","@types/react":"^18.3.3","@changesets/cli":"^2.27.1","typescript-eslint":"^8.0.0","@testing-library/react":"^16.3.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.0","@changesets/changelog-github":"^0.5.2","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"swr":"^2.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pontusx-registry-hooks_0.1.1_1764860013137_0.45046974342615287","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@deltadao/pontusx-registry-hooks","version":"0.2.1","keywords":["react","hooks","web3","pontus-x","registry","identity","typescript"],"license":"Apache-2.0","_id":"@deltadao/pontusx-registry-hooks@0.2.1","maintainers":[{"name":"moritzkirstein","email":"moritz@delta-dao.com"},{"name":"abrom8","email":"sebastian@delta-dao.com"},{"name":"oceanbyte","email":"albert@delta-dao.com"}],"homepage":"https://github.com/deltaDAO/pontusx-registry-hooks#readme","bugs":{"url":"https://github.com/deltaDAO/pontusx-registry-hooks/issues"},"dist":{"shasum":"99a6499c1290a8b6dc06a9d0de069cb99e970e2b","tarball":"https://registry.npmjs.org/@deltadao/pontusx-registry-hooks/-/pontusx-registry-hooks-0.2.1.tgz","fileCount":9,"integrity":"sha512-FNWeDNkUbUfzv8yj8r9l2jyDvCskexOtbuROyQoOdOgK/amEMwdVwchVAuTvNq920TOF16je+WCfqQCCm7r3iw==","signatures":[{"sig":"MEQCIBnkmpMeDTqgXHtQxltYt/h0dJfT79+3JoIJSKKQN44KAiAlThSdrUWDBfU0/QW5y3rG+ZbYsIoo/bLgAEnGutlwWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deltadao%2fpontusx-registry-hooks@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78807},"main":"./dist/index.cjs","type":"module","_from":"file:deltadao-pontusx-registry-hooks-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"vitest run","build":"tsup","format":"prettier --write \"src/**/*.ts\"","release":"pnpm build && changeset publish","typecheck":"tsc --noEmit","lint:check":"eslint \"{src,apps,libs,test}/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6702df6-119c-4565-8d9f-cfab3c328788"}},"_resolved":"/tmp/f886a2c47714de1464b5f06786b8972a/deltadao-pontusx-registry-hooks-0.2.1.tgz","_integrity":"sha512-FNWeDNkUbUfzv8yj8r9l2jyDvCskexOtbuROyQoOdOgK/amEMwdVwchVAuTvNq920TOF16je+WCfqQCCm7r3iw==","repository":{"url":"git+https://github.com/deltaDAO/pontusx-registry-hooks.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight React hooks to resolve Web3 addresses to legal identities via Pontus-X Registry","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.0.10","swr":"^2.2.5","tsup":"^8.3.5","jsdom":"^23.0.0","react":"^18.3.1","eslint":"^9.39.0","vitest":"^1.0.4","prettier":"^3.2.5","react-dom":"^18.3.1","@eslint/js":"^9.39.0","typescript":"^5.6.3","@types/react":"^18.3.3","@changesets/cli":"^2.27.1","typescript-eslint":"^8.0.0","@testing-library/react":"^16.3.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.0","@changesets/changelog-github":"^0.5.2","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"swr":"^2.0.0","react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pontusx-registry-hooks_0.2.1_1764863602790_0.6202423795201237","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@deltadao/pontusx-registry-hooks","version":"0.3.0","description":"Lightweight React hooks to resolve Web3 addresses to legal identities via Pontus-X Registry","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","swr":"^2.0.0"},"devDependencies":{"@changesets/changelog-github":"^0.5.2","@changesets/cli":"^2.27.1","@eslint/js":"^9.39.0","@testing-library/react":"^16.3.0","@types/react":"^18.3.3","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","eslint":"^9.39.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-react-hooks":"^7.0.0","jsdom":"^23.0.0","msw":"^2.0.10","prettier":"^3.2.5","react":"^18.3.1","react-dom":"^18.3.1","swr":"^2.2.5","tsup":"^8.3.5","typescript":"^5.6.3","typescript-eslint":"^8.0.0","vitest":"^1.0.4"},"keywords":["react","hooks","web3","pontus-x","registry","identity","typescript"],"repository":{"type":"git","url":"git+https://github.com/deltaDAO/pontusx-registry-hooks.git"},"license":"Apache-2.0","publishConfig":{"access":"public"},"scripts":{"build":"tsup","dev":"tsup --watch","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","lint:check":"eslint \"{src,apps,libs,test}/**/*.ts\"","format":"prettier --write \"src/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\"","typecheck":"tsc --noEmit","test":"vitest run","release":"pnpm build && changeset publish"},"_id":"@deltadao/pontusx-registry-hooks@0.3.0","bugs":{"url":"https://github.com/deltaDAO/pontusx-registry-hooks/issues"},"homepage":"https://github.com/deltaDAO/pontusx-registry-hooks#readme","_integrity":"sha512-VECpoCyolBoL98SO1UNgGOzSZqPulDAaBtF6KU2088+fsh0r+SDqB3uzcioRG6GfktVLYE9tTHjM/YJfylb0KQ==","_resolved":"/tmp/de0e24c71f6d885297eae16b8fb9b3ae/deltadao-pontusx-registry-hooks-0.3.0.tgz","_from":"file:deltadao-pontusx-registry-hooks-0.3.0.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-VECpoCyolBoL98SO1UNgGOzSZqPulDAaBtF6KU2088+fsh0r+SDqB3uzcioRG6GfktVLYE9tTHjM/YJfylb0KQ==","shasum":"5eaab1a28564d633d46f94cb085fe7e485e66f74","tarball":"https://registry.npmjs.org/@deltadao/pontusx-registry-hooks/-/pontusx-registry-hooks-0.3.0.tgz","fileCount":9,"unpackedSize":98254,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@deltadao%2fpontusx-registry-hooks@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGm0nwg/uT5ZnP3pZYlesgmT7eu5j6C8kiQJ35tDaUHvAiEAmKxVu8/P4Djr12MF0PoNZK92SdkgJmy5yrRmO2NKsyQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6702df6-119c-4565-8d9f-cfab3c328788"}},"directories":{},"maintainers":[{"name":"moritzkirstein","email":"moritz@delta-dao.com"},{"name":"abrom8","email":"sebastian@delta-dao.com"},{"name":"oceanbyte","email":"albert@delta-dao.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pontusx-registry-hooks_0.3.0_1764954783145_0.07798639327675705"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-03T23:00:44.110Z","modified":"2025-12-05T17:13:03.726Z","0.1.0":"2025-12-03T23:00:44.484Z","0.1.1":"2025-12-04T14:53:33.279Z","0.2.0":"2025-12-04T15:34:47.391Z","0.2.1":"2025-12-04T15:53:22.972Z","0.3.0":"2025-12-05T17:13:03.304Z"},"bugs":{"url":"https://github.com/deltaDAO/pontusx-registry-hooks/issues"},"license":"Apache-2.0","homepage":"https://github.com/deltaDAO/pontusx-registry-hooks#readme","keywords":["react","hooks","web3","pontus-x","registry","identity","typescript"],"repository":{"type":"git","url":"git+https://github.com/deltaDAO/pontusx-registry-hooks.git"},"description":"Lightweight React hooks to resolve Web3 addresses to legal identities via Pontus-X Registry","maintainers":[{"name":"moritzkirstein","email":"moritz@delta-dao.com"},{"name":"abrom8","email":"sebastian@delta-dao.com"},{"name":"oceanbyte","email":"albert@delta-dao.com"}],"readme":"# @deltadao/pontusx-registry-hooks\n\n[![NPM Version](https://img.shields.io/npm/v/@deltadao/pontusx-registry-hooks)](https://www.npmjs.com/package/@deltadao/pontusx-registry-hooks)\n[![Bundle Size](https://img.shields.io/bundlephobia/minzip/@deltadao/pontusx-registry-hooks)](https://bundlephobia.com/package/@deltadao/pontusx-registry-hooks)\n[![GitHub branch check runs](https://img.shields.io/github/check-runs/deltaDAO/pontusx-registry-hooks/main)](https://github.com/deltaDAO/pontusx-registry-hooks)\n[![GitHub License](https://img.shields.io/github/license/deltaDAO/pontusx-registry-hooks)](https://img.shields.io/github/license/deltaDAO/pontusx-registry-hooks)\n\nLightweight React hooks (<5kb) to resolve Web3 addresses to legal identities via the Pontus-X Registry API.\n\n## Features\n\n- 🪶 **Minimal Bundle Size**: Uses SWR for efficient caching (~5kb)\n- ⚡ **Instant Lookups**: Cached registry prevents API spam when resolving 50+ addresses\n- 📄 **Smart Pagination**: Automatically fetches all pages in parallel for complete registry data\n- 🎯 **Type-Safe**: Full TypeScript support with strict mode\n- 🔄 **Framework Agnostic**: Works with Next.js, Vite, and any React app\n- 📦 **Zero Config**: Works out of the box with sensible defaults\n\n## Installation\n\n```bash\npnpm add @deltadao/pontusx-registry-hooks swr\n```\n\n## Usage\n\n### Resolve a Single Address (from cached list)\n\n```tsx\nimport { usePontusXIdentity } from '@deltadao/pontusx-registry-hooks'\n\nfunction UserProfile({ walletAddress }) {\n  const { identity, isLoading, error, isFound } =\n    usePontusXIdentity(walletAddress)\n\n  if (isLoading) return <div>Loading...</div>\n  if (error) return <div>Error loading identity</div>\n  if (!isFound) return <div>Unknown address</div>\n\n  return <div>{identity?.legalName}</div>\n}\n```\n\n### Fetch Identity by Contract and Wallet Address\n\n```tsx\nimport { usePontusXIdentityByContract } from '@deltadao/pontusx-registry-hooks'\n\nfunction IdentityDetails({ contractAddress, walletAddress }) {\n  const { identity, isLoading, error } = usePontusXIdentityByContract(\n    contractAddress,\n    walletAddress,\n  )\n\n  if (isLoading) return <div>Loading...</div>\n  if (error) return <div>Error: {error.message}</div>\n  if (!identity) return <div>Identity not found</div>\n\n  return (\n    <div>\n      <h3>{identity.legalName}</h3>\n      <p>Token ID: {identity.tokenId}</p>\n      <p>Updated: {new Date(identity.updatedAt).toLocaleDateString()}</p>\n    </div>\n  )\n}\n```\n\n### Fetch the Entire Registry\n\n```tsx\nimport { usePontusXRegistry } from '@deltadao/pontusx-registry-hooks'\n\nfunction RegistryList() {\n  const { data, error, isLoading } = usePontusXRegistry()\n\n  if (isLoading) return <div>Loading registry...</div>\n  if (error) return <div>Error loading registry</div>\n\n  return (\n    <ul>\n      {data?.map((identity) => (\n        <li key={identity.walletAddress}>\n          {identity.legalName} - {identity.walletAddress} ({identity.version})\n        </li>\n      ))}\n    </ul>\n  )\n}\n```\n\n### Search Identities\n\nThe `usePontusXRegistry` hook supports powerful search capabilities to filter identities by multiple criteria:\n\n```tsx\nimport { usePontusXRegistry } from '@deltadao/pontusx-registry-hooks'\n\nfunction IdentitySearch() {\n  const { data, isLoading } = usePontusXRegistry({\n    search: {\n      legalName: 'deltaDAO', // Partial text match (case-insensitive)\n    },\n  })\n\n  if (isLoading) return <div>Loading...</div>\n\n  return (\n    <ul>\n      {data?.map((identity) => (\n        <li key={identity.walletAddress}>{identity.legalName}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n**Search Fields:**\n\n- **`walletAddress`**: Exact match for Web3 address (case-insensitive)\n\n  ```tsx\n  search: {\n    walletAddress: '0xe0d15ab8d5ef763a4757509daac262dbc357712'\n  }\n  ```\n\n- **`legalName`**: Partial text search for entity name (case-insensitive)\n\n  ```tsx\n  search: {\n    legalName: 'delta'\n  }\n  ```\n\n- **`registrationNumber`**: Search across all registration numbers (EORI, LEI, VATID, etc.)\n\n  ```tsx\n  search: {\n    registrationNumber: 'DE390726175076766'\n  } // EORI\n  search: {\n    registrationNumber: '391200FJBNU0YW987L26'\n  } // LEI\n  ```\n\n- **`countryCode`**: ISO 3166-1 alpha-2 country code (matches both codes and country names)\n  ```tsx\n  search: {\n    countryCode: 'DE'\n  } // Finds all German entities\n  ```\n\n**Combining Search Criteria:**\n\nAll search criteria can be combined. Results must match ALL criteria (AND logic):\n\n```tsx\nconst { data } = usePontusXRegistry({\n  search: {\n    countryCode: 'DE',\n    legalName: 'AG', // Only German companies with \"AG\" in their name\n  },\n})\n```\n\n### Custom API Configuration\n\n```tsx\nconst { identity } = usePontusXIdentity(address, {\n  apiBaseUrl: 'https://your-custom-registry.com',\n  apiVersion: 'v1',\n  batchSize: 50, // Customize pagination batch size\n})\n```\n\n### Deprecated Registry Support (v0.x)\n\nTo support the migration period, you can include identities from the deprecated v0.x JSON registry. These entries will be merged with the v1 API data.\n\nIf an identity exists in both the new registry (v1) and the deprecated list (0.x), the v1 entry takes precedence.\n\nAll returned identities include a `version` flag (`'v1'` or `'0.x'`) to help distinguish the source.\n\n```tsx\nconst { data } = usePontusXRegistry({\n  includeDeprecated: true, // Enable legacy JSON support\n})\n```\n\nYou can also use the deprecated hook directly if needed:\n\n```tsx\nimport { usePontusXRegistryDeprecated } from '@deltadao/pontusx-registry-hooks'\n\nconst { data } = usePontusXRegistryDeprecated()\n```\n\n## API\n\n### `usePontusXIdentity(walletAddress, config?)`\n\nResolves a single Web3 wallet address to its legal identity. Uses the cached registry data for instant lookups. Address comparison is case-insensitive.\n\n**Parameters:**\n\n- `walletAddress` (string | undefined): The wallet address to look up (case-insensitive)\n- `config` (optional): Configuration object\n  - `apiBaseUrl` (string): Custom API base URL (default: `https://cache.registry.pontus-x.eu`)\n  - `apiVersion` (ApiVersion): API version to use (default: `v1`)\n  - `batchSize` (number): Batch size for pagination (default: `100`)\n\n**Returns:**\n\n- `identity` (PontusXIdentity | undefined): The resolved identity\n- `isLoading` (boolean): Loading state\n- `error` (Error | undefined): Error if fetch failed\n- `isFound` (boolean): Convenience flag indicating whether identity was found\n- `legalName` (string | null): Convenience accessor for the entity's legal name\n\n**Caching:**\n\n- Relies on `usePontusXRegistry` for cached data\n- No additional network request if registry is already loaded\n- Cache deduping interval: 1 minute\n\n### `usePontusXIdentityByContract(contractAddress, walletAddress, config?)`\n\nFetches a specific identity directly from the API using both contract and wallet addresses. Results are strictly cached since identities rarely change.\n\n**Parameters:**\n\n- `contractAddress` (string | undefined): The contract address of the registry\n- `walletAddress` (string | undefined): The wallet address (owner of the identity)\n- `config` (optional): Configuration object\n  - `apiBaseUrl` (string): Custom API base URL (default: `https://cache.registry.pontus-x.eu`)\n  - `apiVersion` (ApiVersion): API version to use (default: `v1`)\n  - `batchSize` (number): Batch size for pagination (default: `100`)\n\n**Returns:**\n\n- `identity` (PontusXIdentity | undefined): The resolved identity\n- `isLoading` (boolean): Loading state\n- `error` (Error | undefined): Error if fetch failed\n- `isFound` (boolean): Convenience flag indicating whether identity was found\n- `legalName` (string | null): Convenience accessor for the entity's legal name\n\n**Caching:**\n\n- Direct API calls with no dependency on registry cache\n- Strict caching with 5 minute deduping interval (identities rarely change)\n- Returns 404 error for non-existent identities\n\n### `usePontusXRegistry(config?)`\n\nFetches the entire Pontus-X Registry. Data is cached globally and reused across all hooks. Use this when you need the complete registry or when making multiple lookups to avoid repeated fetches.\n\n**Pagination**: Automatically fetches all pages in parallel after the first page for optimal performance.\n\n1. Fetches page 1 with configurable batch size (default: 100 items)\n2. Fetches all remaining pages simultaneously using `Promise.all()`\n3. Aggregates all results into a single array\n\n**Parameters:**\n\n- `config` (optional): Configuration object\n  - `apiBaseUrl` (string): Custom API base URL (default: `https://cache.registry.pontus-x.eu`)\n  - `apiVersion` (ApiVersion): API version to use (default: `v1`)\n  - `batchSize` (number): Batch size for paginated requests (default: `100`)\n\n**Returns:** Standard SWR response object\n\n- `data` (PontusXIdentity[] | undefined): The complete registry data\n- `error` (Error | undefined): Error if fetch failed\n- `isLoading` (boolean): Loading state\n\n**Caching:**\n\n- Global cache: data is reused across all hook instances\n- No revalidation on window focus or network reconnect\n- Cache deduping interval: 1 minute\n\n## Constants\n\nThe library exports useful constants for configuration:\n\n```typescript\nimport {\n  DEFAULT_API_BASE_URL, // 'https://cache.registry.pontus-x.eu'\n  DEFAULT_API_VERSION, // 'v1'\n  DEFAULT_BATCH_SIZE, // 100\n  API_VERSIONS, // { v1: { identities: '/identities', identity: '...' } }\n} from '@deltadao/pontusx-registry-hooks'\n```\n\n## Types\n\n```typescript\ninterface PontusXIdentityV1 {\n  walletAddress: string // Wallet address (owner of the identity)\n  contractAddress: string // Contract address of the registry\n  tokenId: string // Token ID on the blockchain\n  txHash: string // Transaction hash\n  lastBlockNumber: string // Last block number synced\n  blockTime: string // Block timestamp (ISO 8601)\n  legalName: string | null // Legal name of the entity\n  presentationUrl: string | null // URL of the verifiable presentation\n  credentialsData: Record<string, object> // Flattened credentials data\n  createdAt: string // Creation timestamp (ISO 8601)\n  updatedAt: string // Last update timestamp (ISO 8601)\n}\n\ntype PontusXIdentity<V extends ApiVersion> = V extends 'v1'\n  ? PontusXIdentityV1\n  : never\n\ninterface PaginationMeta {\n  total: number // Total number of items\n  page: number // Current page number\n  lastPage: number // Last page number\n}\n\ninterface GetIdentitiesResponse<V extends ApiVersion> {\n  data: PontusXIdentity<V>[]\n  meta: PaginationMeta\n}\n\ninterface PontusXSearchCriteria {\n  walletAddress?: string // Exact match for wallet address (case-insensitive)\n  legalName?: string // Partial text match for entity name (case-insensitive)\n  registrationNumber?: string // Search across registration numbers (EORI, LEI, VATID)\n  countryCode?: string // ISO 3166-1 alpha-2 country code (matches code and country name)\n}\n\ninterface PontusXRegistryConfig {\n  apiBaseUrl?: string // Custom API endpoint (default: 'https://cache.registry.pontus-x.eu')\n  apiVersion?: ApiVersion // API version to use (default: 'v1')\n  batchSize?: number // Batch size for paginated requests (default: 100)\n  search?: PontusXSearchCriteria // Search criteria to filter identities\n}\n```\n\n## Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Build the library\npnpm build\n\n# Watch mode for development\npnpm dev\n\n# Type checking\npnpm typecheck\n\n# Linting\npnpm lint\n\n# Run tests\npnpm test\n```\n\n## Testing\n\nThe library includes comprehensive unit tests using Vitest and MSW for API mocking:\n\n```bash\n# Run tests\npnpm test\n```\n\nTests cover:\n\n- Hook functionality and data fetching\n- Pagination handling with custom batch sizes\n- Case-insensitive address matching\n- Error handling for non-existent identities\n- Type correctness and structure validation\n\n## Publishing\n\nThis package uses [Changesets](https://github.com/changesets/changesets) for version management:\n\n```bash\n# Create a changeset\npnpm changeset\n\n# Version packages and update changelog\npnpm changeset version\n\n# Publish to NPM\npnpm release\n```\n\n## License\n\nApache 2.0 © deltaDAO\n","readmeFilename":"README.md"}