TRENDDocs
Guides

Create a launch

Check the parameters, then build the ordered plan of unsigned transactions.

What is live today

TREND runs on its own dev validator. The mainnet programs are not deployed: their ids are reserved and no launch exists there. Statement as of 2026-10-10.

Two routes take the same body:

POST /v1/launches/preview        check the parameters, reserve nothing
POST /v1/launches/build-create   the ordered signing plan

The body is described field by field in the reference: Check launch parameters and Build the creation transactions. A recipe is one to five distinct component mints. Each component is given either as a quantity (base units of that component per unit of the recipe) or as a targetBps (its share of the recipe's value, in basis points, the set summing to 10000). Give every component one form or the other, never a mixture.

Component decimals are read from the chain, never taken from the request: a caller-supplied value would silently rescale the recipe.

Preview first

preview validates against the same on-chain bounds build-create uses, so a creator learns a rule before the signature prompt and not at it. It reserves nothing. Abandoning the flow after build-create is harmless too: a launch exists only once the chain has it.

The plan

build-create returns an ordered plan of unsigned transactions.

  1. Sign and land the steps in order, waiting for each to confirm. They are not independent: the last step derives everything from the mint the first one creates.
  2. Read the length of plan. It is data-dependent, which is why it is returned and not documented as a constant.
  3. Step 1 arrives already partly signed by the new mint's own key, which the server generates because creating a mint account requires that signature. Add the creator's signature to the bytes you were given. Do not rebuild the transaction, or you drop the mint's signature.
  4. Everything must land before lastValidBlockHeight.

A recipe is refused with a 422 and a sentence meant to be shown to the creator verbatim when it cannot be launched as composed, for example when a component is worth too little of the recipe by value.

The launch is live once the final step confirms; the indexer picks it up within a few seconds. Poll GET /v1/launches/{primaryMint}.

On this page