{"_id":"@abstract-names/sdk","_rev":"4-7963dd2fab1fa976132ba28b72cb099f","name":"@abstract-names/sdk","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@abstract-names/sdk","version":"0.1.0","keywords":["abstract","names","ens","wagmi","react","ethereum","web3"],"author":{"name":"Abstract Names"},"license":"MIT","_id":"@abstract-names/sdk@0.1.0","maintainers":[{"name":"berny-art","email":"berny@berny.art"}],"homepage":"https://github.com/abstract-names/sdk#readme","bugs":{"url":"https://github.com/abstract-names/sdk/issues"},"dist":{"shasum":"f38eda0b5ba22b658bea3a2cc7c4d1e7fb6a2b21","tarball":"https://registry.npmjs.org/@abstract-names/sdk/-/sdk-0.1.0.tgz","fileCount":9,"integrity":"sha512-tPyFSX2XSl9d2MMb+Nm6bkDdrqz966pnEhP5eUCbq+uK82hGYOIP3c6dERMjgUDzOfwPW7eaCyhK40F4119BSg==","signatures":[{"sig":"MEUCIFu/HCbV6zNlIhZSO2/fbzuV6P/bwI1OBdZwghdUb/ywAiEAucl7hFGMUJug1Cp3Y8nFaqJaVoZxTmQGf1Ehm8pOdvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107584},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4ee8b321286f1b2e6c2ee8aaedc23171578ef2e9","scripts":{"dev":"tsup --watch","lint":"biome check","build":"tsup","format":"biome format --write","typecheck":"tsc --noEmit"},"_npmUser":{"name":"berny-art","email":"berny@berny.art"},"repository":{"url":"git+https://github.com/abstract-names/sdk.git","type":"git"},"_npmVersion":"10.9.2","description":"React SDK for Abstract Names - name resolution and profiles","directories":{},"_nodeVersion":"23.5.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","viem":"^2.0.0","react":"^19.1.0","wagmi":"^2.17.0","typescript":"^5.0.0","@types/react":"^19.0.0","@biomejs/biome":"^2.2.0"},"peerDependencies":{"viem":"^2.0.0","react":"^18.0.0 || ^19.0.0","wagmi":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1760364514428_0.08151223052564482","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@abstract-names/sdk","version":"0.2.0","keywords":["abstract","names","ens","wagmi","react","ethereum","web3"],"author":{"name":"Abstract Names"},"license":"MIT","_id":"@abstract-names/sdk@0.2.0","maintainers":[{"name":"berny-art","email":"berny@berny.art"}],"homepage":"https://github.com/abstract-names/sdk#readme","bugs":{"url":"https://github.com/abstract-names/sdk/issues"},"dist":{"shasum":"97ef57d20671cb390e38419d96d581568dbacf5a","tarball":"https://registry.npmjs.org/@abstract-names/sdk/-/sdk-0.2.0.tgz","fileCount":10,"integrity":"sha512-rxaOE1321H0eR8E7QMvHWFYZ6lsJu4sfU2erBk8zxTqQwJRnTflncXvtf9EPCHIKpFMYweyfBcY6eYzAmQxr0A==","signatures":[{"sig":"MEYCIQDdAdd64c23XQM0FLPlD+D3D7KNQz9HVFZoGoNk3ZLPfgIhAMUlv0mtTU9ZtLv9ICT2J9MqzfyGHujFFRuNe2YddfeT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150539},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"55b3b983a51e812a692d9a91920d5caaf52ab4f0","scripts":{"dev":"tsup --watch","lint":"biome check --write","build":"tsup","format":"biome format --write","typecheck":"tsc --noEmit","prerelease":"pnpm format && pnpm lint && pnpm typecheck && pnpm build","publish:check":"npm pack --dry-run","release:major":"npm version major && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public","release:minor":"npm version minor && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public","release:patch":"npm version patch && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public","version:major":"npm version major && git push && git push --tags","version:minor":"npm version minor && git push && git push --tags","version:patch":"npm version patch && git push && git push --tags","check:changelog":"node scripts/check-changelog.js"},"_npmUser":{"name":"berny-art","email":"berny@berny.art"},"repository":{"url":"git+https://github.com/abstract-names/sdk.git","type":"git"},"_npmVersion":"10.9.2","description":"React SDK for Abstract Names - name resolution and profiles","directories":{},"_nodeVersion":"23.5.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","viem":"^2.0.0","react":"^19.1.0","wagmi":"^2.17.0","typescript":"^5.0.0","@types/react":"^19.0.0","@biomejs/biome":"^2.2.0"},"peerDependencies":{"viem":"^2.0.0","react":"^18.0.0 || ^19.0.0","wagmi":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1760368173492_0.5615487592056019","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@abstract-names/sdk","version":"0.2.1","keywords":["abstract","names","ens","wagmi","react","ethereum","web3"],"author":{"name":"Abstract Names"},"license":"MIT","_id":"@abstract-names/sdk@0.2.1","maintainers":[{"name":"berny-art","email":"berny@berny.art"}],"homepage":"https://github.com/abstract-names/sdk#readme","bugs":{"url":"https://github.com/abstract-names/sdk/issues"},"dist":{"shasum":"9a160757e861ab7ec24ef07d08e80caac4611b7e","tarball":"https://registry.npmjs.org/@abstract-names/sdk/-/sdk-0.2.1.tgz","fileCount":10,"integrity":"sha512-TGVfCqdUjBE8KdCPzjHn6zBQbxbpJ/JnHY4shLsLWj5Q1zSrPXsJahF0nfx4Uis0baRkVUgZfG5xPpKSJBzNig==","signatures":[{"sig":"MEQCIDh7oU9RyhYC4iovJu5DiJvL+4n0fI88LZiiX4griJEaAiAoGwruPMjpKeWQlRvHy0X3HflgAMzYiXbOP7NDCz1q8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164057},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"04c79e398793819fd2dbdb29225c037b278c5d14","scripts":{"dev":"tsup --watch","lint":"biome check --write","build":"tsup","format":"biome format --write","typecheck":"tsc --noEmit","prerelease":"pnpm format && pnpm lint && pnpm typecheck && pnpm build","publish:check":"npm pack --dry-run","release:major":"npm version major && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public","release:minor":"npm version minor && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public","release:patch":"npm version patch && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public","version:major":"npm version major && git push && git push --tags","version:minor":"npm version minor && git push && git push --tags","version:patch":"npm version patch && git push && git push --tags","check:changelog":"node scripts/check-changelog.js"},"_npmUser":{"name":"berny-art","email":"berny@berny.art"},"repository":{"url":"git+https://github.com/abstract-names/sdk.git","type":"git"},"_npmVersion":"10.9.2","description":"React SDK for Abstract Names - name resolution and profiles","directories":{},"_nodeVersion":"23.5.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","viem":"^2.0.0","react":"^19.1.0","wagmi":"^2.17.0","typescript":"^5.0.0","@types/react":"^19.0.0","@biomejs/biome":"^2.2.0"},"peerDependencies":{"viem":"^2.0.0","react":"^18.0.0 || ^19.0.0","wagmi":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.1_1760392286285_0.744451844772422","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@abstract-names/sdk","version":"0.4.0","description":"React SDK for Abstract Names - name resolution and profiles","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"sideEffects":false,"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","lint":"biome check --write","format":"biome format --write","check:changelog":"node scripts/check-changelog.js","prerelease":"pnpm format && pnpm lint && pnpm typecheck && pnpm build","version:patch":"npm version patch && git push && git push --tags","version:minor":"npm version minor && git push && git push --tags","version:major":"npm version major && git push && git push --tags","publish:check":"npm pack --dry-run","release:patch":"npm version patch && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public","release:minor":"npm version minor && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public","release:major":"npm version major && pnpm check:changelog && pnpm prerelease && git push && git push --tags && npm publish --access public"},"keywords":["abstract","names","ens","wagmi","react","ethereum","web3"],"author":{"name":"Abstract Names"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/abstract-names/abstract-names-sdk.git"},"homepage":"https://github.com/abstract-names/abstract-names-sdk#readme","bugs":{"url":"https://github.com/abstract-names/abstract-names-sdk/issues"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","viem":"^2.0.0","wagmi":"^2.0.0"},"devDependencies":{"@biomejs/biome":"^2.2.0","@types/react":"^19.0.0","react":"^19.1.0","tsup":"^8.3.5","typescript":"^5.0.0","viem":"^2.0.0","wagmi":"^2.17.0"},"gitHead":"4b308c6403b7439f30eabce00c29d6e16ecf258b","_id":"@abstract-names/sdk@0.4.0","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-O/Iemtk6csNAYmoyc34jTyNElSPZXMep5U0JwCkuiDaIsNgBm9ZoRtfyei9aPxK4p8eBQJVRM9haFhdxb2x2Cg==","shasum":"abe9a4a11cf363f01ecbc7f48f0e4b8e3f89efd2","tarball":"https://registry.npmjs.org/@abstract-names/sdk/-/sdk-0.4.0.tgz","fileCount":10,"unpackedSize":360053,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC8X6liOkl0+8VsuH+aOp5YW1d085zxikrYc8sqAsKICgIhALgPWs7T052AlFanh2d10MGLftj3HJvfuODVSx9KpT3S"}]},"_npmUser":{"name":"berny-art","email":"berny@berny.art"},"directories":{},"maintainers":[{"name":"berny-art","email":"berny@berny.art"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.4.0_1767048155671_0.1371013102590859"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-13T14:08:34.334Z","modified":"2025-12-29T22:42:36.027Z","0.1.0":"2025-10-13T14:08:34.657Z","0.2.0":"2025-10-13T15:09:33.667Z","0.2.1":"2025-10-13T21:51:26.481Z","0.4.0":"2025-12-29T22:42:35.811Z"},"bugs":{"url":"https://github.com/abstract-names/abstract-names-sdk/issues"},"author":{"name":"Abstract Names"},"license":"MIT","homepage":"https://github.com/abstract-names/abstract-names-sdk#readme","keywords":["abstract","names","ens","wagmi","react","ethereum","web3"],"repository":{"type":"git","url":"git+https://github.com/abstract-names/abstract-names-sdk.git"},"description":"React SDK for Abstract Names - name resolution and profiles","maintainers":[{"name":"berny-art","email":"berny@berny.art"}],"readme":"# Abstract Names SDK\n\n[![npm version](https://badge.fury.io/js/@abstract-names%2Fsdk.svg)](https://www.npmjs.com/package/@abstract-names/sdk)\n[![npm downloads](https://img.shields.io/npm/dm/@abstract-names/sdk.svg)](https://www.npmjs.com/package/@abstract-names/sdk)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nReact SDK for interacting with Abstract Names contracts. Provides simple hooks for name resolution, reverse resolution, and profile data.\n\n## WARNING: NOT PRODUCTION READY YET\nThis project is ongoing development. Please wait before the first major version before using this in production environments.\n\n## Installation\n\n```bash\n# npm\nnpm install @abstract-names/sdk\n\n# yarn\nyarn add @abstract-names/sdk\n\n# pnpm\npnpm add @abstract-names/sdk\n\n# bun\nbun add @abstract-names/sdk\n```\n\n## Prerequisites\n\nThis SDK requires the following peer dependencies:\n- `react` (^18.0.0 or ^19.0.0)\n- `wagmi` (^2.0.0)\n- `viem` (^2.0.0)\n\nMake sure you have wagmi configured in your application.\n\n## Quick Start\n\n```tsx\nimport { useResolve, useReverseResolve, useProfile } from '@abstract-names/sdk';\n\nfunction MyComponent() {\n  // Resolve name to address\n  const { data: address } = useResolve({\n    name: 'vitalik.abs'\n  });\n\n  // Reverse resolve address to name\n  const { data: name } = useReverseResolve({\n    address: '0x1234...'\n  });\n\n  // Get complete profile\n  const { data: profile, getTextRecord } = useProfile({\n    nameOrAddress: 'vitalik.abs'\n  });\n\n  const twitter = getTextRecord('com.x');\n\n  return (\n    <div>\n      <p>Address: {address}</p>\n      <p>Name: {name}</p>\n      <p>Twitter: {twitter}</p>\n    </div>\n  );\n}\n```\n\n## Features\n\n- ✅ **Auto-Detection** - Automatically uses the active chain from wagmi\n- ✅ **Comprehensive** - 15 hooks covering read, write, validation, and pricing\n- ✅ **Structured Errors** - User-friendly error messages for better UX\n- ✅ **TypeScript First** - Full type safety with TypeScript\n- ✅ **wagmi Integration** - Built on wagmi v2 with TanStack Query v5\n- ✅ **Tree Shakeable** - Import only what you need (sideEffects: false)\n- ✅ **Performance Optimized** - Debounced validation, minimal re-renders\n- ✅ **Works with Any Wallet** - Compatible with RainbowKit, Privy, Dynamic, WalletConnect, or native implementations\n\n## Available Hooks\n\n**Resolution:**\n- `useResolve` - Resolve name to address\n- `useReverseResolve` - Get primary name for address\n- `useProfile` - Get complete profile data including text records\n\n**Validation:**\n- `useValidateName` - Contract-based name validation (Unicode support)\n- `useValidateNameDebounced` - Debounced validation (reduces RPC calls ~70%)\n\n**Write Operations:**\n- `useSetTextRecord` - Set individual text records\n- `useBatchSetText` - Gas-efficient batch updates\n- `useSetPrimaryName` - Set/unset primary names (with fee)\n- `useSetAddress` - Set resolved address\n\n**Pricing & Phases:**\n- `useNamePrice` - Tier-based pricing info\n- `useMintPhase` - Current phase detection\n\n**Utilities:**\n- `useNameAvailability` - Check if name is available\n- `useNameExpiry` - Expiration info with days until expiry\n- `useTextRecord` - Fetch individual text records\n- `useAllowedTextKeys` - Get supported text record keys\n\n## How It Works\n\n### Automatic Chain Detection\n\nThe SDK automatically detects the active chain from wagmi - no need to pass chain parameters to each hook:\n\n```tsx\n// Example with AbstractWalletProvider\nimport { AbstractWalletProvider } from \"@abstract-foundation/agw-react\";\nimport { abstractTestnet } from \"viem/chains\";\n\nfunction App() {\n  return (\n    <AbstractWalletProvider chain={abstractTestnet}>\n      <YourApp />\n    </AbstractWalletProvider>\n  );\n}\n\n// In your components - no chain parameter needed!\nimport { useResolve } from \"@abstract-names/sdk\";\n\nfunction YourComponent() {\n  const { data } = useResolve({\n    name: \"vitalik.abs\"\n  });\n  // Auto-detects abstractTestnet from wagmi\n}\n```\n\nWorks with RainbowKit, Privy, Dynamic, or any wagmi setup - the SDK automatically uses your active chain!\n\n### Optional: Override Chain with Provider\n\nNeed to query a different chain than the active one? Use the `AbstractNamesProvider`:\n\n```tsx\nimport { AbstractNamesProvider } from \"@abstract-names/sdk\";\nimport { abstractTestnet } from \"viem/chains\";\n\nfunction App() {\n  return (\n    <AbstractNamesProvider chainId={abstractTestnet.id}>\n      <YourApp />\n      {/* All hooks inside will use abstractTestnet */}\n    </AbstractNamesProvider>\n  );\n}\n```\n\n## Documentation\n\nFor complete documentation, examples, and guides:\n\n📖 **General Documentation:** https://abstractnames.gitbook.io/docs\n\n🎣 **React Hooks Guide:** https://abstractnames.gitbook.io/docs/documentation/build/react\n\n## License\n\nMIT\n","readmeFilename":"README.md"}