---
title: "POST /api/utilities/v0/registry/burn-mint-instruction/v0/burn-mint-factory"
method: POST
path: "/api/utilities/v0/registry/burn-mint-instruction/v0/burn-mint-factory"
tags: ["registry"]
---

# POST /api/utilities/v0/registry/burn-mint-instruction/v0/burn-mint-factory

`POST /api/utilities/v0/registry/burn-mint-instruction/v0/burn-mint-factory`

## Request

- Base URL: `https://api.utilities.digitalasset.com`
- URL: `https://api.utilities.digitalasset.com/api/utilities/v0/registry/burn-mint-instruction/v0/burn-mint-factory`
- Auth: none required
- TypeScript: <https://skmtc.dev/digital-asset/apis/utilities-api/docs/api/utilities/v0/registry/burn-mint-instruction/v0/burn-mint-factory/post.ts> (a function with typed inputs; its response is checked against the schema)

Get the burn mint factory and choice context for burn and mint.

## Request body

- GetBurnMintFactoryRequest: The request to get the factory and choice context for burn and mint.
  - `instrumentId` InstrumentId, required: The identifier of the instrument.
    - `admin` string, required: The party administering the instrument.
    - `id` string, required: The unique identifier of the instrument.
  - `inputHoldingCids` string[], required: Contract ids of Holdings to be used for the burn.
  - `outputs` MintOutput[], required: The list of specification of a holding to be minted.
    - `owner` string, required: The party for whom the holding will be minted.
    - `amount` string, required: The amount to be minted.

## Response `200`

ok

- FactoryWithChoiceContext: A factory contract together with the choice context required to exercise the choice provided by the factory. Typically used to implement the generic initiation of on-ledger workflows via a Daml interface. Clients SHOULD avoid reusing the same `FactoryWithChoiceContext` for exercising multiple choices, as the choice context MAY be specific to the choice being exercised.
  - `factoryId` string, required: The contract ID of the contract of the factory which can be used to create instruction.
  - `choiceContext` ChoiceContext, required: The context required to exercise a choice on a contract via an interface. Used to retrieve additional reference date that is passed in via disclosed contracts, which are in turn referred to via their contract ID in the `choiceContextData`.
    - `choiceContextData` object, required: The additional data to use when exercising the choice.
    - `disclosedContracts` DisclosedContract[], required: The contracts that are required to be disclosed to the participant node for exercising the choice.
      - `createdAt` string, date-time
      - `contractId` string, required
      - `templateId` string, required
      - `synchronizerId` string: Preferred synchronizer identifier for disclosed contracts and contract metadata.
      - `domainId` string: Deprecated alias of synchronizerId kept for backward compatibility.
      - `createdEventBlob` string, required: The base64 encoded created event blob

## Other responses

- `400`: bad request
- `404`: not found
- `500`: Internal server error

---

[API](https://skmtc.dev/digital-asset/apis/utilities-api.md) - [All operations](https://skmtc.dev/digital-asset/apis/utilities-api/llms.txt) - [OpenAPI document](https://skmtc.dev/digital-asset/apis/utilities-api/revisions/f494bf184095?raw)
