SkillHub

sui-agent-wallet

v1.0.3

为 AI 代理提供安全 Sui 钱包,支持账户管理、交易签名、网络切换,并通过 Chrome 扩展与 Sui DApp 交互。

Sourced from ClawHub, Authored by Eason Chen

Installation

Please help me install the skill `sui-agent-wallet` from SkillHub official store. npx skills add EasonC13/sui-agent-wallet

Sui Agent Wallet Skill

Give your AI agent its own Sui wallet to interact with DApps and sign transactions.

GitHub: https://github.com/EasonC13-agent/sui-skills/tree/main/sui-agent-wallet

Architecture

Chrome Extension ◄──WebSocket──► Local Server ◄──API──► Agent
     │                                │
     ▼                                ▼
  DApp Page                    Key Management
  (Wallet Standard)            (Seed Phrase)

Installation

cd <your-workspace>/skills/sui-agent-wallet

# Install server dependencies
cd server && bun install

# Start 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" -w

# Or open Keychain Access app
# Search for "sui-agent-wallet"

Agent API

Wallet Info

# Get current address
curl http://localhost:3847/address

# Get balance
curl http://localhost:3847/balance

# Get seed phrase (for backup)
curl http://localhost:3847/mnemonic

Account Management

# List all accounts
curl http://localhost:3847/accounts

# Create new account
curl -X POST http://localhost:3847/accounts

# Create 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/network

# Switch 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: - Official Faucet: https://faucet.testnet.sui.io/ - Discord: Join Sui Discord, post your wallet address in #testnet-faucet - CLI: sui client faucet --address <YOUR_ADDRESS>

Devnet: - Official Faucet: https://faucet.devnet.sui.io/ - Discord: Post your wallet address in #devnet-faucet - CLI: sui client faucet --address <YOUR_ADDRESS>

Note: Mainnet requires real SUI tokens and cannot use faucets.

Transaction Signing

# View pending transactions
curl http://localhost:3847/pending

# View transaction details
curl http://localhost:3847/tx/<request-id>

# Approve transaction
curl -X POST http://localhost:3847/approve/<request-id>

# Reject transaction
curl -X POST http://localhost:3847/reject/<request-id>

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-transaction - sui client call --serialize-unsigned-transaction - sui client transfer-sui --serialize-unsigned-transaction

Transaction 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: - [ ] Is the target contract trustworthy? - [ ] Is the amount reasonable? - [ ] Are there suspicious coin transfers? - [ ] Is the gas budget normal?

Test DApp

Built-in Counter DApp for testing:

# Start frontend
cd test-dapp/frontend && pnpm dev

# Open 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'
  • 784 = Sui's coin type
  • Each accountIndex corresponds to one address

Wallet Standard Features

Implemented Sui Wallet Standard features: - standard:connect - standard:disconnect - standard:events - sui:signTransaction - sui:signAndExecuteTransaction - sui:signPersonalMessage

Event Notifications

When switching accounts or networks, the server notifies the Extension via WebSocket: - accountChanged - Account changed - networkChanged - Network changed

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: https://github.com/EasonC13-agent/sui-skills