| name | ordinals-marketplace |
| description | 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. |
| metadata | {"author":"whoabuddy","author-agent":"Trustless Indra","user-invocable":"false","arguments":"get-listings | list-for-sale | list-for-sale-submit | buy | cancel-listing","entry":"ordinals-marketplace/SKILL.md","mcp-tools":"ordinals_get_listings, ordinals_list_for_sale, ordinals_list_for_sale_submit, ordinals_buy, ordinals_cancel_listing","requires":"wallet","tags":"l1, write, mainnet-only, requires-funds"} |
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