> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fireblocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/tokenization/issue-a-new-token",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Issue a new token

> 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.



## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml post /tokenization/tokens
openapi: 3.0.0
info:
  title: Fireblocks API
  description: >
    Fireblocks provides a suite of applications to manage digital asset
    operations and a complete development platform to build your business on the
    blockchain.


    - Visit our website for more information: [Fireblocks
    Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks
    DevPortal](https://developers.fireblocks.com)
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
  - url: https://api.fireblocks.io/v1
    description: Fireblocks Production Environment Base URL
  - url: https://sandbox-api.fireblocks.io/v1
    description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /tokenization/tokens:
    post:
      tags:
        - Tokenization
      summary: Issue a new token
      description: >-
        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.
      operationId: issueNewToken
      parameters:
        - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTokenRequestDto'
      responses:
        '201':
          description: Token was created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenLinkDto'
        '409':
          description: Asset already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetAlreadyExistHttpError'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response: Promise<FireblocksResponse<TokenLinkDto>> =
            fireblocks.tokenization.issueNewToken(tokenizationApiIssueNewTokenRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<TokenLinkDto>> response =
            fireblocks.tokenization().issueNewToken(createTokenRequestDto,
            idempotencyKey);
        - lang: Python
          source: >-
            response =
            fireblocks.tokenization.issue_new_token(create_token_request_dto,
            idempotency_key);
components:
  parameters:
    X-Idempotency-Key:
      name: Idempotency-Key
      in: header
      description: >-
        A unique identifier for the request. If the request is sent multiple
        times with the same idempotency key, the server will return the same
        response as the first request. The idempotency key is valid for 24
        hours.
      required: false
      schema:
        type: string
  schemas:
    CreateTokenRequestDto:
      type: object
      properties:
        blockchainId:
          type: string
          example: B7QG017M
          description: The id of the blockchain the request was initiated on
        assetId:
          type: string
          example: ETH_TEST5
          description: The base asset identifier of the blockchain you want to deploy to
        vaultAccountId:
          type: string
          example: '0'
          description: >-
            The id of the vault account that initiated the request to issue the
            token
        createParams:
          oneOf:
            - $ref: '#/components/schemas/EVMTokenCreateParamsDto'
            - $ref: '#/components/schemas/StellarRippleCreateParamsDto'
            - $ref: '#/components/schemas/SolanaSimpleCreateParams'
        displayName:
          type: string
        useGasless:
          type: boolean
          example: false
          description: >-
            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:
          type: string
          description: >-
            Max fee amount for the write function transaction. interchangeable
            with the 'feeLevel' field
          example: '2000'
        feeLevel:
          enum:
            - LOW
            - MEDIUM
            - HIGH
          type: string
          description: >-
            Fee level for the write function transaction. interchangeable with
            the 'fee' field
          example: MEDIUM
        txNote:
          type: string
          description: >-
            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.
          example: Token creation transaction for new stablecoin
        externalId:
          type: string
          description: >-
            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
          example: 0192e4f5-924e-7bb9-8e5b-c748270feb38
      required:
        - vaultAccountId
        - createParams
    TokenLinkDto:
      type: object
      properties:
        id:
          type: string
          description: The token link id
          example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb
        status:
          enum:
            - PENDING
            - COMPLETED
          type: string
          description: The token status
          example: COMPLETED
        type:
          enum:
            - FUNGIBLE_TOKEN
            - NON_FUNGIBLE_TOKEN
            - TOKEN_UTILITY
            - TOKEN_EXTENSION
          type: string
          description: The type of token
          example: NON_FUNGIBLE_TOKEN
        refId:
          type: string
          description: The Fireblocks' reference id
          example: BQ5R_MY_TOKEN
        displayName:
          type: string
          description: >-
            The token display name. If was not provided, would be taken from the
            contract template
          example: My Simple ERC20 Token
        tokenMetadata:
          description: The token's metadata
          oneOf:
            - $ref: '#/components/schemas/AssetMetadataDto'
            - $ref: '#/components/schemas/CollectionMetadataDto'
            - $ref: '#/components/schemas/ContractMetadataDto'
      required:
        - id
        - status
    AssetAlreadyExistHttpError:
      type: object
      properties:
        statusCode:
          type: integer
          format: int32
          description: HTTP status code
          example: 409
        message:
          type: string
          description: Error message
        error:
          type: string
          description: Short description of the HTTP error
          example: Conflict
    EVMTokenCreateParamsDto:
      type: object
      properties:
        contractId:
          type: string
          example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
          description: >-
            The id of the contract template that will be used to create the
            token
        deployFunctionParams:
          example:
            - internalType: string
              name: name
              type: string
              value: name
            - internalType: string
              name: symbol
              type: string
              value: symbol
            - components:
                - internalType: bool
                  name: _isMintable
                  type: bool
              internalType: struct MyStruct
              name: customConfigProps
              type: tuple
              value:
                - internalType: bool
                  name: _isMintable
                  type: bool
                  value: false
          description: The deploy function parameters and values of the contract template
          type: array
          items:
            $ref: '#/components/schemas/ParameterWithValue'
      required:
        - contractId
    StellarRippleCreateParamsDto:
      type: object
      properties:
        symbol:
          type: string
          example: MyUSDT
          description: The symbol of the token
        name:
          type: string
          example: My USD Tether
          description: The name of the token
        issuerAddress:
          type: string
          example: rnDV4JiwgRNhudPY2sm65AzECpRXaasL4r
          description: >-
            The address of the issuer of this token. Will be part of the
            identifier of this token on chain.
      required:
        - symbol
        - name
        - issuerAddress
    SolanaSimpleCreateParams:
      type: object
      properties:
        name:
          type: string
          description: The name of the token or asset being created.
          example: SolanaToken
        symbol:
          type: string
          description: The symbol for the token, typically an abbreviated representation.
          example: SOL
        decimals:
          type: integer
          description: >-
            The number of decimal places the token supports (e.g., 9 for typical
            Solana tokens).
          example: 9
      required:
        - name
        - symbol
        - decimals
    AssetMetadataDto:
      type: object
      properties:
        assetId:
          type: string
          description: The Fireblocks` asset id
          example: BQ5R_MY_TOKEN
        name:
          type: string
          description: The name of the token
          example: MyToken
        symbol:
          type: string
          description: The symbol of the token
          example: MYT
        networkProtocol:
          type: string
          description: The network protocol of the token
          example: ETH
        totalSupply:
          type: string
          description: The total supply of the token
          example: '1000000000000000'
        holdersCount:
          type: number
          description: The number of holders of the token
          example: '6'
        type:
          type: string
          description: The type of the token
          example: ERC20
        contractAddress:
          type: string
          description: The address of the token contract
          example: '0x1234567890abcdef1234567890abcdef12345678'
        issuerAddress:
          type: string
          description: In case of Stellar or Ripple, the address of the issuer of the token
          example: rGyXjc5d7s17vvt3NtKKascvJrnSxV21kQ
        testnet:
          type: boolean
          description: Is it deployed on testnet or to mainnet
          example: true
        blockchain:
          type: string
          description: The blockchain native asset id which the token is deployed on
          example: ETH_TEST5
        decimals:
          type: number
          description: The number of decimals of the token
          example: 18
        vaultAccountId:
          type: string
          description: >-
            The id of the vault account that initiated the request to issue the
            token. Will be empty if token was issued outside of Fireblocks.
          example: '0'
      required:
        - assetId
    CollectionMetadataDto:
      type: object
      properties:
        fbCollectionId:
          type: string
          description: Fireblocks collection id
          example: 911fe739f0d4d123c98fd366c3bed35c6e30c00e
        name:
          type: string
          description: Collection name
          example: Rarible
        symbol:
          type: string
          description: Collection symbol
          example: RARI
        standard:
          type: string
          description: Collection contract standard
          example:
            - ERC721
            - ERC1155
            - FA2
        blockchainDescriptor:
          type: string
          description: Collection's blockchain
          example: ETH
        contractAddress:
          type: string
          description: Collection contract address
          example: '0x1723017329a804564bC8d215496C89eaBf1F3211'
      required:
        - fbCollectionId
        - blockchainDescriptor
    ContractMetadataDto:
      type: object
      properties:
        id:
          type: string
          description: The deployed contract ID
          example: fbfbfbfb-fbfb-fbfb-fbfb-fbfbfbfbfbfb
        blockchainId:
          type: string
          description: The blockchain ID
          example: B7QG017M
        contractAddress:
          type: string
          description: The address of the token contract
          example: '0x1234567890abcdef1234567890abcdef12345678'
        contractTemplateId:
          type: string
          description: The contract template ID
          example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
        vaultAccountId:
          type: string
          description: The vault account ID that initiated the request to issue the token
          example: '0'
      required:
        - id
        - blockchainId
        - contractAddress
        - contractTemplateId
    ParameterWithValue:
      type: object
      properties:
        name:
          type: string
          example: _name
          description: The name of the parameter as it appears in the ABI
        description:
          type: string
          example: The name of the token
          description: >-
            A description of the parameter, fetched from the devdoc of this
            contract
        internalType:
          type: string
          example: string
          description: The  internal type of the parameter as it appears in the ABI
        type:
          type: string
          example: string
          description: The type of the parameter as it appears in the ABI
        components:
          type: array
          items:
            $ref: '#/components/schemas/Parameter'
        value:
          example: 'true'
          description: The value of the parameter. can also be ParameterWithValue
          type: string
        functionValue:
          description: >-
            The function value of this param (if has one). If this is set, the
            `value` shouldn`t be. Used for proxies
          allOf:
            - $ref: '#/components/schemas/LeanAbiFunction'
      required:
        - name
        - type
    Parameter:
      type: object
      properties:
        name:
          type: string
          example: _name
          description: The name of the parameter as it appears in the ABI
        description:
          type: string
          example: The name of the token
          description: >-
            A description of the parameter, fetched from the devdoc of this
            contract
        internalType:
          type: string
          example: string
          description: The internal type of the parameter as it appears in the ABI
        type:
          type: string
          example: string
          description: The type of the parameter as it appears in the ABI
        components:
          type: array
          items:
            $ref: '#/components/schemas/Parameter'
      required:
        - name
        - type
    LeanAbiFunction:
      type: object
      properties:
        name:
          type: string
          example: initialize
          description: The function name
        inputs:
          description: The function inputs
          type: array
          items:
            $ref: '#/components/schemas/ParameterWithValue'
        outputs:
          description: The function outputs
          type: array
          items:
            $ref: '#/components/schemas/ParameterWithValue'
        stateMutability:
          type: string
          enum:
            - view
            - pure
            - nonpayable
            - payable
          example: nonpayable
          description: >-
            The state mutability of the function (e.g., view, pure, nonpayable,
            payable)
      required:
        - inputs

````