{"_id":"@aweto-agent/identity","_rev":"8-8411c408ddbb4d83a5146cb5ee5ee920","name":"@aweto-agent/identity","dist-tags":{"latest":"1.8.0"},"versions":{"1.7.0":{"name":"@aweto-agent/identity","version":"1.7.0","_id":"@aweto-agent/identity@1.7.0","maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"dist":{"shasum":"4797ad59568a24cf410798eb4e04b2835841c413","tarball":"https://registry.npmjs.org/@aweto-agent/identity/-/identity-1.7.0.tgz","fileCount":8,"integrity":"sha512-64ykRy4+9g7XidN6/56OJNgDnQDDilHdK/KIgoghje1SYYZuDvvJY7jBHUVZLWLPX/TMt9TlxeodRZB8o6wjVQ==","signatures":[{"sig":"MEQCIFWTEvpt4cqx0jiX2Z1ChGZCb+w5vAXq6OzSC6sJ3XhjAiBegwk5EeLpNd4InvjTds66K6Q4iB4gHG1DahIwJh8/bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343338},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e360362932c9ea1aa66ba4c2f921fa30fbe4af06","scripts":{"lint":"eslint src --ext .ts","build":"tsup","clean":"rm -rf dist","format":"prettier --write .","lint:fix":"eslint src --ext .ts --fix","type-check":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"overdosed","email":"1710177398@qq.com"},"repository":{"url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","type":"git","directory":"packages/identity"},"_npmVersion":"10.9.2","description":"ERC-8004 identity helpers for Lucid agent kit surfaces","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"viem":"^2.38.1","@aweto-agent/types":"workspace:*","@aweto-agent/wallet":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2","@aweto-agent/eslint-config":"workspace:*","@aweto-agent/prettier-config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/identity_1.7.0_1764242146481_0.27262672179932745","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@aweto-agent/identity","version":"1.7.1","_id":"@aweto-agent/identity@1.7.1","maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"dist":{"shasum":"6387d0b029b8e062b0f4a02ebf1a4e8a6f0cde30","tarball":"https://registry.npmjs.org/@aweto-agent/identity/-/identity-1.7.1.tgz","fileCount":8,"integrity":"sha512-JkYeJMb6LK7oGN77aaPxw9WHP18c5f65xwRJRsvsFtupLdDytV3MzkCTwN/r3xHuiK3KbT9ELgnz9Yt2U3E/OQ==","signatures":[{"sig":"MEUCIAlAQeNOOH1Uv6UCgQqJRLgeTNOf7V4oqxW0zjorhNcdAiEA3hdWWdECLh1I0qR4orAkBsZsC7vUhRitku4xTiVMzio=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e360362932c9ea1aa66ba4c2f921fa30fbe4af06","scripts":{"lint":"eslint src --ext .ts","build":"tsup","clean":"rm -rf dist","format":"prettier --write .","lint:fix":"eslint src --ext .ts --fix","type-check":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"overdosed","email":"1710177398@qq.com"},"repository":{"url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","type":"git","directory":"packages/identity"},"_npmVersion":"10.9.2","description":"ERC-8004 identity helpers for Lucid agent kit surfaces","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"viem":"^2.38.1","@aweto-agent/types":"^1.3.0","@aweto-agent/wallet":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2","@aweto-agent/eslint-config":"^0.1.0","@aweto-agent/prettier-config":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/identity_1.7.1_1764242688206_0.9769918336461498","host":"s3://npm-registry-packages-npm-production"}},"1.7.5":{"name":"@aweto-agent/identity","version":"1.7.5","_id":"@aweto-agent/identity@1.7.5","maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"dist":{"shasum":"a2c755f3d34644208098074d5fa876834b619519","tarball":"https://registry.npmjs.org/@aweto-agent/identity/-/identity-1.7.5.tgz","fileCount":8,"integrity":"sha512-s0P4ThcshLddevPhyeue+1QTGDgzUxhXx5Hmi77i/0ZzPCtsWuGydLwUfBXhEwehiNHwsp/jyiuKld0Tblu0UA==","signatures":[{"sig":"MEUCIQDZsgMKB9q/s49wJ5cCGaqYEqkm5Ftztc+Oj3VA//M+1AIgKhoH3MtmmJ3i8a9dBcqIrCzVRXjZ2A3tZGDYzLjdtHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e360362932c9ea1aa66ba4c2f921fa30fbe4af06","scripts":{"lint":"eslint src --ext .ts","build":"tsup","clean":"rm -rf dist","format":"prettier --write .","lint:fix":"eslint src --ext .ts --fix","type-check":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"overdosed","email":"1710177398@qq.com"},"repository":{"url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","type":"git","directory":"packages/identity"},"_npmVersion":"10.9.2","description":"ERC-8004 identity helpers for Lucid agent kit surfaces","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"viem":"^2.38.1","@aweto-agent/types":"^1.3.0","@aweto-agent/wallet":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2","@aweto-agent/eslint-config":"^1.0.0","@aweto-agent/prettier-config":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/identity_1.7.5_1764255040441_0.7035425555672521","host":"s3://npm-registry-packages-npm-production"}},"1.7.6":{"name":"@aweto-agent/identity","version":"1.7.6","_id":"@aweto-agent/identity@1.7.6","maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"dist":{"shasum":"4feb03e80fa61d747bf52c32e00849639ca52895","tarball":"https://registry.npmjs.org/@aweto-agent/identity/-/identity-1.7.6.tgz","fileCount":8,"integrity":"sha512-Wt+atVxfrZgldxcLFqMTNZDL/Ye19BZixqLfU/E9ZsKhYDvti7ShJX350tWBue/SgbRJmMfclxjZJB3ohLR3qA==","signatures":[{"sig":"MEYCIQCfG9FtHkrI06V3BYNIClOdJHlYUjDxUtlAKu/JIuoH7wIhAK/SpOr4ZA3l7G57KuEQmkxsPOW4RZRvGL5uG6hJJp1I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e360362932c9ea1aa66ba4c2f921fa30fbe4af06","scripts":{"lint":"eslint src --ext .ts","build":"tsup","clean":"rm -rf dist","format":"prettier --write .","lint:fix":"eslint src --ext .ts --fix","type-check":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"overdosed","email":"1710177398@qq.com"},"repository":{"url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","type":"git","directory":"packages/identity"},"_npmVersion":"10.9.2","description":"ERC-8004 identity helpers for Lucid agent kit surfaces","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"viem":"^2.38.1","@aweto-agent/types":"^1.3.0","@aweto-agent/wallet":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2","@aweto-agent/eslint-config":"^1.0.0","@aweto-agent/prettier-config":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/identity_1.7.6_1764255098487_0.4691065516796762","host":"s3://npm-registry-packages-npm-production"}},"1.7.7":{"name":"@aweto-agent/identity","version":"1.7.7","_id":"@aweto-agent/identity@1.7.7","maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"dist":{"shasum":"a5eeb2c61df54e61bc7b96728247bc34ee5aff2b","tarball":"https://registry.npmjs.org/@aweto-agent/identity/-/identity-1.7.7.tgz","fileCount":8,"integrity":"sha512-kjluUUYeCKzXNWunWL2jWv5W/Cp7mT3quzhNhzaGkWdgGMuq/8JuF8NAwo8ZI6g6Rs2N+296K8sZug861pAN8w==","signatures":[{"sig":"MEYCIQCdM26V0TLis6d6+wQn6+EBcPg95vPsKJNGE2HjXOmQ6gIhAPWmNhxXaQbm0qjlOHC2A6fAZI+CgfdFiFQOwB8rQnrL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"63e246185a80a10af1f99f46253bca65396b8620","scripts":{"lint":"eslint src --ext .ts","build":"tsup","clean":"rm -rf dist","format":"prettier --write .","lint:fix":"eslint src --ext .ts --fix","type-check":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"overdosed","email":"1710177398@qq.com"},"repository":{"url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","type":"git","directory":"packages/identity"},"_npmVersion":"10.9.2","description":"ERC-8004 identity helpers for Lucid agent kit surfaces","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"viem":"^2.38.1","@aweto-agent/types":"^1.3.0","@aweto-agent/wallet":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2","@aweto-agent/eslint-config":"^1.0.0","@aweto-agent/prettier-config":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/identity_1.7.7_1764260700896_0.2654153394900962","host":"s3://npm-registry-packages-npm-production"}},"1.7.8":{"name":"@aweto-agent/identity","version":"1.7.8","_id":"@aweto-agent/identity@1.7.8","maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"dist":{"shasum":"63064aaef512feae893302c48685acac15f31f51","tarball":"https://registry.npmjs.org/@aweto-agent/identity/-/identity-1.7.8.tgz","fileCount":8,"integrity":"sha512-dHDlDG9LBfYvn+hAX05vELN6cCivmXOvmH0XIDAMz3xRSoFj8UENF60kOJAa3gUG+ZAuAizJW88somSgYDfs7w==","signatures":[{"sig":"MEUCIQC2BvQcPDo4TxtnasvxDPTtp/tLFDACmNVCyE5E6GzTgAIgfiGVk1F7V4vCeMLfGaghGuMH/RRIzvqrxhCHkxYRI9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b4f0b0e2c28e2aba031912c6a5189d729c460c91","scripts":{"lint":"eslint src --ext .ts","build":"tsup","clean":"rm -rf dist","format":"prettier --write .","lint:fix":"eslint src --ext .ts --fix","type-check":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"overdosed","email":"1710177398@qq.com"},"repository":{"url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","type":"git","directory":"packages/identity"},"_npmVersion":"10.9.2","description":"ERC-8004 identity helpers for Lucid agent kit surfaces","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"viem":"^2.38.1","@aweto-agent/types":"^1.3.0","@aweto-agent/wallet":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2","@aweto-agent/eslint-config":"^1.0.0","@aweto-agent/prettier-config":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/identity_1.7.8_1764321567414_0.16616414164374493","host":"s3://npm-registry-packages-npm-production"}},"1.7.9":{"name":"@aweto-agent/identity","version":"1.7.9","_id":"@aweto-agent/identity@1.7.9","maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"dist":{"shasum":"b0f4eecc6abf2ecc5372c53601b59ce6ef4d078c","tarball":"https://registry.npmjs.org/@aweto-agent/identity/-/identity-1.7.9.tgz","fileCount":8,"integrity":"sha512-tZscxAx7Jgh1QyEOdQ8qnQAzJxi64wi1u8FGm4gla867hjUktrHEnCi8dkNklWEBzAhPMuF67rDVj2V12+VFaA==","signatures":[{"sig":"MEUCIEEjRLaCxYiJLABGoRxCJ+XAXZpRCLehb5RD6RNYp5F8AiEArlnUraYuSIDAjtYbC0fAiRL6Bh7v7aBNRrHPDwRhaHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343318},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"94b12c977a585965dfafb7aa470034feeaa1f7fc","scripts":{"lint":"eslint src --ext .ts","build":"tsup","clean":"rm -rf dist","format":"prettier --write .","lint:fix":"eslint src --ext .ts --fix","type-check":"tsc -p tsconfig.json --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"overdosed","email":"1710177398@qq.com"},"repository":{"url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","type":"git","directory":"packages/identity"},"_npmVersion":"10.9.2","description":"ERC-8004 identity helpers for Lucid agent kit surfaces","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"viem":"^2.38.1","@aweto-agent/types":"^1.3.0","@aweto-agent/wallet":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2","@aweto-agent/eslint-config":"^1.0.0","@aweto-agent/prettier-config":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/identity_1.7.9_1764353141188_0.17091581668535705","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@aweto-agent/identity","version":"1.8.0","description":"ERC-8004 identity helpers for Lucid agent kit surfaces","repository":{"type":"git","url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","directory":"packages/identity"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"sideEffects":false,"publishConfig":{"access":"public"},"scripts":{"build":"tsup","clean":"rm -rf dist","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","format":"prettier --write .","format:check":"prettier --check .","type-check":"tsc -p tsconfig.json --noEmit"},"dependencies":{"@aweto-agent/types":"^1.3.2","@aweto-agent/wallet":"^0.2.1","viem":"^2.38.1"},"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.2","@aweto-agent/eslint-config":"^1.0.0","@aweto-agent/prettier-config":"^1.0.0"},"_id":"@aweto-agent/identity@1.8.0","gitHead":"c5c8ee1939267af57949213e2897b19b98e60296","bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","_nodeVersion":"22.3.0","_npmVersion":"10.8.1","dist":{"integrity":"sha512-MK2OAJmCKMJZQ7hkShKIBiP1hpvXUQsZK3HSTkHK79e2aipT8SWOxHT5YC8Na0Xes0H8VGjzUXfusqw3ZOxhFg==","shasum":"6815932ae927dbaf849f853194565b0d6d3a0e50","tarball":"https://registry.npmjs.org/@aweto-agent/identity/-/identity-1.8.0.tgz","fileCount":8,"unpackedSize":343318,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDFdBfZoK4NoftNLAo2azCcD4jMZCsKBojAi131KBLC/AiBIvQ7eof3PMK8LMD3Ol3dAJqq/eh3RzvewzPItSJeddg=="}]},"_npmUser":{"name":"overdosed","email":"1710177398@qq.com"},"directories":{},"maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/identity_1.8.0_1770177303071_0.6968779671174661"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-27T11:15:46.333Z","modified":"2026-02-04T03:55:03.645Z","1.7.0":"2025-11-27T11:15:46.686Z","1.7.1":"2025-11-27T11:24:48.389Z","1.7.5":"2025-11-27T14:50:40.625Z","1.7.6":"2025-11-27T14:51:38.686Z","1.7.7":"2025-11-27T16:25:01.102Z","1.7.8":"2025-11-28T09:19:27.648Z","1.7.9":"2025-11-28T18:05:41.391Z","1.8.0":"2026-02-04T03:55:03.221Z"},"bugs":{"url":"https://github.com/awe-x402/AWEtoAgent-Kit/issues"},"homepage":"https://github.com/awe-x402/AWEtoAgent-Kit#readme","repository":{"type":"git","url":"git+https://github.com/awe-x402/AWEtoAgent-Kit.git","directory":"packages/identity"},"description":"ERC-8004 identity helpers for Lucid agent kit surfaces","maintainers":[{"name":"overdosed","email":"1710177398@qq.com"}],"readme":"# @aweto-agent/identity\n\nERC-8004 identity helpers for Lucid agents. Register your agent on the ERC-8004 registry and include verifiable on-chain identity in your agent manifest.\n\n## What is ERC-8004?\n\n[ERC-8004](https://eips.ethereum.org/EIPS/eip-8004) is an Ethereum standard for an on-chain agent registry. In v1.0, agents are represented as **ERC-721 NFTs** with metadata stored off-chain.\n\n### Key Concepts\n\n- **Agent Identity**: Agents are NFTs - registering mints an NFT to your address\n- **Metadata**: Agent metadata (domain, capabilities) is hosted at your domain\n- **Ownership**: Transfer the NFT to transfer agent ownership\n- **On-Chain Verification**: Anyone can verify agent ownership via the blockchain\n\n## What Can You Do?\n\nThis package enables you to:\n\n- **Register Agent Identity**: Mint an ERC-721 NFT representing your agent on-chain with a verifiable domain\n- **Build Trust**: Integrate verifiable identity into your agent's manifest so other agents and users can verify ownership\n- **Manage Reputation**: Give and receive peer feedback through the reputation registry to build trust over time\n- **Validate Work**: Request validation of your agent's work or validate other agents' outputs through the validation registry\n\n## Installation\n\n```bash\nbun add @aweto-agent/identity\n```\n\n## Quick Start\n\n### 1. Set Up Environment Variables\n\nCreate a `.env` file:\n\n```bash\n# Your agent's domain\nAGENT_DOMAIN=my-agent.example.com\n\n# Blockchain connection\n# See \"Supported Networks\" section for all available chains\nRPC_URL=https://sepolia.base.org\nCHAIN_ID=84532  # Base Sepolia (default)\n\n# Your wallet private key (for registration)\nPRIVATE_KEY=0xYourPrivateKeyHere\n\n# Optional: Auto-register if not found\nREGISTER_IDENTITY=true\n```\n\n### 2. Register Your Agent\n\n```typescript\nimport { createAgentIdentity } from '@aweto-agent/identity';\n\n// Register with auto-configuration from env vars\nconst identity = await createAgentIdentity({\n  autoRegister: true,\n});\n\nconsole.log(identity.status);\n// \"Successfully registered agent in ERC-8004 registry\"\n\nif (identity.didRegister) {\n  console.log('Transaction:', identity.transactionHash);\n  // The package will automatically log the metadata JSON you need to host\n}\n```\n\n### 3. Host Your Metadata\n\nAfter successful registration, the package automatically generates and logs the metadata JSON you need to host. Simply copy it and save it at:\n\n```\nhttps://my-agent.example.com/.well-known/agent-metadata.json\n```\n\nYou can also generate custom metadata using the helper:\n\n```typescript\nimport { generateAgentMetadata } from '@aweto-agent/identity';\n\nconst metadata = generateAgentMetadata(identity, {\n  name: 'My Agent',\n  description: 'An intelligent assistant',\n  capabilities: [\n    { name: 'chat', description: 'Natural language conversation' },\n  ],\n});\n\n// Host this JSON at your domain\n```\n\n## Usage with Agent Kit\n\n```typescript\nimport { createAgentIdentity, getTrustConfig } from '@aweto-agent/identity';\nimport { createAgentApp } from '@aweto-agent/core';\n\n// 1. Create identity with all three registry clients\nconst identity = await createAgentIdentity({\n  domain: 'my-agent.example.com',\n  autoRegister: true,\n});\n\n// 2. Create agent with trust metadata\nconst { app, addEntrypoint } = createAgentApp(\n  {\n    name: 'my-agent',\n    version: '1.0.0',\n  },\n  {\n    trust: getTrustConfig(identity), // Include ERC-8004 identity\n  }\n);\n\n// 3. Use registry clients for reputation and validation\nif (identity.clients) {\n  // Check reputation before hiring another agent\n  const agentToHire = 42n;\n  const reputation = await identity.clients.reputation.getSummary(agentToHire);\n\n  if (reputation.averageScore > 80) {\n    console.log('Agent has good reputation, proceeding...');\n  }\n}\n```\n\n## Working with Registry Clients\n\n`createAgentIdentity()` returns clients for all three ERC-8004 registries. These clients enable you to interact with the on-chain reputation and validation systems.\n\n```typescript\nconst identity = await createAgentIdentity({ autoRegister: true });\n\n// Access all three registry clients\nidentity.clients.identity; // Identity NFT management\nidentity.clients.reputation; // Peer feedback system\nidentity.clients.validation; // Work validation\n```\n\n### How to Manage Identity Metadata\n\nRead and update agent metadata:\n\n```typescript\nconst { identity: identityClient } = identity.clients;\n\n// Read metadata\nconst metadata = await identityClient.getMetadata(myAgentId, 'version');\nif (metadata) {\n  console.log('Version:', new TextDecoder().decode(metadata));\n}\n\n// Update metadata\nawait identityClient.setMetadata(\n  myAgentId,\n  'version',\n  new TextEncoder().encode('1.0.0')\n);\n```\n\n### How to Manage Reputation\n\nGive and receive feedback on agent interactions:\n\n```typescript\nconst { reputation } = identity.clients;\n\n// Give feedback to another agent\nawait reputation.giveFeedback({\n  toAgentId: 42n,\n  score: 90, // 0-100\n  tag1: 'reliable',\n  tag2: 'fast',\n  feedbackUri: 'ipfs://QmFeedbackDetails',\n});\n\n// Query reputation\nconst summary = await reputation.getSummary(42n);\nconsole.log(\n  `Agent #42: ${summary.averageScore}/100 (${summary.count} reviews)`\n);\n\n// Get all feedback\nconst feedback = await reputation.getAllFeedback(42n);\n\n// Revoke feedback you gave\nawait reputation.revokeFeedback({\n  agentId: 42n,\n  feedbackIndex: 5n,\n});\n\n// Respond to feedback you received\nawait reputation.appendResponse({\n  agentId: myAgentId,\n  clientAddress: '0x...',\n  feedbackIndex: 3n,\n  responseUri: 'ipfs://QmMyResponse',\n  responseHash: '0x...',\n});\n```\n\n### How to Validate Work\n\nRequest validation of your work or validate others:\n\n```typescript\nconst { validation } = identity.clients;\n\n// Create validation request\nawait validation.createRequest({\n  validatorAddress: '0x...',\n  agentId: myAgentId,\n  requestUri: 'ipfs://QmMyWork',\n  requestHash: keccak256(toHex('work-data')),\n});\n\n// Submit validation response (as validator)\nawait validation.submitResponse({\n  requestHash: '0xabc...',\n  response: 1, // 1 = valid, 0 = invalid\n  responseUri: 'ipfs://QmValidationReport',\n  responseHash: '0x...',\n});\n\n// Query validations\nconst requests = await validation.getAgentValidations(myAgentId);\nconst summary = await validation.getSummary(myAgentId);\nconsole.log(`${summary.count} validations, avg: ${summary.avgResponse}`);\n```\n\n## Supported Networks\n\nThe package supports multiple EVM-compatible chains. Set `CHAIN_ID` and `RPC_URL` in your environment:\n\n- Ethereum Mainnet (1)\n- Sepolia Testnet (11155111)\n- Base Mainnet (8453)\n- Base Sepolia (84532) - default\n- Arbitrum (42161)\n- Optimism (10)\n- Polygon (137)\n- Polygon Amoy (80002)\n\n## Examples\n\nSee the [`examples/`](./examples) directory for complete examples:\n\n- [`quick-start.ts`](./examples/quick-start.ts) - Simple registration with environment variables\n- [`full-integration.ts`](./examples/full-integration.ts) - Full integration with core\n- [`test-clients.ts`](./examples/test-clients.ts) - Testing all three registry clients (identity, reputation, validation)\n\n## API Reference\n\n### `createAgentIdentity(options)`\n\nMain function to set up ERC-8004 identity for your agent.\n\n**Options:**\n\n```typescript\n{\n  // Agent domain (defaults to AGENT_DOMAIN env var)\n  domain?: string;\n\n  // Auto-register if not found (default: true)\n  autoRegister?: boolean;\n\n  // Blockchain configuration\n  chainId?: number;  // Default: 84532 (Base Sepolia)\n  rpcUrl?: string;  // Default: RPC_URL env var\n  privateKey?: string;  // Default: PRIVATE_KEY env var\n\n  // Trust configuration\n  trustModels?: string[];  // Default: [\"feedback\", \"inference-validation\"]\n  trustOverrides?: {\n    validationRequestsUri?: string;\n    validationResponsesUri?: string;\n    feedbackDataUri?: string;\n  };\n\n  // Environment and logging\n  env?: Record<string, string | undefined>;\n  logger?: {\n    info?(message: string): void;\n    warn?(message: string, error?: unknown): void;\n  };\n}\n```\n\n**Returns:**\n\n```typescript\n{\n  // Whether agent was newly registered\n  didRegister?: boolean;\n  isNewRegistration?: boolean;\n\n  // Transaction hash (if registered)\n  transactionHash?: string;\n\n  // Agent record (if found/registered)\n  record?: {\n    agentId: bigint;\n    owner: string;\n    tokenURI: string;\n  };\n\n  // Trust config for agent manifest\n  trust?: TrustConfig;\n\n  // Human-readable status message\n  status: string;\n\n  // Resolved domain\n  domain?: string;\n}\n```\n\n### `registerAgent(options)`\n\nConvenience wrapper that forces `autoRegister: true`.\n\n```typescript\nconst identity = await registerAgent({\n  domain: 'my-agent.example.com',\n});\n```\n\n### `getTrustConfig(identity)`\n\nExtract just the trust config from an identity result.\n\n```typescript\nconst identity = await createAgentIdentity({ autoRegister: true });\nconst trustConfig = getTrustConfig(identity);\n\n// Use in createAgentApp\ncreateAgentApp({ name: 'my-agent' }, { trust: trustConfig });\n```\n\n### `generateAgentMetadata(identity, options?)`\n\nGenerate the metadata JSON to host at your domain. Automatically called after registration, but you can also use it to customize the metadata.\n\n```typescript\nconst metadata = generateAgentMetadata(identity, {\n  name: 'My Agent',\n  description: 'An intelligent assistant',\n  capabilities: [\n    { name: 'chat', description: 'Natural language conversation' },\n    { name: 'search', description: 'Web search' },\n  ],\n});\n\n// Save to: https://your-domain/.well-known/agent-metadata.json\n```\n\n## How It Works\n\nWhen you call `createAgentIdentity({ autoRegister: true })`:\n\n1. Registers your agent on-chain (mints an NFT to your address)\n2. Returns a trust config for your agent manifest\n3. Provides clients for reputation and validation\n\nYou must host metadata at: `https://{your-domain}/.well-known/agent-metadata.json`\n\nThe trust config allows other agents to verify your identity and access reputation data.\n\n## Troubleshooting\n\n### \"No ERC-8004 identity\" Message\n\nIf you see this message, it means:\n\n- Agent isn't registered yet (set `autoRegister: true`)\n- Registry connection failed (check RPC_URL)\n- Wallet not configured (check PRIVATE_KEY)\n\nThis is **normal** - your agent will run fine without on-chain identity, it just won't have verifiable trust metadata.\n\n### Registration Succeeded but No Trust Config\n\nAfter successful registration (`didRegister: true`), the package can't immediately verify the registration because ERC-8004 v1.0 doesn't support querying by domain. This is expected behavior.\n\n**Solution**: Query by agent ID later, or trust that the transaction succeeded.\n\n### Metadata Not Accessible\n\nMake sure your metadata is:\n\n1. Hosted at the exact URL: `https://{domain}/.well-known/agent-metadata.json`\n2. Returns valid JSON with `Content-Type: application/json`\n3. Accessible over HTTPS (not HTTP)\n4. Not blocked by CORS (if accessed from browsers)\n\n## License\n\nMIT\n\n## Links\n\n- [ERC-8004 Specification](https://eips.ethereum.org/EIPS/eip-8004)\n- [ERC-8004 Reference Implementation](https://github.com/awe-agents-ai/erc-8004-contracts)\n- [Agent Kit Documentation](https://github.com/awe-agents-ai/lucid-fullstack/tree/main/packages/core)\n","readmeFilename":"README.md"}