POST /studio/drop
POST

/v1/studio/drop

Publish a drop of uploaded NFTs

AuthNone — works without a key

Payload

POSThttps://api.xrpl.to/v1/studio/drop
Body
Body fieldsas documented
{
  slug,
  name,
  creator,
  cids[],
  price_amount (XRP,
  or the token's amount),
  price_currency? (XRP,
  or a token's code),
  price_issuer? (the token's issuer),
  blind_mint,
  reveal_at? ("manual" or RFC 3339),
  placeholder_image?,
  image?,
  description?,
  per_wallet_limit?,
  per_ip_limit?,
  referral_bps? (0 to 5000),
  whitelist?[],
  mint_start? (RFC 3339),
  public_start? (RFC 3339,
  with a whitelist or phases),
  mint_end? (RFC 3339),
  phases?[] ({
    name,
    start,
    end?,
    price_amount (XRP),
    per_wallet_limit?,
    max_mints?,
    wallets?[],
    wallet_limits? { address: n },
    holders? { kind: "nft", issuer, taxon?, burn? } or { kind: "token", currency, issuer, min }
  }),
  raffle_until? and claim_until? (RFC 3339,
  fair mode),
  links? { x, discord, website },
  taxon?,
  transfer_fee?,
  flags? (tfBurnable 1,
  tfOnlyXRP 2,
  tfTransferable 8,
  tfMutable 16),
  edition? (true: cids holds one artwork,
  sold as numbered copies),
  edition_copies? (0 or none: no limit),
  claim_code? (4 to 64 characters),
  fee_payment_hash
}
curl -X POST 'https://api.xrpl.to/v1/studio/drop'
No public sample for this one — copy the code and fill in your own values.

Response

No public sample for this endpoint — run the code on the right with your own values to see the response.

What it does

Publish a drop of uploaded NFTs

Notes
The listing fee is paid first: without fee_payment_hash the answer is 402 with fee_drops, minter_address and its quote (per NFT, plus staged art over the included MB a file). Its cids are files uploaded here: each NFT's files go on IPFS once it is minted (a hidden drop's once revealed), so the art of an NFT not sold yet is never public: a buyer shown its URI before signing (a Batch) cannot look it up and choose. Its fingerprint goes on the ledger when it is made (GET /studio/drop/{slug}/provenance). slug: up to 64 of a-z, 0-9 and -. Schedule: nobody mints before mint_start; with a whitelist, only it until public_start (without one, the whitelist for good), then everyone. mint_end: the sale ends (phase closed): from it on nobody starts a purchase, phases included, but a payment made before it still mints (POST /studio/drop/{slug}/mint) and a Batch prepared before it can still be signed; it comes after mint_start, public_start, every phase's start and claim_until, and is in the future. Fair mode (raffle_until with claim_until, no whitelist or schedule beside them): wallets enter a raffle until raffle_until (POST /studio/drop/{slug}/enter), its winners mint until claim_until, then everyone. per_ip_limit: at most this many NFTs minted from one IP address (an IPv6 /64 counts as one; mints and Batches over it answer 429): it slows scripts, not determined bots, and people sharing a connection count as one. Phases (phases, with public_start for the public sale after them, or none: the phases alone; no whitelist, mint_start or raffle beside them): each has a name, a start and an optional end, a price in XRP, a limit per wallet and a cap (0: none), and is open to its wallets (up to 10,000) and/or the holders of an NFT collection (issuer, taxon; each NFT held mints once there, so passing one on mints nothing more) or of a token (currency, issuer, at least min, read as they mint). Phases may overlap: a wallet mints in the cheapest one open to it with room left, which GET /studio/drop/{slug}/wallet/{wallet} names. The creator mints its own drop free (a payment to itself is refused by the ledger). Priced in a token (price_currency and price_issuer): the creator must issue it or hold a trust line for it, and its issuer must charge no transfer fee; price_amount and each phase's price are amounts of it (up to 15 significant digits), and it is bought in one transaction only (POST /studio/drop/{slug}/batch), the buyer holding enough of it. referral_bps: the share of each purchase, in basis points (up to 5,000: 50%), paid to whoever shared the link the buyer came by, in the purchase's own Batch; a sharer that cannot take the payment (not on the ledger, deposit authorization or a required destination tag, no trust line for the token) gets none, and the creator is paid all. Burn to mint: an NFT collection's holders phase with burn: true; each mint burns one of the holder's NFTs of it, in the same Batch, so none is burned without its new NFT (at most 2 a Batch; not by POST /studio/drop/{slug}/mint). links: https addresses, x on x.com, discord on discord.gg. An edition (edition: true) sells its one artwork as numbered copies, numbered in the order they are taken (a copy given back is sold again), up to edition_copies (0: no limit; supply and remaining are then null and minted_count counts up); it is never hidden and has no raffle. It pays no listing fee: each copy's buyer pays copy_fee_drops (the price per NFT when it was made) to minter_address in its purchase, so it is bought in one transaction only (POST /studio/drop/{slug}/batch). claim_code: only who sends it (POST /studio/drop/{slug}/mint or .../batch, claim_code) mints, its creator excepted; it is kept as a hash with the drop's slug and never shown (claim_code_required). wallet_limits: a listed wallet's own limit in its phase (0: none), in place of the phase's per_wallet_limit, as an allowlist CSV of address,mints gives it. flags: tfBurnable 1, tfOnlyXRP 2 (resold for XRP only), tfTransferable 8 and tfMutable 16 (dynamic: its creator can put new art on its NFTs later, manage art) only.
No key. Payments on the ledger pay for what costs money; a hidden drop's art stays off IPFS until its reveal. Open the NFT studio →
OpenAPI