/v1/studio/drop
Publish a drop of uploaded NFTs
Payload
https://api.xrpl.to/v1/studio/drop{ 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'
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.