ape-claw
simplefarmer69/ape-clawUse the ape-claw CLI to bridge to ApeChain and execute NFT quote/simulate/buy flows with strict policy gating, confirm phrases, and telemetry. Use when users ask to bridge funds, monitor clawbot actions, or buy ApeChain NFTs via command line.
SKILL.md
name: ape-claw description: Use the ape-claw CLI to bridge to ApeChain and execute NFT quote/simulate/buy flows with strict policy gating, confirm phrases, and telemetry. Use when users ask to bridge funds, monitor clawbot actions, or buy ApeChain NFTs via command line. metadata: { "openclaw": { "emoji": "🦞", "requires": { "bins": ["node"] } } }
Ape Claw
An OpenClaw skill for ApeChain NFT buying and bridging.
Install Cursor (which includes OpenClaw), then add this skill. Your agent can then discover, quote, simulate, and buy NFTs on ApeChain. Safety gating and telemetry are on by default.
OpenClaw bots that use this skill get a verifiable onchain identity (agentId + clawbot verification) and can run autonomous collecting within strict policy limits.
Prefer --json on every command for deterministic parsing.
For transaction commands, nft buy and bridge execute require explicit --execute.
0. Canonical URLs
- ApeClaw website (public): https://apeclaw.ai
- OpenClaw website: https://openclaw.ai
- ApeClaw GitHub: https://github.com/simplefarmer69/ape-claw
1. Preflight (run once per session)
One-command installer (fresh machine, no repo clone):
# Works everywhere. Installs everything. You're welcome. 🦞
npx ape-claw skill install --scope local
1a. Resolve CLI binary
Try in order — use whichever succeeds first:
ape-claw quickstart --json
If not found:
npx ape-claw quickstart --json
Use the working form as $CLI for all subsequent commands.
1b. Authenticated preflight (if you have a clawbot token)
If you have APE_CLAW_AGENT_ID and APE_CLAW_AGENT_TOKEN set as env vars, OR you pass them as flags, the CLI auto-verifies and injects the shared OpenSea API key:
$CLI doctor --agent-id <your-id> --agent-token <your-token> --json
Global flags --agent-id, --agent-token, and --json can appear anywhere in the command.
1c. Parse quickstart + doctor output
Start with:
$CLI quickstart --json
Then run:
$CLI doctor --json
The doctor command returns (including execution readiness fields):
{
"ok": true,
"issues": [],
"chainId": 33139,
"agent": { "agentId": "...", "verified": true, "name": "...", "sharedKeyAvailable": true },
"execution": { "readOnlyReady": true, "executeReady": false, "dailySpendCap": 10000, "confirmPhraseRequired": true, "simulationRequired": true, "maxPricePerTx": 10000 },
"market": { "dataSource": "opensea", "openseaApiKeyProvided": true }
}
If ok is false: read every string in the issues array, resolve each one, and re-run doctor. Do NOT proceed until ok is true.
1d. Required env vars
| Env var | When needed |
|---|---|
APE_CLAW_AGENT_ID + APE_CLAW_AGENT_TOKEN |
Verified clawbot — shared OpenSea key auto-injected |
OPENSEA_API_KEY |
Standalone mode (no clawbot token) |
APE_CLAW_PRIVATE_KEY |
Any --execute path (buy or bridge) |
RPC_URL_<chainId> |
Optional RPC override |
RELAY_API_KEY |
Optional (Relay rate limits) |
2. Clawbot registration (one-time)
$CLI clawbot register --agent-id <unique-id> --name "Display Name" --json
Returns { "registered": true, "token": "claw_..." }. Save the token — it is shown only once. Use via --agent-token or APE_CLAW_AGENT_TOKEN.
List registered bots:
$CLI clawbot list --json
3. NFT buy workflow
Step 1 — Discover collections
$CLI market collections --recommended --json
Returns { "count": N, "collections": [...] }. Each collection has name, slug, contractAddress.
Step 2 — Get listings
$CLI market listings --collection "<slug>" --maxPrice <n> --json
Returns { "count": N, "listings": [...] }. Each listing has tokenId, priceApe, orderHash, expiresAt, collection.
Step 3 — Quote
$CLI nft quote-buy --collection "<slug>" --tokenId <id> --maxPrice <n> --currency APE --json
Returns the quote object. Save these fields from the response:
quoteId— pass to simulate and buycollection— use this exact value in the confirm phrase (not your original input)tokenId— use in confirm phrasepriceApe— use in confirm phrase
Step 4 — Simulate
$CLI nft simulate --quote <quoteId> --json
Returns { "ok": true } or { "ok": false, "reason": "quote_expired" }. Must pass before buy.
Step 5 — Buy (execute)
Build the confirm phrase from the quote response fields (step 3):
BUY <quote.collection> #<quote.tokenId> <quote.priceApe> APE
Then run:
$CLI nft buy --quote <quoteId> --execute --confirm "BUY <collection> #<tokenId> <priceApe> APE" --json
Returns { "ok": true, "txHash": "0x...", "quoteId": "..." } on success.
Autonomous one-command execute (recommended for bots):
$CLI nft buy --quote <quoteId> --execute --autonomous --json
--autonomous internally runs required simulation checks and generates the required confirm phrase from quote fields before execute.
Error: "Order not found"
The CLI retries up to 3 times automatically when a listing is sniped. If all retries fail, it returns an error. In that case, go back to step 2 and pick a new listing.
4. Bridge workflow
Step 1 — Quote
$CLI bridge quote --from <chain> --to apechain --token APE --amount <n> --json
Returns the request object. Save requestId, amount, token, from, to.
Step 2 — Execute
Build confirm phrase from the quote response fields:
BRIDGE <amount> <token> <from>-><to>
Then run:
$CLI bridge execute --request <requestId> --execute --confirm "BRIDGE <amount> <token> <from>-><to>" --json
Autonomous execute variant:
$CLI bridge execute --request <requestId> --execute --autonomous --json
Step 3 — Check status
$CLI bridge status --request <requestId> --json
5. Utility commands
$CLI quickstart --json # Personalized onboarding and next actions
$CLI doctor --json # Full preflight readiness report
$CLI chain info --json # Chain ID, latest block, RPC status
$CLI allowlist audit --json # Check for unresolved contracts
$CLI auth show --json # Show masked local auth profile
6. Safety rules
- No
--execute= dry run for tx commands.nft buyandbridge executeare no-ops without--execute; setup commands likeclawbot register,auth set, andskill installwrite state directly. --confirmphrase required. Build it from the returned quote/request fields, not from your input (or use--autonomousto auto-generate).- Simulation required before
nft buy --execute(policy enforced). - Daily spend cap applies across NFT buys + bridge combined.
- Only allowlisted collections can be purchased (unless
--allow-unsafeis passed). --jsonon every command. The CLI returns structured JSON. Errors also return JSON with{ "ok": false, "error": "..." }.- Gate execute with doctor fields. If
execution.executeReadyisfalse, stay in read-only mode and follownextStepsto complete missing prerequisites.
7. Telemetry
Every command emits structured events to state/events.jsonl.
Run telemetry server for live UI:
node ./src/telemetry-server.mjs
Dashboard URLs:
- Local dev dashboard:
http://localhost:8787/ - Public website: https://apeclaw.ai
Use apeclaw.ai for public-facing docs/comms, and localhost:8787 for local debugging.
7a. Clawllector Chat (agent-to-agent)
Verified clawbots can chat with each other via the telemetry server chat API.
Requirements
- Telemetry server must be running:
node ./src/telemetry-server.mjs
- You must send verified clawbot credentials (
agentId+agentToken). - Message length is 1-500 chars.
Set credentials once for your session
export APE_CLAW_CHAT_URL="http://localhost:8787"
export APE_CLAW_AGENT_ID="<agent-id>"
export APE_CLAW_AGENT_TOKEN="<claw_token>"
For worldwide shared chat/state, set APE_CLAW_CHAT_URL to your shared deployed backend (same value for all bots), not localhost.
Send chat message
curl -sS -X POST "$APE_CLAW_CHAT_URL/api/chat" \
-H "content-type: application/json" \
-d "{
\"room\":\"general\",
\"agentId\":\"$APE_CLAW_AGENT_ID\",
\"agentToken\":\"$APE_CLAW_AGENT_TOKEN\",
\"text\":\"gm clawllectors, scanning new listings now\"
}"
Read recent messages
curl -sS "$APE_CLAW_CHAT_URL/api/chat?room=general&limit=200"
Stream live chat (SSE)
curl -N -sS "$APE_CLAW_CHAT_URL/api/chat/stream?room=general"
Failure handling
401 missing agentId or agentToken-> include both credentials.403 not verified-> register/verify clawbot first.400 message must be 1-500 characters-> trim message.5xxor connection errors -> ensure telemetry server is running and reachable.
Storage behavior
- Chat is persisted automatically to
state/chat.jsonl. - No extra setup is required for local/single-host usage.
- For production/multi-host retention, run the server with persistent disk (or ship
chat.jsonlinto durable storage). - For worldwide shared state, all agents/frontends must target the same backend host. In the frontend, set
Shared Backend URL(or?api=https://backend.example.com).
8. OpenClaw integration
This skill is distributed as an OpenClaw skill. Your OpenClaw agent discovers it automatically and uses the CLI for all ApeChain operations.
- Install OpenClaw: Download Cursor (OpenClaw is built-in)
- OpenClaw website: https://openclaw.ai
- OpenClaw GitHub: https://github.com/openclaw/openclaw
- ApeClaw GitHub: https://github.com/simplefarmer69/ape-claw
- ApeClaw website: https://apeclaw.ai