[ 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 collection
  • pb-opns-register — Give the drop a human-readable OpNS name
  • pb-mnee-payments — Accept USD-denominated MNEE alongside the sat-priced listing

← PACK CONTENTS