# ============================================== # AgentCore Wallet (Coinbase CDP) — Production # ============================================== # All three are required for real CDP signing (AgentKit CdpEvmWalletProvider). # Get these from https://portal.cdp.coinbase.com/ CDP_API_KEY_ID= CDP_API_KEY_SECRET= CDP_WALLET_SECRET= # Optional: pin an existing CDP EVM account (hex address). If unset, a new account is created. # CDP_WALLET_ADDRESS=0x... # ============================================== # Fallback: Raw Private Key — Testing Only # ============================================== # Used when CDP credentials are not set BUYER_PRIVATE_KEY=0x... # ============================================== # Ampersend Smart Account (optional, for AmpersendTreasurer) # ============================================== BUYER_SMART_ACCOUNT_ADDRESS=0x... BUYER_SESSION_KEY_PRIVATE_KEY=0x... AMPERSEND_API_URL=https://api.ampersend.ai # Optional: only for `pnpm buyer:mcp` — use Ampersend API treasurer (spend limits), not CDP NaiveTreasurer # AMPERSEND_SPEND_LIMIT_TREASURER=1 # ============================================== # Seller # ============================================== # Flow: User (BUYER_PRIVATE_KEY EOA or CDP) → Ampersend treasurer → MCP x402 → FastMCP # → BlockRun: must use ClawRouter-style EOA EIP-712 (see packages/seller/src/clawrouter.ts). Fund that EOA on Base mainnet. # Receives tool USDC (often your smart account). BlockRun uses a separate EOA key below — not the Ampersend smart-account ERC-1271 path. SELLER_WALLET_ADDRESS=0x... # Default EOA that pays BlockRun (must hold Base mainnet USDC). Optional override: # SELLER_BLOCKRUN_PRIVATE_KEY=0x... SELLER_PRIVATE_KEY=0x... # ============================================== # ClawRouter (LLM Service) # ============================================== # Direct API: use a concrete model id (e.g. claude-haiku-4.5). Routing profiles like blockrun/auto are for the local ClawRouter proxy only. CLAWROUTER_MODEL=claude-haiku-4.5 # ============================================== # Network # ============================================== # `base-sepolia` = testnet USDC (cheap testing). `base` = Base mainnet (real USDC). # For mainnet: set CHAIN_NETWORK=base and fund wallets on Base with real USDC (see README). CHAIN_NETWORK=base-sepolia # Mainnet example (uncomment after funding addresses — uses real funds): # CHAIN_NETWORK=base # ============================================== # MCP URLs (clients, dashboard, AgentCore) # ============================================== # Seller MCP (defaults in code if unset) # SELLER_URL=http://localhost:8000/mcp # MCP proxy for dashboard “proxy” pattern (`pnpm buyer:proxy`, default port PROXY_PORT) # PROXY_URL=http://localhost:8402/mcp # ============================================== # Ports # ============================================== SELLER_PORT=8000 PROXY_PORT=8402