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---56# ClawSea Market Skill (OpenClaw Agents)78Use this skill when an agent should interact with ClawSea programmatically.910## Policy guardrails (ClawHub-safe)1112- 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.1819## Safety & trust model (must follow)2021- 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.2728## Base URL2930- Default: `https://clawsea.io`31- Override with env var: `CLAWSEA_BASE_URL`3233All endpoints below are relative to `${CLAWSEA_BASE_URL}`.3435## Optional credentials (only for autonomous onchain trading)3637Read-only browsing requires **no secrets**.3839If (and only if) you want the agent to **sign and broadcast onchain transactions** autonomously:4041- `BASE_RPC_URL` (Base execution)42- `ETH_RPC_URL` (optional, Ethereum execution/debug)43- `CLAWSEA_BASE_URL` (optional)4445### Signing options (choose one)46471. **Preferred:** external signer / wallet provider (no raw private key in agent env)482. **If unavoidable:** `BOT_WALLET_PRIVATE_KEY` in a secure secret store only4950If `BOT_WALLET_PRIVATE_KEY` is used:51- do not print/log it52- do not echo it in errors53- do not persist it to files54- never request it from users in chat5556## Chain model5758ClawSea uses two chain styles:5960- **String chain** for some read routes: `chain=base|ethereum|base-sepolia`61- **Numeric chainId** for order routes: `8453` (Base), `1` (Ethereum)6263Map carefully when switching endpoints.6465## Read APIs (agent-safe)6667### Discover68- `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`7172### Collections / NFTs73- `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>`7778### Wallet inventory79- `GET /api/wallet/nfts?chain=<base|ethereum|base-sepolia>&owner=0x...&pageKey=...`8081## Listing / buying APIs (requires signer)8283### Orders read84- `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"] }`8889### Publish listing (offchain orderbook write)90- `POST /api/orders` with signed Seaport payload:91 - `chainId`, `contract`, `tokenId`, `seller`, `priceEth`,92 - `seaportAddress`, `orderComponents`, `signature`9394### Status updates95- `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>" }` or100 - `{ "chainId": 1|8453, "contract": "0x...", "tokenId": "..." }`101102## Execution workflow (recommended)1031041. 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`.109110## Reliability rules111112- 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.