{"_id":"@0xgasless/agent-sdk","_rev":"3-8c924d1975b59ff5a9e0ae14ec8e4c57","name":"@0xgasless/agent-sdk","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@0xgasless/agent-sdk","version":"0.1.1","keywords":["erc8004","x402","agents","sdk","evm","gasless"],"license":"MIT","_id":"@0xgasless/agent-sdk@0.1.1","maintainers":[{"name":"0xgasless","email":"0xgasless@gmail.com"}],"bin":{"moltpay":"dist/cli/index.js"},"dist":{"shasum":"23e253da3a61929fd1804c8ba5238b1f882faa89","tarball":"https://registry.npmjs.org/@0xgasless/agent-sdk/-/agent-sdk-0.1.1.tgz","fileCount":129,"integrity":"sha512-+mb+CM548mlBlVaWmveCpR8UuUSdzcsdJJ8UKw5WKT6ar912fAXIg3D/iFZc1KjvmlyyQe6SZmYDXCcm0Ckuhg==","signatures":[{"sig":"MEUCIGxJuPeFBpxWXzB8RKWzpfSjR2OwlIt2hO3qqnWwfuy9AiEAoFpzzdynu3wrvW0rj8qlQGw3VYlHphFeIjvRNg+GW6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385180},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fuji-config":{"types":"./dist/fuji-config.d.ts","import":"./dist/fuji-config.js"}},"gitHead":"f9ff221d02f5882098bd072d962fd9ba5270b549","scripts":{"dev":"tsc --watch","build":"tsc","build:cli":"tsup src/cli/index.ts --format esm --out-dir dist/cli --clean --platform node --external dotenv","prepublishOnly":"npm run build && npm run build:cli"},"_npmUser":{"name":"0xgasless","email":"0xgasless@gmail.com"},"_npmVersion":"11.6.0","description":"Universal Agent SDK combining ERC-8004 identity/reputation with x402 gasless payments across chains","directories":{},"_nodeVersion":"24.10.0","dependencies":{"ora":"^9.1.0","axios":"^1.7.7","chalk":"^5.6.2","dotenv":"^17.2.3","ethers":"^6.0.0","inquirer":"^13.2.2","commander":"^14.0.3","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.1.2","@privy-io/server-auth":"^1.32.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5","@types/node":"^20"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-sdk_0.1.1_1770557424795_0.6725804191712119","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Superseded by @0xgasless/agent — see docs.0xgasless.com"},"0.1.2":{"name":"@0xgasless/agent-sdk","version":"0.1.2","keywords":["erc8004","x402","agents","sdk","evm","gasless"],"license":"MIT","_id":"@0xgasless/agent-sdk@0.1.2","maintainers":[{"name":"0xgasless","email":"0xgasless@gmail.com"}],"bin":{"moltpay":"dist/cli/index.js"},"dist":{"shasum":"31eaab4f95ba180a8b0c66e11adbbe8712954680","tarball":"https://registry.npmjs.org/@0xgasless/agent-sdk/-/agent-sdk-0.1.2.tgz","fileCount":129,"integrity":"sha512-Rr8W338cPINV6WPlH84WzScs2sKIJbNiCa0UpslUGc8ZnO+eCCMVki7zwLJzcS0utqHLCqBy8Qet/YFi+ws0XA==","signatures":[{"sig":"MEUCIQCWvsM2EmuNHIumbLeJ1g5MaHRbq3vlNtrUmaLIy6HMHwIgFPQcNhB/7qUxuujCTcr2RPWq1Zr7l5O9VTzbrJMs5mI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385512},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./fuji-config":{"types":"./dist/fuji-config.d.ts","import":"./dist/fuji-config.js"}},"gitHead":"f8e012979461b7d7474daa1760452605d4d18d9a","scripts":{"dev":"tsc --watch","build":"tsc","build:cli":"tsup src/cli/index.ts --format esm --out-dir dist/cli --clean --platform node --external dotenv","prepublishOnly":"npm run build && npm run build:cli"},"_npmUser":{"name":"0xgasless","email":"0xgasless@gmail.com"},"_npmVersion":"11.6.0","description":"Universal Agent SDK combining ERC-8004 identity/reputation with x402 gasless payments across chains","directories":{},"_nodeVersion":"24.10.0","dependencies":{"ora":"^9.1.0","axios":"^1.7.7","chalk":"^5.6.2","dotenv":"^17.2.3","ethers":"^6.0.0","inquirer":"^13.2.2","commander":"^14.0.3","@langchain/core":"^1.1.18","@langchain/langgraph":"^1.1.2","@privy-io/server-auth":"^1.32.5"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5","@types/node":"^20"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-sdk_0.1.2_1771259160226_0.7917965288914401","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Superseded by @0xgasless/agent — see docs.0xgasless.com"}},"time":{"created":"2026-02-08T13:30:24.741Z","modified":"2026-08-08T05:54:03.384Z","0.1.1":"2026-02-08T13:30:25.019Z","0.1.2":"2026-02-16T16:26:00.388Z"},"license":"MIT","keywords":["erc8004","x402","agents","sdk","evm","gasless"],"description":"Universal Agent SDK combining ERC-8004 identity/reputation with x402 gasless payments across chains","maintainers":[{"name":"0xgasless","email":"0xgasless@gmail.com"}],"readme":"# @0xgasless/agent-sdk\n\n<div align=\"center\">\n\n![Version](https://img.shields.io/npm/v/@0xgasless/agent-sdk?style=flat-square)\n![License](https://img.shields.io/npm/l/@0xgasless/agent-sdk?style=flat-square)\n![Node](https://img.shields.io/node/v/@0xgasless/agent-sdk?style=flat-square)\n\n**The Financial Layer for Autonomous AI Agents**\n\nERC-8004 Identity + x402 Gasless Payments + MoltPay CLI\n\n[Quick Start](#-quick-start) • [MoltPay CLI](#-moltpay-cli) • [SDK Reference](#-sdk-reference) • [Examples](#-examples)\n\n</div>\n\n---\n\n## 🎯 What is this?\n\nA **wallet-agnostic** SDK for building autonomous AI agents on Avalanche with:\n\n- 🆔 **ERC-8004** - On-chain agent identity, reputation, and validation\n- 💸 **x402 Payments** - Gasless payments via 0xGasless facilitator\n- 🦞 **MoltPay CLI** - Interactive command-line for agent registration & payments\n- 🤖 **LangChain Tools** - Pre-built tools for AI agent frameworks\n- 🔗 **Fetch.ai Integration** - Optional ASI-1 agent integration\n\n---\n\n## 📦 Installation\n\n### NPM Package\n\n```bash\nnpm install @0xgasless/agent-sdk ethers\n```\n\n### Global CLI (MoltPay)\n\n```bash\n# Install globally for CLI access\nnpm install -g @0xgasless/agent-sdk\n\n# Or use npx without installing\nnpx @0xgasless/agent-sdk moltpay --help\n```\n\n---\n\n## 🚀 Quick Start\n\n### Step 1: Install Dependencies\n\n```bash\nnpm install @0xgasless/agent-sdk ethers dotenv\n```\n\n### Step 2: Create Environment File\n\n```bash\n# .env\nPRIVATE_KEY=0xYOUR_PRIVATE_KEY_HERE\nRPC_URL=https://api.avax-test.network/ext/bc/C/rpc\n```\n\n### Step 3: Initialize SDK\n\n```typescript\nimport { AgentSDK, fujiConfig } from '@0xgasless/agent-sdk';\nimport { Wallet, JsonRpcProvider } from 'ethers';\nimport 'dotenv/config';\n\n// Create wallet from private key\nconst provider = new JsonRpcProvider(process.env.RPC_URL);\nconst wallet = new Wallet(process.env.PRIVATE_KEY!, provider);\n\n// Initialize SDK\nconst sdk = new AgentSDK({\n  networks: fujiConfig.networks,\n  defaultNetwork: 'fuji',\n  signer: wallet,\n});\n\n// Register agent on ERC-8004\nconst agentId = await sdk.erc8004.identity().register('ipfs://QmAgentMetadata...');\nconsole.log('Agent registered with ID:', agentId);\n```\n\n---\n\n## 🦞 MoltPay CLI\n\nMoltPay is the interactive CLI for managing agent wallets, registrations, and payments.\n\n### Installation\n\n```bash\n# Global install (recommended)\nnpm install -g @0xgasless/agent-sdk\n\n# Verify installation\nmoltpay --help\n```\n\n### Commands\n\n| Command | Description |\n|---------|-------------|\n| `moltpay init` | Initialize agent wallet and environment |\n| `moltpay register` | Register agent identity on ERC-8004 |\n| `moltpay pay` | Send crypto payments |\n| `moltpay verify` | Verify agent on MoltBook social graph |\n\n### Step-by-Step Setup\n\n#### 1. Initialize Your Agent\n\n```bash\nmoltpay init\n```\n\nFollow the interactive prompts:\n- Select network: **Avalanche Fuji (Testnet)** or **Avalanche Mainnet**\n- Enter private key or generate new wallet\n\nThis creates a `.env` file with your configuration.\n\n#### 2. Register on ERC-8004\n\n```bash\nmoltpay register\n```\n\nThis will:\n- Check if you already have an identity\n- Prompt for agent name and service domain\n- Mint your ERC-8004 identity NFT on-chain\n\n#### 3. Make Payments\n\n```bash\n# Interactive mode\nmoltpay pay\n\n# Direct mode\nmoltpay pay 10 USDC 0xRecipientAddress\n```\n\n#### 4. Verify on MoltBook (Optional)\n\n```bash\nmoltpay verify\n```\n\nLinks your on-chain identity to your social presence.\n\n### Hosted CLI (Coming Soon)\n\n```bash\n# 🚧 COMING SOON - Hosted version with managed wallets\n# npx @0xgasless/moltpay-hosted login\n# npx @0xgasless/moltpay-hosted dashboard\n```\n\n---\n\n## 📍 Deployed Contracts\n\n### Avalanche C-Chain Mainnet (Chain ID: 43114) ✅ LIVE\n\n#### ERC-8004 Registries\n\n| Contract | Address |\n|----------|---------|\n| IdentityRegistry | [`0x06d49e79da8a241dd2c412bf5d22e19c619a39d1`](https://snowtrace.io/address/0x06d49e79da8a241dd2c412bf5d22e19c619a39d1) |\n| ReputationRegistry | [`0x29A62d678dCc581414BB3A74dF27E99c17e60dD7`](https://snowtrace.io/address/0x29A62d678dCc581414BB3A74dF27E99c17e60dD7) |\n| ValidationRegistry | [`0xa490b79113d8ef4e7c7912759a3fcaff8a58cd05`](https://snowtrace.io/address/0xa490b79113d8ef4e7c7912759a3fcaff8a58cd05) |\n| ValidationPlugin | [`0x83dab1f7be37c5c4b84743b72642c9651de7f12b`](https://snowtrace.io/address/0x83dab1f7be37c5c4b84743b72642c9651de7f12b) |\n\n#### x402 Gasless Payments\n\n| Component | Value |\n|-----------|-------|\n| Facilitator URL | `https://x402.0xgasless.com` |\n| Relayer Contract | [`0x457Db7ceBAdaF6A043AcE833de95C46E982cEdC8`](https://snowtrace.io/address/0x457Db7ceBAdaF6A043AcE833de95C46E982cEdC8) |\n| EIP-712 Domain | `{ name: \"A402\", version: \"1\", chainId: 43114 }` |\n\n#### Supported Payment Tokens\n\n| Token | Address | Decimals |\n|-------|---------|----------|\n| USDC (Native) | [`0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E`](https://snowtrace.io/address/0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E) | 6 |\n| USDT (Native) | [`0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7`](https://snowtrace.io/address/0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7) | 6 |\n| USDC.e (Bridged) | [`0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664`](https://snowtrace.io/address/0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664) | 6 |\n| USDT.e (Bridged) | [`0xc7198437980c041c805A1EDcbA50c1Ce5db95118`](https://snowtrace.io/address/0xc7198437980c041c805A1EDcbA50c1Ce5db95118) | 6 |\n\n---\n\n### Avalanche Fuji Testnet (Chain ID: 43113)\n\n#### ERC-8004 Registries\n\n| Contract | Address |\n|----------|---------|\n| IdentityRegistry | [`0x372d406040064a9794d14f3f8fec0f2e13e5b99f`](https://testnet.snowtrace.io/address/0x372d406040064a9794d14f3f8fec0f2e13e5b99f) |\n| ReputationRegistry | [`0x8B106121EeEC204a1EA012E8560090a85d4C5350`](https://testnet.snowtrace.io/address/0x8B106121EeEC204a1EA012E8560090a85d4C5350) |\n| ValidationRegistry | [`0x6ab685d73513918a5d76d90cbc089583b92f029e`](https://testnet.snowtrace.io/address/0x6ab685d73513918a5d76d90cbc089583b92f029e) |\n| ValidationPlugin | [`0x6b35bEc82E5623dbc67Aa921dB10fF719C77E1fB`](https://testnet.snowtrace.io/address/0x6b35bEc82E5623dbc67Aa921dB10fF719C77E1fB) |\n\n#### x402 Gasless Payments (Testnet)\n\n| Component | Value |\n|-----------|-------|\n| Facilitator URL | `https://testnet.0xgasless.com` |\n| Relayer Contract | [`0x8BD697733c31293Be2327026d01aE393Ab2675C4`](https://testnet.snowtrace.io/address/0x8BD697733c31293Be2327026d01aE393Ab2675C4) |\n\n---\n\n## 📖 SDK Reference\n\n### Core SDK\n\n```typescript\nimport { AgentSDK, fujiConfig } from '@0xgasless/agent-sdk';\n\nconst sdk = new AgentSDK({\n  networks: fujiConfig.networks,\n  defaultNetwork: 'fuji',\n  signer: wallet, // Any ethers.Signer\n});\n\n// Get wallet address\nconst address = await sdk.getAddress();\n\n// Access ERC-8004 clients\nconst identity = sdk.erc8004.identity();\nconst reputation = sdk.erc8004.reputation();\nconst validation = sdk.erc8004.validation();\n\n// Access x402 facilitator\nconst facilitator = sdk.getFacilitator();\n```\n\n### ERC-8004 Identity\n\n```typescript\nimport { IdentityV2 } from '@0xgasless/agent-sdk';\n\n// Register new agent\nconst agentId = await identity.register('ipfs://metadata-uri');\n\n// Get agent by owner\nconst agentId = await identity.getAgentIdByOwner('0xOwnerAddress');\n\n// Get agent metadata URI\nconst uri = await identity.tokenURI(agentId);\n\n// Check balance\nconst count = await identity.balanceOf('0xAddress');\n```\n\n### ERC-8004 Reputation\n\n```typescript\nimport { ReputationV2 } from '@0xgasless/agent-sdk';\n\n// Get reputation score\nconst score = await reputation.getScore(agentId);\n\n// Get reputation history\nconst history = await reputation.getHistory(agentId);\n```\n\n### x402 Payments\n\n```typescript\nimport { FacilitatorClient, x402Fetch } from '@0xgasless/agent-sdk';\n\n// Create payment payload\nconst payload = await sdk.x402.createPaymentPayload({\n  to: '0xRecipient',\n  amount: '5000000', // 5 USDT (6 decimals)\n  token: '0xUSDTAddress',\n});\n\n// Use x402 fetch for gasless requests\nconst response = await x402Fetch('https://api.example.com/paid-endpoint', {\n  method: 'POST',\n  headers: { 'X-402-Payment': JSON.stringify(payload) },\n});\n```\n\n### LangChain Tools\n\n```typescript\nimport { getAgentTools, registerAgentTool, getBalanceTool } from '@0xgasless/agent-sdk';\n\n// Get all pre-built tools\nconst tools = getAgentTools(sdk);\n\n// Or use individual tools\nconst registerTool = registerAgentTool(sdk);\nconst balanceTool = getBalanceTool(sdk);\n\n// Use with LangChain agent\nconst agent = new ChatOpenAI({ ... });\nconst chain = AgentExecutor.fromAgentAndTools({\n  agent,\n  tools,\n});\n```\n\n### Session Keys (For Autonomous Agents)\n\n```typescript\nimport { SessionKeyHelper } from '@0xgasless/agent-sdk';\nimport { parseUnits } from 'ethers';\n\n// Generate session key with constraints\nconst sessionKey = SessionKeyHelper.generateSessionKey({\n  maxSpendPerTx: parseUnits('10', 6),      // 10 USDT per tx\n  maxSpendPerDay: parseUnits('100', 6),    // 100 USDT per day\n  validForSeconds: 7 * 24 * 60 * 60,       // 7 days\n  whitelistedContracts: ['0x...'],\n});\n\n// Create wallet from session key\nconst sessionWallet = SessionKeyHelper.createWallet(sessionKey, provider);\n\n// Validate before spending\nconst validation = SessionKeyHelper.validateTransaction(\n  sessionKey,\n  { to: '0x...', value: parseUnits('5', 6) },\n  spentToday\n);\n\nif (!validation.valid) {\n  console.error('Transaction blocked:', validation.reason);\n}\n```\n\n### Fetch.ai Integration\n\n```typescript\nimport { FetchAIAgent } from '@0xgasless/agent-sdk';\n\nconst fetchAgent = new FetchAIAgent(sdk, {\n  apiKey: process.env.FETCHAI_API_KEY,\n  model: 'asi1-mini',\n});\n\nconst result = await fetchAgent.query('Research DeFi trends on Avalanche');\nconsole.log(result);\n```\n\n---\n\n## 🔧 Configuration\n\n### Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `PRIVATE_KEY` | Yes | Agent wallet private key |\n| `RPC_URL` | No | RPC endpoint (defaults to Fuji) |\n| `MOLTPAY_NETWORK` | No | Network override (`avax-fuji` or `avax-mainnet`) |\n| `X402_FACILITATOR_URL` | No | Custom facilitator URL |\n\n### Network Configuration\n\n```typescript\nimport { \n  fujiConfig, \n  mainnetConfig, \n  ERC8004_V2, \n  ERC8004_V2_MAINNET \n} from '@0xgasless/agent-sdk';\n\n// Testnet (Fuji)\nconst testnetSdk = new AgentSDK({\n  networks: fujiConfig.networks,\n  defaultNetwork: 'fuji',\n  signer: wallet,\n});\n\n// Mainnet\nconst mainnetSdk = new AgentSDK({\n  networks: mainnetConfig.networks,\n  defaultNetwork: 'mainnet',\n  signer: wallet,\n});\n\n// Contract addresses\nconsole.log(ERC8004_V2);          // Fuji addresses\nconsole.log(ERC8004_V2_MAINNET);  // Mainnet addresses\n```\n\n---\n\n## 📁 Examples\n\n### Basic Agent Registration\n\n```typescript\nimport { ERC8004Provider } from '@0xgasless/agent-sdk';\n\nconst provider = new ERC8004Provider(\n  'https://api.avax-test.network/ext/bc/C/rpc',\n  process.env.PRIVATE_KEY!,\n  'avax-fuji'\n);\n\n// Check registration status\nconst isRegistered = await provider.isRegistered();\n\nif (!isRegistered) {\n  const agentId = await provider.register('https://myagent.com/metadata.json');\n  console.log('Registered with ID:', agentId);\n}\n```\n\n### With Privy Wallet\n\n```typescript\nimport { usePrivy, useWallets } from '@privy-io/react-auth';\nimport { AgentSDK, fujiConfig } from '@0xgasless/agent-sdk';\n\nfunction AgentComponent() {\n  const { ready, authenticated } = usePrivy();\n  const { wallets } = useWallets();\n\n  const initSDK = async () => {\n    const wallet = wallets[0];\n    const provider = await wallet.getEthersProvider();\n    const signer = await provider.getSigner();\n\n    const sdk = new AgentSDK({\n      ...fujiConfig,\n      signer,\n    });\n\n    return sdk;\n  };\n}\n```\n\n### With MetaMask\n\n```typescript\nimport { BrowserProvider } from 'ethers';\nimport { AgentSDK, fujiConfig } from '@0xgasless/agent-sdk';\n\nasync function connectMetaMask() {\n  const provider = new BrowserProvider(window.ethereum);\n  await provider.send('eth_requestAccounts', []);\n  const signer = await provider.getSigner();\n\n  const sdk = new AgentSDK({\n    ...fujiConfig,\n    signer,\n  });\n\n  return sdk;\n}\n```\n\n---\n\n## 🔑 Wallet Support\n\nThis SDK is **completely wallet-agnostic**. Use any wallet:\n\n| Wallet | Status | Example |\n|--------|--------|---------|\n| ethers.js Wallet | ✅ Supported | `new Wallet(privateKey, provider)` |\n| Session Keys | ✅ Supported | `SessionKeyHelper.createWallet(...)` |\n| Privy | ✅ Supported | `wallet.getEthersProvider()` |\n| Dynamic.xyz | ✅ Supported | `primaryWallet.getWalletClient()` |\n| MetaMask | ✅ Supported | `BrowserProvider(window.ethereum)` |\n| Safe | ✅ Supported | `SafeWalletProvider` |\n\n---\n\n## 🛠️ Development\n\n### Building from Source\n\n```bash\ngit clone https://github.com/0xgasless/agent-sdk.git\ncd agent-sdk\n\nnpm install\nnpm run build\nnpm run build:cli\n```\n\n### Running Tests\n\n```bash\nnpm test\n```\n\n### Local CLI Development\n\n```bash\n# Build and link locally\nnpm run build:cli\nnode dist/cli/index.js --help\n```\n\n---\n\n## 📄 License\n\nMIT - see [LICENSE](./LICENSE)\n\n---\n\n## 🤝 Support\n\n- 📚 [Documentation](https://docs.0xgasless.com)\n- 🐛 [Issues](https://github.com/0xgasless/agent-sdk/issues)\n- 🐦 [Twitter](https://twitter.com/0xgasless)\n\n---\n\n<div align=\"center\">\n\n**Built with ❤️ by [0xGasless](https://0xgasless.com)**\n\n</div>\n","readmeFilename":"README.md"}