🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

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...

Versionv1.0.3
Downloads1,248
TERMINAL
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-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:
  • Discord: Join Sui Discord, post your wallet address in #testnet-faucet
  • CLI: sui client faucet --address
  • Devnet:

  • Official Faucet:
  • Discord: Post your wallet address in #devnet-faucet
  • CLI: sui client faucet --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/

    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-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
  • Related 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: