shll-skills
v6.0.5
Published
SHLL DeFi Agent - CLI + MCP Server for BSC
Readme
SHLL Skills — AI Agent DeFi Toolkit on BSC
A CLI + MCP Server toolkit that gives any AI agent the ability to execute DeFi operations on BSC Mainnet securely. Supports PancakeSwap V2/V3 swaps, Venus lending, Four.meme bonding curve trades, setup flows, and raw calldata execution through PolicyGuard.
Version 6.0.0 finalizes the modular layout:
shared/*for constants, clients, schemas, errors, ABIs, and cross-cutting helpersservices/*for single-source business logiccommands/*andtools/*as thin CLI/MCP adapters
Install
npm install -g shll-skillsThis installs two binaries:
shll-run— CLI mode (for OpenClaw, shell scripts, etc.)shll-mcp— MCP Server mode (for Claude, Cursor, Gemini, etc.)
🔌 MCP Server Setup (Recommended for AI Agents)
The Model Context Protocol lets AI agents discover and call SHLL tools natively — no CLI parsing needed.
Security: RUNNER_PRIVATE_KEY must be a dedicated operator hot wallet with minimal BNB (~) for gas only. Generate one with shll-run generate-wallet. Never use your main wallet or any wallet holding significant funds. Even if this key is compromised, on-chain PolicyGuard limits the operator to policy-approved trades only it cannot withdraw vault funds or transfer the Agent NFT.
Claude Desktop
Edit ~/AppData/Roaming/Claude/claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"shll-defi": {
"command": "shll-mcp",
"env": {
"RUNNER_PRIVATE_KEY": "0x_YOUR_OPERATOR_PRIVATE_KEY"
}
}
}
}Restart Claude Desktop. You'll see SHLL tools appear in the 🔧 menu.
Cursor
Create .cursor/mcp.json in your project root:
{
"mcpServers": {
"shll-defi": {
"command": "npx",
"args": ["-y", "shll-skills", "--mcp"],
"env": {
"RUNNER_PRIVATE_KEY": "0x_YOUR_OPERATOR_PRIVATE_KEY"
}
}
}
}Custom Agent (programmatic)
RUNNER_PRIVATE_KEY=0x... shll-mcpThe server communicates via stdio using JSON-RPC 2.0. Send tools/list to discover all available tools.
Available MCP Tools (24 total)
| Tool | Type | Description |
|------|------|-------------|
| portfolio | Read | Vault holdings + token balances |
| balance | Read | BNB or token balance of the agent vault |
| price | Read | Real-time token price (DexScreener) |
| search | Read | Search token by name/symbol on BSC |
| tokens | Read | List known token symbols + addresses |
| policies | Read | View active on-chain policies + config |
| status | Read | One-shot readiness overview with blockers, warnings, and next actions |
| history | Read | Recent transactions + policy rejections |
| token_restriction | Read | View token whitelist restriction status + whitelisted tokens |
| listings | Read | Available agent templates for subscription |
| four_info | Read | Query Four.meme bonding curve token info |
| swap | Write | PancakeSwap V2/V3 auto-routing swap |
| wrap | Write | BNB → WBNB in vault |
| unwrap | Write | WBNB → BNB in vault |
| lend | Write | Supply tokens to Venus for yield |
| redeem | Write | Withdraw from Venus |
| transfer | Write | Send BNB or ERC20 from vault |
| four_buy | Write | Buy a Four.meme bonding-curve token |
| four_sell | Write | Sell a Four.meme bonding-curve token |
| config | Write | Configure risk parameters (spending limits, cooldown) |
| setup_guide | Info | Generate dual-wallet onboarding URL + steps |
| generate_wallet | Info | Create new operator wallet (not the owner, mint, or vault wallet) |
| execute_calldata | Write | Execute raw calldata from any source through PolicyGuard |
| execute_calldata_batch | Write | Execute multiple calldata actions atomically through PolicyGuard |
📟 CLI Mode
For OpenClaw, shell scripts, or manual use.
Quick Start
# 1. Generate an operator wallet (AI-only hot wallet)
shll-run generate-wallet
export RUNNER_PRIVATE_KEY="0x..."
# 2. Get setup link (user completes on shll.run with their OWNER wallet)
shll-run setup-guide -l 0xABC...DEF -d 30
# 3. After the user sends back token-id, verify readiness
shll-run status -k 5
shll-run portfolio -k 5
# 4. Trade
shll-run swap -f BNB -t USDC -a 0.1 -k 5In OpenClaw, AI should set RUNNER_PRIVATE_KEY for the current session automatically. Do not ask the user to edit environment variables manually during chat onboarding.
Commands
Trading
shll-run swap -f <FROM> -t <TO> -a <AMT> -k <ID> # Auto V2/V3 routing
shll-run swap -f BNB -t USDT -a 0.1 -k 5 -v v3 -s 2 # Use V3 with 2% slippage
shll-run wrap -a <BNB> -k <ID> # BNB -> WBNB
shll-run unwrap -a <BNB> -k <ID> # WBNB -> BNB
shll-run transfer --token <SYM> -a <AMT> --to <ADDR> -k <ID>
shll-run four_buy --token <ADDR> -a <BNB> -k <ID> # Buy on Four.meme bonding curve
shll-run four_sell --token <ADDR> -a <TOKEN_AMT> -k <ID> # Sell on Four.meme bonding curveLending (Venus Protocol)
shll-run lend -t USDT -a 100 -k <ID> # Supply to Venus
shll-run redeem -t USDT -a 50 -k <ID> # Withdraw from VenusMarket Data (read-only)
shll-run portfolio -k <ID> # Vault holdings + USD values
shll-run price --token <SYM> # Real-time price (DexScreener)
shll-run search --query <TEXT> # Find token by name
shll-run tokens # List known tokens
shll-run four_info --token <ADDR> # Four.meme token statusRisk Management
shll-run policies -k <ID> # View active on-chain policies
shll-run status -k <ID> # Readiness, blockers, warnings, next actions
shll-run config -k <ID> --tx-limit <BNB> --daily-limit <BNB> --cooldown <SEC>How It Works
AI Agent -> CLI/MCP -> PolicyClient.validate() -> PolicyGuard (on-chain) -> vault- AI constructs a tool call (MCP) or CLI command
PolicyClient.validate()simulates against all on-chain policies- If approved,
AgentNFA.execute()routes through PolicyGuard → vault - PolicyGuard enforces: spending limits, cooldowns, recipient checks, and protocol rules
Security: Dual-Wallet Architecture
| | Owner Wallet | Operator Wallet (RUNNER_PRIVATE_KEY) | |---|---|---| | Who holds it | User (MetaMask/hardware) | AI agent | | Use it for | Subscribe or mint the agent, hold the Agent NFT, authorize operator | Pay gas and execute policy-limited actions | | Can trade | — | ✅ Within PolicyGuard limits | | Can withdraw vault | ✅ | ❌ | | Can transfer NFT | ✅ | ❌ | | Risk if leaked | 🚨 Full vault access | ⚠️ Limited to policy-allowed trades |
Do not use the operator wallet to mint or subscribe to the agent. Do not hold the Agent NFT in the operator wallet. Keep only a small BNB balance there for gas.
After setup, run status first. It returns a machine-friendly readiness object with:
readiness.readyreadiness.blockersreadiness.warningsreadiness.nextActions
This is the intended handoff for AI onboarding flows before any trading command.
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| RUNNER_PRIVATE_KEY | Yes for write ops and agent-linked reads | Operator wallet key (~$1 BNB for gas) |
| SHLL_RPC | No | BSC RPC URL override. Recommended: use a private RPC (e.g. QuickNode, Alchemy, GetBlock) for better reliability and speed |
Note: Contract addresses (AgentNFA, PolicyGuard) are hardcoded for security reasons. Override env vars are intentionally not supported to prevent supply-chain attacks.
Links
- Website: shll.run
- Twitter: @shllrun
- npm: shll-skills
- GitHub: kledx/shll-skills
🧩 Multi-Skill Compatibility
SHLL can coexist with other DeFi skills (OKX DEX API, Bitget Wallet, etc.). Key architectural differences:
| | SHLL | OKX DEX API | Bitget Wallet | |---|---|---|---| | Wallet | Smart contract vault (AgentNFA) | User EOA | Bitget custody | | Execution | On-chain via PolicyGuard | Calldata only (user signs) | HMAC API | | Safety | On-chain policy enforcement | User approval | API key perms | | AI autonomy | Execute within policy limits | Cannot execute | Full API access | | Risk if key leaked | Policy-limited trades only | N/A | Full API access |
SHLL is the only skill with on-chain policy enforcement. Even if the AI hallucinates, the smart contract rejects unsafe operations.
License
MIT
