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 planThe 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.
- 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.
- Read the length of
plan. It is data-dependent, which is why it is returned and not documented as a constant. - 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.
- 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}.