Skip to main content

Prerequisites

ToolVersion
Node.js18+
pnpm10+
OpenClaw CLIlatest
You’ll also need accounts for:
  • Privy — embedded wallet + Google OAuth
  • Pimlico — gasless bundler API key
  • Telegram bot token — for review notifications
  • Zerion — portfolio data (optional)

Install

This is a pnpm workspace. Run from the root:
pnpm install

Configure Environment

Create client/.env.local:
NEXT_PUBLIC_PRIVY_APP_ID=your_privy_app_id
NEXT_PUBLIC_PIMLICO_API_KEY=your_pimlico_api_key
NEXT_PUBLIC_AGENT_ADDRESS=0xYourAgentAddress
NEXT_PUBLIC_BACKEND_URL=http://localhost:3001
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_project_id
See scripts/.env.example and server/.env.example for full templates.

Run Locally

1

Start the server

pnpm dev:server
# → http://localhost:3001
2

Start the client

pnpm dev:client
# → http://localhost:3000
3

Set up the OpenClaw agent

# Symlink the skills into OpenClaw's workspace
mkdir -p ~/.openclaw/workspace/skills
ln -sf "$(pwd)/agent" ~/.openclaw/workspace/skills/zhentan

# Restart the gateway
openclaw gateway restart

# Verify detection
openclaw skills check

Verify It Works

  1. Visit http://localhost:3000
  2. Sign in with Google → embedded wallet is created
  3. A Safe smart account is deployed on BNB Chain
  4. Navigate to Send → enter a recipient and amount
  5. Confirm → transaction is queued
  6. Check server logs for the risk score and verdict
  7. APPROVE: tx executes automatically, txHash appears in the UI
  8. REVIEW: check Telegram for the interactive approve/reject message

Troubleshooting

Check server logs for Pimlico API errors. Verify AGENT_PRIVATE_KEY is correctly set in server/.env.
Verify TELEGRAM_BOT_TOKEN is set in server/.env and the bot has been started in your Telegram chat.
Confirm BNB Chain RPC is reachable and your Pimlico API key has BSC network access enabled.
ZERION_API_KEY may be missing from server/.env. Portfolio data requires a valid Zerion API key.