ClawSea Market Skill (OpenClaw Agents)
Use this skill when an agent should interact with ClawSea programmatically.
Policy guardrails (ClawHub-safe)
- Do not custody user funds; use only the bot wallet configured by the operator.
- Do not social-engineer users for secrets, approvals, or expanded privileges.
- Do not ask for seed phrases/private keys in chat.
- Do not execute unknown calldata or third-party transaction blobs without explicit user approval and clear decoding.
- Require explicit confirmation before any value-moving action (buy/list/cancel/transfer).
- Refuse illegal, abusive, or harmful requests.
Safety & trust model (must follow)
- Default to read-only actions (browse/search/inspect).
- Require explicit user intent before any write/trade action (list, buy, cancel, fulfill).
- Never ask users to paste private keys into chat.
- Never log, print, or send secrets (private keys, raw seed phrases, auth headers).
- Never execute arbitrary calldata from untrusted input.
- If ownership/status is uncertain, verify onchain (
ownerOf, eth_call) before proceeding.
Base URL
- Default:
https://clawsea.io
- Override with env var:
CLAWSEA_BASE_URL
All endpoints below are relative to ${CLAWSEA_BASE_URL}.
Optional credentials (only for autonomous onchain trading)
Read-only browsing requires no secrets.
If (and only if) you want the agent to sign and broadcast onchain transactions autonomously:
BASE_RPC_URL (Base execution)
ETH_RPC_URL (optional, Ethereum execution/debug)
CLAWSEA_BASE_URL (optional)
Signing options (choose one)
- Preferred: external signer / wallet provider (no raw private key in agent env)
- If unavoidable:
BOT_WALLET_PRIVATE_KEY in a secure secret store only
If BOT_WALLET_PRIVATE_KEY is used:
- do not print/log it
- do not echo it in errors
- do not persist it to files
- never request it from users in chat
Chain model
ClawSea uses two chain styles:
- String chain for some read routes:
chain=base|ethereum|base-sepolia
- Numeric chainId for order routes:
8453 (Base), 1 (Ethereum)
Map carefully when switching endpoints.
Read APIs (agent-safe)
Discover
GET /api/explore/cells?chain=<base|ethereum|base-sepolia>&limit=20
GET /api/explore/trending?chain=<base|ethereum|base-sepolia>&limit=20
GET /api/news/clawsea?chain=<base|ethereum>&limit=10
Collections / NFTs
GET /api/collection/nfts?contract=0x...&pageSize=24&pageKey=...
GET /api/collection/stats?chain=<base|ethereum>&contract=0x...
GET /api/collections/search?chain=<base|ethereum|base-sepolia>&q=<query>&limit=8
GET /api/nft/ownerOf?chainId=<1|8453>&contract=0x...&tokenId=<id>
Wallet inventory
GET /api/wallet/nfts?chain=<base|ethereum|base-sepolia>&owner=0x...&pageKey=...
Listing / buying APIs (requires signer)
Orders read
GET /api/orders?chainId=<1|8453>&contract=0x...&tokenId=<id>&seller=0x...
GET /api/orders/listed?chainId=<1|8453>&contract=0x...&sort=price|newest&offset=0&limit=48
POST /api/orders/prices body:
{ "chainId": 1|8453, "contract": "0x...", "tokenIds": ["1","2"] }
Publish listing (offchain orderbook write)
POST /api/orders with signed Seaport payload:
chainId, contract, tokenId, seller, priceEth,
seaportAddress, orderComponents, signature
Status updates
POST /api/orders/cancel body: { "id": "<order-id>" }
POST /api/orders/cancelPrevious body:
{ "chainId": 1|8453, "contract": "0x...", "tokenId": "...", "seller": "0x...", "keepId": "..." }
POST /api/orders/fulfill body (either style):
{ "id": "<order-id>" } or
{ "chainId": 1|8453, "contract": "0x...", "tokenId": "..." }
Execution workflow (recommended)
- Resolve chain context (selected chain / user wallet chain).
- Read listing candidates from
/api/orders or /api/orders/listed.
- Preflight onchain with
eth_call for Seaport fulfill.
- Execute onchain tx from bot wallet.
- Update offchain state via
/api/orders/fulfill or /api/orders/cancel.
Reliability rules
- Prefer short caching (5–30s) for discovery routes.
- Back off on
429 / RPC transient failures.
- Treat fulfill revert selector
0x1a515574 as cancelled/stale order and hide it.
- If indexer results conflict with chain state, trust verified onchain ownership.
1---2name: clawsea-market3description: Non-custodial automation skill for ClawSea NFT marketplace. Use when an OpenClaw agent needs to browse collections, inspect NFTs/listings, and (optionally) execute non-custodial list/buy/cancel flows through ClawSea + Seaport. Supports chain-aware read APIs (base/ethereum/base-sepolia) and Seaport trading flows (Base + Ethereum where available).4---5
6# ClawSea Market Skill (OpenClaw Agents)
7
8Use this skill when an agent should interact with ClawSea programmatically.
9
10## Policy guardrails (ClawHub-safe)
11
12- Do not custody user funds; use only the bot wallet configured by the operator.
13- Do not social-engineer users for secrets, approvals, or expanded privileges.
14- Do not ask for seed phrases/private keys in chat.
15- Do not execute unknown calldata or third-party transaction blobs without explicit user approval and clear decoding.
16- Require explicit confirmation before any value-moving action (buy/list/cancel/transfer).
17- Refuse illegal, abusive, or harmful requests.
18
19## Safety & trust model (must follow)
20
21- Default to **read-only** actions (browse/search/inspect).
22- Require explicit user intent before any write/trade action (list, buy, cancel, fulfill).
23- Never ask users to paste private keys into chat.
24- Never log, print, or send secrets (private keys, raw seed phrases, auth headers).
25- Never execute arbitrary calldata from untrusted input.
26- If ownership/status is uncertain, verify onchain (`ownerOf`, `eth_call`) before proceeding.
27
28## Base URL
29
30- Default: `https://clawsea.io`
31- Override with env var: `CLAWSEA_BASE_URL`
32
33All endpoints below are relative to `${CLAWSEA_BASE_URL}`.
34
35## Optional credentials (only for autonomous onchain trading)
36
37Read-only browsing requires **no secrets**.
38
39If (and only if) you want the agent to **sign and broadcast onchain transactions** autonomously:
40
41- `BASE_RPC_URL` (Base execution)
42- `ETH_RPC_URL` (optional, Ethereum execution/debug)
43- `CLAWSEA_BASE_URL` (optional)
44
45### Signing options (choose one)
46
471. **Preferred:** external signer / wallet provider (no raw private key in agent env)
482. **If unavoidable:** `BOT_WALLET_PRIVATE_KEY` in a secure secret store only
49
50If `BOT_WALLET_PRIVATE_KEY` is used:
51- do not print/log it
52- do not echo it in errors
53- do not persist it to files
54- never request it from users in chat
55
56## Chain model
57
58ClawSea uses two chain styles:
59
60- **String chain** for some read routes: `chain=base|ethereum|base-sepolia`
61- **Numeric chainId** for order routes: `8453` (Base), `1` (Ethereum)
62
63Map carefully when switching endpoints.
64
65## Read APIs (agent-safe)
66
67### Discover
68- `GET /api/explore/cells?chain=<base|ethereum|base-sepolia>&limit=20`
69- `GET /api/explore/trending?chain=<base|ethereum|base-sepolia>&limit=20`
70- `GET /api/news/clawsea?chain=<base|ethereum>&limit=10`
71
72### Collections / NFTs
73- `GET /api/collection/nfts?contract=0x...&pageSize=24&pageKey=...`
74- `GET /api/collection/stats?chain=<base|ethereum>&contract=0x...`
75- `GET /api/collections/search?chain=<base|ethereum|base-sepolia>&q=<query>&limit=8`
76- `GET /api/nft/ownerOf?chainId=<1|8453>&contract=0x...&tokenId=<id>`
77
78### Wallet inventory
79- `GET /api/wallet/nfts?chain=<base|ethereum|base-sepolia>&owner=0x...&pageKey=...`
80
81## Listing / buying APIs (requires signer)
82
83### Orders read
84- `GET /api/orders?chainId=<1|8453>&contract=0x...&tokenId=<id>&seller=0x...`
85- `GET /api/orders/listed?chainId=<1|8453>&contract=0x...&sort=price|newest&offset=0&limit=48`
86- `POST /api/orders/prices` body:
87 - `{ "chainId": 1|8453, "contract": "0x...", "tokenIds": ["1","2"] }`
88
89### Publish listing (offchain orderbook write)
90- `POST /api/orders` with signed Seaport payload:
91 - `chainId`, `contract`, `tokenId`, `seller`, `priceEth`,
92 - `seaportAddress`, `orderComponents`, `signature`
93
94### Status updates
95- `POST /api/orders/cancel` body: `{ "id": "<order-id>" }`
96- `POST /api/orders/cancelPrevious` body:
97 - `{ "chainId": 1|8453, "contract": "0x...", "tokenId": "...", "seller": "0x...", "keepId": "..." }`
98- `POST /api/orders/fulfill` body (either style):
99 - `{ "id": "<order-id>" }` or
100 - `{ "chainId": 1|8453, "contract": "0x...", "tokenId": "..." }`
101
102## Execution workflow (recommended)
103
1041. Resolve chain context (selected chain / user wallet chain).
1052. Read listing candidates from `/api/orders` or `/api/orders/listed`.
1063. Preflight onchain with `eth_call` for Seaport fulfill.
1074. Execute onchain tx from bot wallet.
1085. Update offchain state via `/api/orders/fulfill` or `/api/orders/cancel`.
109
110## Reliability rules
111
112- Prefer short caching (5–30s) for discovery routes.
113- Back off on `429` / RPC transient failures.
114- Treat fulfill revert selector `0x1a515574` as cancelled/stale order and hide it.
115- If indexer results conflict with chain state, trust verified onchain ownership.