Sui Agent Wallet
by @easonc13
Provide an AI agent with a secure Sui wallet to manage accounts, sign transactions, switch networks, and interact with Sui DApps via a Chrome extension and l...
clawhub install sui-agent-walletπ About This Skill
Sui Agent Wallet Skill
Give your AI agent its own Sui wallet to interact with DApps and sign transactions.
GitHub:
Architecture
Chrome Extension βββWebSocketβββΊ Local Server βββAPIβββΊ Agent
β β
βΌ βΌ
DApp Page Key Management
(Wallet Standard) (Seed Phrase)
Installation
cd /skills/sui-agent-walletInstall server dependencies
cd server && bun installStart the server
bun run index.ts
Load Chrome Extension:
1. Open chrome://extensions/
2. Enable "Developer mode"
3. Click "Load unpacked"
4. Select the extension/ folder
First Launch
The server automatically generates a 12-word seed phrase and stores it in macOS Keychain:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π NEW WALLET CREATED
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Seed phrase stored securely in macOS Keychain.
To view your seed phrase for backup:
curl http://localhost:3847/mnemonic
Or use macOS Keychain Access app:
Service: sui-agent-wallet
Account: mnemonic
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Secure Storage
| Location | Contents |
|----------|----------|
| macOS Keychain | Seed phrase (encrypted) |
| ~/.sui-agent-wallet/wallet.json | Account addresses, network settings (no sensitive data) |
View Keychain entry:
# Command line
security find-generic-password -s "sui-agent-wallet" -a "mnemonic" -wOr open Keychain Access app
Search for "sui-agent-wallet"
Agent API
Wallet Info
# Get current address
curl http://localhost:3847/addressGet balance
curl http://localhost:3847/balanceGet seed phrase (for backup)
curl http://localhost:3847/mnemonic
Account Management
# List all accounts
curl http://localhost:3847/accountsCreate new account
curl -X POST http://localhost:3847/accountsCreate account at specific index
curl -X POST http://localhost:3847/accounts \
-H "Content-Type: application/json" \
-d '{"index": 2}'Switch account
curl -X POST http://localhost:3847/accounts/switch \
-H "Content-Type: application/json" \
-d '{"index": 1}'
Network Management
# Get current network
curl http://localhost:3847/networkSwitch network (mainnet | testnet | devnet | localnet)
curl -X POST http://localhost:3847/network \
-H "Content-Type: application/json" \
-d '{"network": "testnet"}'
Get Test Coins (Faucet)
Testnet:
#testnet-faucetsui client faucet --address Devnet:
#devnet-faucetsui client faucet --address Note: Mainnet requires real SUI tokens and cannot use faucets.
Transaction Signing
# View pending transactions
curl http://localhost:3847/pendingView transaction details
curl http://localhost:3847/tx/Approve transaction
curl -X POST http://localhost:3847/approve/Reject transaction
curl -X POST http://localhost:3847/reject/
Import/Export
# Import seed phrase (WARNING: overwrites existing wallet!)
curl -X POST http://localhost:3847/import \
-H "Content-Type: application/json" \
-d '{"mnemonic": "your twelve word seed phrase here ..."}'
CLI Integration (Direct Signing)
Sign unsigned transactions generated by Sui CLI:
# 1. Generate unsigned transaction (using Agent Wallet address)
AGENT_ADDR=$(curl -s localhost:3847/address | jq -r .address)
TX_BYTES=$(sui client publish --serialize-unsigned-transaction \
--sender $AGENT_ADDR --gas-budget 100000000 | tail -1)2. Sign and execute with Agent Wallet
curl -X POST http://localhost:3847/sign-and-execute \
-H "Content-Type: application/json" \
-d "{\"txBytes\": \"$TX_BYTES\"}"Or sign only without executing
curl -X POST http://localhost:3847/sign-raw \
-H "Content-Type: application/json" \
-d "{\"txBytes\": \"$TX_BYTES\"}"
Supported CLI commands:
sui client publish --serialize-unsigned-transactionsui client call --serialize-unsigned-transactionsui client transfer-sui --serialize-unsigned-transactionTransaction Parsing
When a signing request comes in, the agent sees:
{
"id": "req_123",
"method": "signTransaction",
"origin": "http://localhost:5173",
"payload": {
"transaction": "{\"commands\":[{\"MoveCall\":{...}}]}",
"chain": "sui:devnet"
}
}
Security Checklist
Before signing, verify:
Test DApp
Built-in Counter DApp for testing:
# Start frontend
cd test-dapp/frontend && pnpm devOpen http://localhost:5173
1. Connect Wallet β Select "Sui Agent Wallet"
2. Click "+1" β Sends a signing request
3. Agent uses /pending to view, /approve to sign
Technical Details
BIP44 Derivation Path
m/44'/784'/{accountIndex}'/0'/0'
Wallet Standard Features
Implemented Sui Wallet Standard features:
standard:connectstandard:disconnectstandard:eventssui:signTransactionsui:signAndExecuteTransactionsui:signPersonalMessageEvent Notifications
When switching accounts or networks, the server notifies the Extension via WebSocket:
accountChanged - Account changednetworkChanged - Network changedRelated Skills
This skill is part of the Sui development skill suite:
| Skill | Description | |-------|-------------| | sui-decompile | Fetch and read on-chain contract source code | | sui-move | Write and deploy Move smart contracts | | sui-coverage | Analyze test coverage with security analysis | | sui-agent-wallet | Build and test DApps frontend |
Workflow:
sui-decompile β sui-move β sui-coverage β sui-agent-wallet
Study Write Test & Audit Build DApps
All skills: