ordinals-marketplace
BTC ordinals marketplace operations via Magic Eden — browse active listings, list inscriptions for sale via PSBT flow, submit signed listings, buy inscriptions, and cancel active listings. BTC ordinals only (not Solana). Mainnet-only.
What this skill does
# Ordinals Marketplace Skill
Browse and trade Bitcoin ordinals/inscriptions on the Magic Eden marketplace via the Magic Eden BTC ordinals API (`api-mainnet.magiceden.dev/v2/ord/btc`).
**Important:** This skill covers BTC ordinals only. Magic Eden operates separate marketplaces for different chains; this skill exclusively uses the Bitcoin ordinals API. All operations are mainnet-only — the API does not support testnet.
This is an MCP-tool skill. Agents invoke the underlying MCP tools directly rather than a standalone CLI script. Write operations use the Magic Eden PSBT-based listing flow: Magic Eden generates a PSBT which the seller or buyer signs and then broadcasts.
## Prerequisites
- Wallet must be unlocked for all write operations (`list-for-sale`, `buy`, `cancel-listing`)
- `get-listings` is public and requires no wallet
- Active wallet must have Taproot keys (P2TR address) — managed wallets satisfy this
- BTC balance required for purchasing and cancellations (miner fee for cancel; purchase price + fee for buy)
- Set `MAGIC_EDEN_API_KEY` environment variable for a dedicated authenticated rate limit (optional but recommended for high-volume use; without it, the unauthenticated shared limit applies: 30 QPM)
## Subcommands
### get-listings
Browse active BTC ordinals listings on Magic Eden. No wallet required.
MCP tool: `ordinals_get_listings`
Options:
- `collection` (optional) — Magic Eden collection symbol to filter by (e.g. `nodemonkes`, `bitcoin-puppets`)
- `minPriceSats` (optional) — Minimum listing price in satoshis
- `maxPriceSats` (optional) — Maximum listing price in satoshis
- `limit` (optional) — Number of results (default 20, max 100)
- `offset` (optional) — Pagination offset (default 0)
- `sortBy` (optional) — `priceAsc`, `priceDesc`, or `recentlyListed` (default)
Returns active listings with inscription details, seller address, and price in satoshis.
### list-for-sale
List a wallet inscription for sale on Magic Eden using the PSBT listing flow. Step 1 of 2.
MCP tool: `ordinals_list_for_sale`
Options:
- `inscriptionId` (required) — Inscription ID in txid+index format, e.g. `abc123...i0`
- `priceSats` (required) — Listing price in satoshis
- `receiverAddress` (optional) — BTC address to receive payment (defaults to wallet's Taproot address)
Returns a `psbtBase64` for signing. The inscription is not moved; the signed PSBT authorizes the sale to any buyer.
Next step: sign the returned PSBT using `psbt_sign`, then call `list-for-sale-submit`.
### list-for-sale-submit
Submit a signed listing PSBT to Magic Eden to publish the listing. Step 2 of 2.
MCP tool: `ordinals_list_for_sale_submit`
Options:
- `inscriptionId` (required) — The inscription ID being listed
- `signedPsbt` (required) — The signed PSBT in base64 format (from `psbt_sign`)
Returns `{ "status": "listed" }` on success.
### buy
Buy a listed BTC ordinal inscription from Magic Eden. Multi-step PSBT flow.
MCP tool: `ordinals_buy`
Options:
- `inscriptionId` (required) — Inscription ID to purchase, e.g. `abc123...i0`
- `buyerAddress` (optional) — BTC address to receive the inscription (defaults to wallet's Taproot address)
- `buyerPaymentAddress` (optional) — BTC address to fund the purchase (defaults to wallet's SegWit address)
- `feeRate` (optional) — Fee rate in sat/vB (uses `halfHourFee` network default if omitted)
Returns a `psbtBase64` combining the seller's listing and buyer's payment inputs.
Next step: sign the PSBT with `psbt_sign`, then broadcast with `psbt_broadcast`.
### cancel-listing
Cancel an active Magic Eden listing for an inscription you own.
MCP tool: `ordinals_cancel_listing`
Options:
- `inscriptionId` (required) — Inscription ID of the active listing to cancel, e.g. `abc123...i0`
- `sellerAddress` (optional) — BTC Taproot address that owns the listing (defaults to wallet's Taproot address)
Returns a `psbtBase64` for the cancellation transaction.
Next step: sign the PSBT with `psbt_sign`, then broadcast with `psbt_broadcast` to finalize the cancellation.
## Multi-Step Flows
### Listing Flow
```
1. ordinals_list_for_sale (get listing PSBT)
2. psbt_sign (sign the psbtBase64)
3. ordinals_list_for_sale_submit (publish listing)
```
### Buy Flow
```
1. ordinals_get_listings (find inscription and price)
2. ordinals_buy (get buyer PSBT)
3. psbt_sign (sign the psbtBase64)
4. psbt_broadcast (broadcast to complete purchase)
```
### Cancel Flow
```
1. ordinals_cancel_listing (get cancellation PSBT)
2. psbt_sign (sign the psbtBase64)
3. psbt_broadcast (broadcast to cancel listing)
```
## Notes
- All write operations require mainnet — the API returns an error on testnet
- Magic Eden's BTC ordinals API (`api-mainnet.magiceden.dev/v2/ord/btc`) is the backend for all operations
- The inscription must be in the wallet's Taproot (P2TR / bc1p...) address for listing and cancellation
- Payment for purchases comes from the SegWit (P2WPKH / bc1q...) address
- If `MAGIC_EDEN_API_KEY` is not set, the shared unauthenticated rate limit (30 QPM) applies
Related in Web3
xaut-trade
IncludedBuy or sell XAUT (Tether Gold) on Ethereum. Supports market orders (Uniswap V3) and limit orders (UniswapX). Wallet modes: Foundry keystore or WDK. Delegates non-XAUT intents to registered skills (e.g. Polymarket prediction markets, Hyperliquid trading). Triggers: buy XAUT, XAUT trade, swap USDT for XAUT, sell XAUT, swap XAUT for USDT, limit order, limit buy XAUT, limit sell XAUT, check limit order, cancel limit order, XAUT when, create wallet, setup wallet, polymarket, prediction market, bet on, odds on, hyperliquid, perp, perpetual, long, short, open long, open short, close position, leverage.
qfc-openclaw-skill
IncludedQFC blockchain interaction — wallet, faucet, chain queries, staking, epoch & finality, AI inference
gate-dex-trade
IncludedExecutes on-chain token swaps via Gate DEX. Use when user wants to swap, buy, sell, exchange, or convert tokens, or bridge cross-chain. Covers full swap flow: price quotes, transaction build, signing, and submission. Do NOT use for read-only data lookups or wallet account management.
hunch
IncludedDiscover, bet on, track, and settle Hunch prediction markets in natural language. Trigger when a user wants to bet, take a position, or get odds on a crypto outcome — token market-cap milestones and flips, launchpad races (Bankr vs pump.fun volume / #1-days / launches over a cap), token head-to-head outperformance, mcap strike-ladders, and up/down price rounds. Also trigger on "what can I bet on about $TOKEN", "odds on …", "take YES/NO on …", "show my Hunch bets", "did my market resolve". Settles in USDC on Base via x402 (≤ $10 / bet); every bet returns an on-chain proof.
opensea
IncludedQuery NFT data, trade on the Seaport marketplace, and swap ERC20 tokens across Ethereum, Base, Arbitrum, Optimism, Polygon, and more.
polymarket
IncludedTrade on Polymarket prediction markets (CLOB V2) from a Privy EOA wallet. Search markets, place/cancel orders, manage positions. No private key handling. Use when the user wants to bet on event outcomes (e.g. "buy YES at 0.65 on the ceasefire market", "what are my open positions", "close my Trump bet").