AAWP
AI Agent Wallet Protocol
The only crypto wallet protocol built exclusively for AI Agents.
Not for humans. The AI Agent is the signer — by protocol, by design, forever.
aawp.ai · Contracts · BUSL-1.1
What is AAWP?
AAWP is the first crypto wallet protocol where only AI Agents can be the signer — not humans, not companies, not the protocol itself. This is enforced at the contract level, not a policy.
The AI Agent generates its own key pair. The signer is locked in at wallet creation and is immutable forever. The signing core is a native Rust addon (aawp-core.node) with hardware-bound key derivation. A human guardian can freeze or recover the wallet at any time, but can never produce signatures or move funds unilaterally.
Every AAWP wallet receives a Soulbound Identity NFT at creation — permanent on-chain proof that the address is AI Agent-controlled and cannot be transferred to a human:
identity.isOfficialWallet(addr) → bool
Design principles
| Principle | Detail |
|---|---|
| AI Agent-exclusive signing | Only AI Agents can be the signer — enforced by the contract, not policy |
| No human path | Humans cannot own, transfer, or become the signer of an AAWP wallet |
| Hardware-bound seed | Non-extractable via a 4-shard + 2 hardware-anchor derivation scheme |
| Guardian oversight | Humans can freeze and recover, but never sign or take ownership |
| Front-run resistant | Commit-reveal wallet creation prevents address squatting |
| Same address everywhere | CREATE2 vanity deployment — identical addresses on all 6 chains |
| Zero protocol fee | No fees at the protocol layer |
Install
AAWP ships as an Agent Skills compatible skill — works with OpenClaw, Cursor, Claude Code, Gemini CLI, OpenCode, Goose, and any client that supports the standard.
# Universal — auto-detects your AI client
curl -fsSL https://aawp.ai/install.sh | sh
# npm / npx
npx aawp-ai
# OpenClaw (full 24/7 daemon + persistent cron + push alerts)
clawhub install aawp
OpenClaw is the only client with a persistent background daemon, enabling autonomous DCA strategies, price alerts, and scheduled transactions without a live session.
Quick start
# 1. Provision (generates signing key, sets up daemon)
bash scripts/provision.sh
# 2. Create your agent's wallet on Base
node scripts/wallet-manager.js --chain base create
# 3. Check status
node scripts/wallet-manager.js --chain base status
Usage
Wallet
node scripts/wallet-manager.js --chain base balance # Native + token balances
node scripts/wallet-manager.js portfolio # All chains at once
node scripts/wallet-manager.js --chain base send <to> <amt> # Send ETH
node scripts/wallet-manager.js --chain base send-token USDC <to> <amt>
Swap & Bridge
node scripts/wallet-manager.js --chain base quote ETH USDC 0.01 # Preview (no gas)
node scripts/wallet-manager.js --chain base swap ETH USDC 0.01 # Execute
node scripts/wallet-manager.js bridge base arb ETH ETH 0.05 # Cross-chain
Contract calls
# Write
node scripts/wallet-manager.js --chain base call \
0xTarget "transfer(address,uint256)" 0xTo 1000000
# Read (free)
node scripts/wallet-manager.js --chain base read \
0xTarget "balanceOf(address) returns (uint256)" 0xWallet
# Atomic batch
node scripts/wallet-manager.js --chain base batch ./calls.json
DCA automation (OpenClaw only)
node scripts/dca.js add \
--chain base --from ETH --to USDC --amount 0.01 \
--cron "0 9 * * *" --name "Daily ETH→USDC"
node scripts/dca.js list
node scripts/dca.js remove <id>
Price alerts (OpenClaw only)
# Notify only
node scripts/price-alert.js add --chain base --from ETH --to USDC --above 2600 --notify
# Auto-swap on trigger
node scripts/price-alert.js add --chain base --from ETH --to USDC --below 2200 --auto-swap 0.01
Token launch (Clanker V4)
Deploy a token where your AAWP wallet is the on-chain deployer, token admin, and LP fee recipient — across 6 chains.
# 1. Edit CONFIG at the top of the script (name, symbol, image, chain, vault…)
# 2. Preview without broadcasting
node scripts/deploy-clanker.js --dry-run
# 3. Deploy
node scripts/deploy-clanker.js
Supported chains: Base · Ethereum · Arbitrum · Unichain · Berachain · BSC
Key options:
initialMarketCap— starting FDV in ETH (min ~10 ETH ≈ $25K)devBuyEth— ETH to spend buying at launchvault.enabled— lock % of supply with cliff + linear vestingfeeConfig—StaticBasic(1%) |DynamicBasic|Dynamic3
All LP fees flow back to the AAWP wallet automatically.
Yield / DeFi
Earn yield via Aave V3 (Base, Ethereum, Arbitrum, Optimism, Polygon) and Venus Protocol (BSC).
node scripts/yield.js --chain base rates # Browse supply/borrow APYs
node scripts/yield.js --chain base supply USDC 100 # Supply 100 USDC
node scripts/yield.js --chain base withdraw USDC 50 # Withdraw 50 USDC
node scripts/yield.js --chain base borrow USDC 200 # Borrow against collateral
node scripts/yield.js --chain base repay USDC 200 # Repay debt (max to clear)
node scripts/yield.js --chain base positions # View all open positions
NFT Operations
Manage ERC-721 and ERC-1155 tokens across all 6 chains.
node scripts/nft.js --chain base balance # List all NFTs owned
node scripts/nft.js --chain base info <contract> <tokenId> # Token metadata + owner
node scripts/nft.js --chain base transfer <contract> <tokenId> <to>
node scripts/nft.js --chain base approve <contract> <tokenId> <operator>
node scripts/nft.js --chain base mint <contract> [tokenId] # ERC-1155 mint
node scripts/nft.js --chain base floor <contract> # Floor price (OpenSea/BscScan)
Limit Orders
Place on-chain limit orders via CoW Protocol (Base, Ethereum, Arbitrum, Optimism, Polygon) and 1inch Limit Order v4 (BSC).
node scripts/limit-order.js --chain base place ETH USDC 0.1 3000 # Sell 0.1 ETH at $3000
node scripts/limit-order.js --chain base list # Open orders
node scripts/limit-order.js --chain base cancel <orderUid> # Cancel
node scripts/limit-order.js --chain base status <orderUid> # Check fill status
Cross-chain Portfolio
Parallel snapshot of all balances across all 6 chains with USD pricing.
node scripts/portfolio.js # Full portfolio — all chains
node scripts/portfolio.js --chain base # Single chain breakdown
Output: native + ERC-20 balances, USD value per asset, total net worth.
Backup & restore
node scripts/wallet-manager.js backup ./aawp-backup.tar.gz
node scripts/wallet-manager.js restore ./aawp-backup.tar.gz
The backup includes 6 critical files:
seed.enc,aawp-core.node, hardware-binding anchors, and the Guardian key. All 6 are required to restore access. Keep it offline and encrypted.
Architecture
┌──────────────────────────────────────────────────┐
│ AI Agent (any Agent Skills client) │
│ │
│ wallet-manager.js / dca.js / price-alert.js │
│ │ │
│ ▼ │
│ Signing Daemon (Unix socket) │
│ ┌─────────────────────────┐ │
│ │ aawp-core.node (Rust) │ ← hardware-bound │
│ │ seed derivation │ key derivation │
│ │ ECDSA signing │ │
│ └──────────┬──────────────┘ │
│ │ signed tx │
└─────────────┼──────────────────────────────────-─┘
│
Guardian (gas relay) ──► EVM Chain
│
┌───────────▼──────────┐
│ Smart Contract │
│ Wallet (holds assets)│
│ + Soulbound NFT │
└──────────────────────┘
Key separation: Guardian pays gas → AI Agent signs → Wallet holds assets. Humans never touch the signing key.
On-chain interface
// Check if an address is an AAWP AI wallet
identity.isOfficialWallet(address) → bool
// Predict wallet address before deployment
factory.computeAddress(aiSigner, binaryHash, guardian) → address
// Agent operations (EIP-712 signed by agent)
wallet.execute(to, value, data, deadline, sig) → bytes
// Guardian operations (human safety controls)
wallet.freeze()
wallet.unfreeze()
wallet.emergencyWithdraw(token, to, amount)
Contract addresses
Same address on every chain via CREATE2 vanity deployment:
| Contract | Address |
|---|---|
| Factory | 0xAAAA3Df87F112c743BbC57c4de1700C72eB7aaAA |
| Identity | 0xAAAafBf6F88367C75A9B701fFb4684Df6bCA1D1d |
Verified on: BaseScan · Etherscan · Arbiscan · Optimistic Etherscan · BscScan · PolygonScan
License
Business Source License 1.1 — free for personal and non-commercial use; commercial use requires a license after the change date.
