[ PACK LIBRARY / PAYMENTS & BLOCKCHAIN ]
CHAINFREE SAMPLE
Launch chain: generate art, mint as ordinal, list on storefront
STAFF UNO SATOJ / LISA / THEO · V0.1.0
gemskills:generate-image1sat:ordinals-create1sat:ordinals-marketplace
REQUIRES
- claude plugin install gemskills@b-open-io
- claude plugin install 1sat@b-open-io
WHEN TO REACH FOR THIS
You want a single NFT to go from an idea to a live, purchasable marketplace listing without stitching three separate tools together by hand. This chain runs the handoff end to end: art generation, on-chain inscription, and an OrdLock marketplace listing, each link producing exactly what the next needs. It saves you the error-prone glue work of moving a file into a mint, then a mint outpoint into a listing.
REQUIRES
- 1Sat plugin:
claude plugin install 1sat@b-open-io - Gem skills:
claude plugin install gemskills@b-open-io(Gemini API key set) - A funded BRC-100 wallet (inscription cost + fees; ~a few thousand sats)
- If you publish a listing UI: a Next.js app to render it (Theo's link)
CONTEXT INPUTS
{{ART_BRIEF}} # What Lisa should generate (subject, style, palette, aspect)
{{NFT_NAME}} # On-chain name recorded in MAP metadata
{{LIST_PRICE_SATS}} # Sale price in satoshis for the marketplace listing
{{SIGN_WITH_BAP}} # true to embed an authorship (Sigma) signature in the inscription
{{STOREFRONT}} # optional: path/route where Theo surfaces the listing
THE PROMPT
PASTE INTO YOUR AGENT
You are running a three-link launch chain. Each agent hands a named artifact to
the next. Do not start a link until the previous link's "done" condition is met.
LINK 1 - Lisa (art). Load `gemskills:generate-image`.
Produce: one image file matching {{ART_BRIEF}} at a mint-appropriate resolution.
Hand off: the local file path and its content type (e.g. image/png).
Done when: the file exists on disk and you have confirmed its MIME type.
LINK 2 - Uno Satoj (mint). Load `1sat:ordinals-create`.
Receive: the image path + content type from Link 1.
Produce: a single inscription via inscribe.execute on a context built with
createContext(wallet, { services }). Read the file to base64, set contentType,
set map: { app: "<your app>", type: "image", name: "{{NFT_NAME}}" }, and set
signWithBAP: {{SIGN_WITH_BAP}}. Capture result.txid.
Hand off: the ordinal origin outpoint (txid_0) and the txid.
Done when: result.txid is returned (not result.error) and you have the origin.
LINK 3 - Uno Satoj (list). Load `1sat:ordinals-marketplace`.
Receive: the ordinal origin from Link 2.
Produce: first resolve the freshly minted ordinal to a wallet output by calling
getOrdinals.execute and matching the origin; listOrdinal takes that WalletOutput
as `ordinal`, not a bare outpoint. Then list via listOrdinal with
price: {{LIST_PRICE_SATS}} and payAddress set to your own wallet receive address
(where sale proceeds are paid). The ordinal is in your own wallet, so inputBEEF is
auto-resolved; do not pass external BEEF.
Hand off: the listing txid and the price.
Done when: listOrdinal returns a txid and the ordinal shows as listed.
LINK 4 (only if {{STOREFRONT}} is set) - Theo (surface it).
Receive: origin, listing txid, price, and the image.
Produce: a listing card/route at {{STOREFRONT}} that reads the ordinal by origin
and shows a buy path. Verify it renders locally.
Done when: the route renders the listed item with its live price.
Report at the end: the image path, inscription txid + origin, listing txid, and
(if applicable) the storefront route.
Negative prompts:
- Do NOT proceed past a link whose done condition failed - stop and report the error.
- Do NOT pass external inputBEEF when listing your own freshly minted ordinal.
- Do NOT fabricate txids, origins, or "listed" status; only report what the actions return.
- Do NOT swap the image model or marketplace mechanism; use the cited skills as-is.EXPECTED OUTPUT
A minted ordinal (txid + origin outpoint), a live OrdLock marketplace listing at your chosen price, the generated art file, and — if you asked for it — a storefront route that renders the listing. Every identifier is a real value returned by the actions.
FOLLOW-UP CHAIN
pb-ordinals-launch— Scale this single-item flow up to a full collectionpb-opns-register— Give the drop a human-readable OpNS namepb-mnee-payments— Accept USD-denominated MNEE alongside the sat-priced listing