---
title: "Issue a new token"
method: POST
path: "/tokenization/tokens"
tags: ["Tokenization"]
---

# Issue a new token

`POST /tokenization/tokens`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/tokenization/tokens`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/tokenization/tokens/post.ts> (a function with typed inputs; its response is checked against the schema)

Facilitates the creation of a new token, supporting both EVM-based and Stellar/Ripple platforms. For EVM, it deploys the corresponding contract template to the blockchain and links the token to the workspace. For Stellar/Ripple, it links a newly created token directly to the workspace without deploying a contract. Returns the token link with status "PENDING" until the token is deployed or "SUCCESS" if no deployment is needed.
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor.

## Headers

- `Idempotency-Key` string

## Request body

- CreateTokenRequestDto
  - `blockchainId` string: The id of the blockchain the request was initiated on
  - `assetId` string: The base asset identifier of the blockchain you want to deploy to
  - `vaultAccountId` string, required: The id of the vault account that initiated the request to issue the token
  - `createParams` union, required
    - EVMTokenCreateParamsDto
      - `contractId` string, required: The id of the contract template that will be used to create the token
      - `deployFunctionParams` ParameterWithValue[]: The deploy function parameters and values of the contract template
        - `name` string, required: The name of the parameter as it appears in the ABI
        - `description` string: A description of the parameter, fetched from the devdoc of this contract
        - `internalType` string: The internal type of the parameter as it appears in the ABI
        - `type` string, required: The type of the parameter as it appears in the ABI
        - `components` Parameter[]
          - `name` string, required: The name of the parameter as it appears in the ABI
          - `description` string: A description of the parameter, fetched from the devdoc of this contract
          - `internalType` string: The internal type of the parameter as it appears in the ABI
          - `type` string, required: The type of the parameter as it appears in the ABI
          - `components` Parameter[]
        - `value` string: The value of the parameter. The shape follows the ABI `type`: a string for `string`/`address`/`bytes*`, a number for `uint*`/`int*`, a boolean for `bool`, an array for `T[]`, and for `tuple` an array of nested ParameterWithValue objects (one per entry in `components`, in ABI order).
        - `functionValue` LeanAbiFunction
          - `name` string: The function name
          - `inputs` ParameterWithValue[], required: The function inputs
          - `outputs` ParameterWithValue[]: The function outputs
          - `stateMutability` 'view' | 'pure' | 'nonpayable' | 'payable': The state mutability of the function (e.g., view, pure, nonpayable, payable)
    - StellarRippleCreateParamsDto
      - `symbol` string, required: The symbol of the token
      - `name` string, required: The name of the token
      - `issuerAddress` string, required: The address of the issuer of this token. Will be part of the identifier of this token on chain.
    - SolanaSimpleCreateParams
      - `name` string, required: The name of the token or asset being created.
      - `symbol` string, required: The symbol for the token, typically an abbreviated representation.
      - `decimals` integer, required: The number of decimal places the token supports (e.g., 9 for typical Solana tokens).
  - `displayName` string
  - `useGasless` boolean: Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay.
  - `fee` string: Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field
  - `feeLevel` 'LOW' | 'MEDIUM' | 'HIGH': Fee level for the write function transaction. interchangeable with the 'fee' field
  - `txNote` string: Custom note that describes the transaction at your Fireblocks workspace. This note will be visible in the Fireblocks UI and in the transaction details and not on the blockchain.
  - `externalId` string: External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters

## Response `201`

Token was created successfully

- TokenLinkDto
  - `id` string, required: The token link id
  - `status` 'PENDING' | 'COMPLETED', required: The token status
  - `type` 'FUNGIBLE_TOKEN' | 'NON_FUNGIBLE_TOKEN' | 'TOKEN_UTILITY' | 'TOKEN_EXTENSION': The type of token
  - `refId` string: The Fireblocks' reference id
  - `displayName` string: The token display name. If was not provided, would be taken from the contract template
  - `tokenMetadata` union: The token's metadata
    - AssetMetadataDto
      - `assetId` string, required: The Fireblocks` asset id
      - `name` string: The name of the token
      - `symbol` string: The symbol of the token
      - `networkProtocol` string: The network protocol of the token
      - `totalSupply` string: The total supply of the token
      - `holdersCount` number: The number of holders of the token
      - `type` string: The type of the token
      - `contractAddress` string: The address of the token contract
      - `issuerAddress` string: In case of Stellar or Ripple, the address of the issuer of the token
      - `testnet` boolean: Is it deployed on testnet or to mainnet
      - `blockchain` string: The blockchain native asset id which the token is deployed on
      - `decimals` number: The number of decimals of the token
      - `vaultAccountId` string: The id of the vault account that initiated the request to issue the token. Will be empty if token was issued outside of Fireblocks.
    - CollectionMetadataDto
      - `fbCollectionId` string, required: Fireblocks collection id
      - `name` string: Collection name
      - `symbol` string: Collection symbol
      - `standard` string: Collection contract standard
      - `blockchainDescriptor` string, required: Collection's blockchain
      - `contractAddress` string: Collection contract address
    - ContractMetadataDto
      - `id` string, required: The deployed contract ID
      - `blockchainId` string, required: The blockchain ID
      - `contractAddress` string, required: The address of the token contract
      - `contractTemplateId` string, required: The contract template ID
      - `vaultAccountId` string: The vault account ID that initiated the request to issue the token

## Other responses

- `409`: Asset already exists

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
