Kite Agent Smart Wallet Permissionless Protocol
by @nihaovand
Create and manage modular, permissioned smart wallets for AI agents with session keys and spending limits on the Kite AI network.
clawhub install kite-agent-smart-wallet-permissionless-protocolπ About This Skill
Kite AI Agent Smart Wallet Permissionless Protocol
> Version: 1.0.0 > Build on Kite AI Testnet > Smart wallet protocol for AI agents with modular architecture
Overview
Kite AI Agent Wallet Protocol enables AI agents to create and manage smart wallets on Kite AI network. Inspired by Biconomy Nexus design, this protocol provides extensible, secure wallet infrastructure for autonomous AI agents.
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AgentSmartWalletFactory β
β (Wallet Factory - Batch Creation) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AgentSmartWallet β
β - owner: Human user (root authority) β
β - agent: AI agent (delegated authority) β
β - sessionKeys: Temporary keys (automation) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββ΄ββββββββββββ
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
βSpendingLimit β βSessionKey β
βModule β βModule β
βββββββββββββββββββ βββββββββββββββββββ
Core Features
Security Features
1. Layered Permissions: Owner > Agent > Session Key 2. Limit Protection: Transactions cannot exceed set limits 3. Revocable: Owner can revoke session keys anytime 4. Module Isolation: Functional modules can be replaced
Deployed Contracts (Testnet)
| Contract | Address |
|----------|---------|
| ModuleRegistry | 0xfdf654b7dDbdFf0C7ec9017Aece166a75a5197B5 |
| SpendingLimitModule | 0x00E593eA476DfC0b22d9DF0A8fe436e5323Ae05F |
| SessionKeyModule | 0x5b6C45EC7C9d7C688413d6bB2CC3B0A35f5B79B8 |
| AgentSmartWalletFactory | 0x0fa9F878B038DE435b1EFaDA3eed1859a6Dc098a |
Network Configuration
Testnet (Ozone)
Mainnet
Usage
1. Create Wallet
const factory = await ethers.getContractFactory("AgentSmartWalletFactory");
const wallet = await factory.createWallet(agentAddress, ethers.utils.parseEther("1"));
2. Add Session Key
const wallet = await ethers.getContractAt("AgentSmartWallet", walletAddress);
await wallet.addSessionKey(
sessionKeyAddress, // Agent's session key
ethers.utils.parseEther("0.1"), // Limit
[bytes4("0x...")] // Allowed function selectors
);
3. Agent Executes Transaction
// Agent uses session key to execute
await wallet.executeWithSessionKey(
encodedData, // (target, value, callData)
signature // Owner signature
);
Expandability
Protocol supports:
References
Version History
π‘ Examples
1. Create Wallet
const factory = await ethers.getContractFactory("AgentSmartWalletFactory");
const wallet = await factory.createWallet(agentAddress, ethers.utils.parseEther("1"));
2. Add Session Key
const wallet = await ethers.getContractAt("AgentSmartWallet", walletAddress);
await wallet.addSessionKey(
sessionKeyAddress, // Agent's session key
ethers.utils.parseEther("0.1"), // Limit
[bytes4("0x...")] // Allowed function selectors
);
3. Agent Executes Transaction
// Agent uses session key to execute
await wallet.executeWithSessionKey(
encodedData, // (target, value, callData)
signature // Owner signature
);