---
updatedAt: 2026-05-27T08:48:52.000Z
agentTools:
  projectIndex: https://docs.tatum.io/llms.txt
---

# Create XRP based Asset

<p style="display: none">/v3/offchain/xrp/asset</p>
<h4>2 credits per API call.</h4><br/><p>
<p>Create an XRP-based asset in a virtual account. The asset must be created and configured on the XRPL blockchain before <a href="https://apidoc.tatum.io/tag/XRP#operation/XrpTrustLineBlockchain">creating a trust line</a>.</p>
<p>This API call will create an internal virtual currency. You can create virtual accounts with off-chain support.</p>


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "servers": [
    {
      "url": "https://api.tatum.io"
    }
  ],
  "info": {
    "version": "1.2",
    "title": "Virtual Accounts"
  },
  "tags": [
    {
      "name": "Blockchain operations"
    }
  ],
  "paths": {
    "/v3/offchain/xrp/asset": {
      "post": {
        "description": "<p style=\"display: none\">/v3/offchain/xrp/asset</p>\n<h4>2 credits per API call.</h4><br/><p>\n<p>Create an XRP-based asset in a virtual account. The asset must be created and configured on the XRPL blockchain before <a href=\"https://apidoc.tatum.io/tag/XRP#operation/XrpTrustLineBlockchain\">creating a trust line</a>.</p>\n<p>This API call will create an internal virtual currency. You can create virtual accounts with off-chain support.</p>\n",
        "operationId": "XrpAssetOffchain",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateXrpAsset"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "description": "Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error403VCCreateFailed"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          }
        },
        "security": [
          {
            "X-API-Key": []
          }
        ],
        "x-codeSamples": [],
        "summary": "Create XRP based Asset",
        "tags": [
          "Blockchain operations"
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "X-API-Key": {
        "type": "apiKey",
        "name": "x-api-key",
        "in": "header",
        "description": "Your **API key** is used to identify your account & your plan, including the number of API calls per second and total monthly calls you have.\n\nEach key is for individual use only.\n\nIf you don't have a key already you can [Sign up for a Free Tatum account](https://co.tatum.io/signup) to get two keys (testnet and mainnet), allowing up to 5 API calls per second and 1,000,000 Credits.\n\nFor testing purposes, you can use the following key which only works inside docs and has limited functionality (e.g. you cannot create virtual accounts or notification subscriptions with it):\n* t-66a730ccccfd17001c479705-2f597d14ad7543f289a03418\n\nFor more details on limits and plans, [click here](https://docs.tatum.io/docs/plans-limits).\n"
      }
    },
    "responses": {
      "Error400": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "errorCode": {
                  "example": "validation.failed",
                  "description": "validation.failed",
                  "type": "string"
                },
                "message": {
                  "example": "Request validation failed. Please see data for additional information.",
                  "description": "Request validation failed. Please see data for additional information.",
                  "type": "string"
                },
                "statusCode": {
                  "example": 400,
                  "description": "400",
                  "type": "number"
                },
                "data": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "target"
                    ],
                    "properties": {
                      "target": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Request object present in the body of the HTTP request",
                        "example": {
                          "property": 12345
                        }
                      },
                      "value": {
                        "type": "number",
                        "description": "Value of the target object which validation is wrong. Can be of any data type, example here is using type number.",
                        "example": 12345
                      },
                      "property": {
                        "type": "string",
                        "description": "Property name of the target object which validation is wrong",
                        "example": "property1"
                      },
                      "constraints": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Object of failed constraints for the target object. Key is the constraint, value is detailed description of the failed constraint.",
                        "example": {
                          "min": "property1 must not be less than 50000"
                        }
                      }
                    }
                  }
                }
              },
              "required": [
                "errorCode",
                "message",
                "statusCode",
                "data"
              ],
              "type": "object"
            }
          }
        }
      },
      "Error401": {
        "description": "Unauthorized. Not valid or inactive subscription key present in the HTTP Header.",
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "properties": {
                    "errorCode": {
                      "example": "subscription.not.active",
                      "description": "subscription.not.active",
                      "type": "string"
                    },
                    "message": {
                      "example": "Subscription not active anymore.",
                      "description": "Subscription not active anymore.",
                      "type": "string"
                    },
                    "statusCode": {
                      "example": 401,
                      "description": "401",
                      "type": "number"
                    }
                  },
                  "required": [
                    "errorCode",
                    "message",
                    "statusCode"
                  ],
                  "type": "object"
                },
                {
                  "properties": {
                    "errorCode": {
                      "example": "subscription.invalid",
                      "description": "subscription.invalid",
                      "type": "string"
                    },
                    "message": {
                      "example": "Unable to find valid subscription for '${apiKey}'",
                      "description": "Unable to find valid subscription for '${apiKey}'",
                      "type": "string"
                    },
                    "statusCode": {
                      "example": 401,
                      "description": "401",
                      "type": "number"
                    }
                  },
                  "required": [
                    "errorCode",
                    "message",
                    "statusCode"
                  ],
                  "type": "object"
                }
              ]
            }
          }
        }
      },
      "Error500": {
        "description": "Internal server error. There was an error on the server during the processing of the request.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "message": {
                  "example": "Internal server error",
                  "description": "Internal server error",
                  "type": "string"
                },
                "statusCode": {
                  "example": 500,
                  "description": "500",
                  "type": "number"
                }
              },
              "required": [
                "statusCode",
                "message"
              ],
              "type": "object"
            }
          }
        }
      }
    },
    "schemas": {
      "FiatOrCryptoCurrency": {
        "type": "string",
        "enum": [
          "AED",
          "AFN",
          "ALL",
          "AMD",
          "ANG",
          "AOA",
          "ARS",
          "AUD",
          "AWG",
          "AZN",
          "ALGO",
          "ADA",
          "BAM",
          "BAT",
          "BBD",
          "BCH",
          "BDT",
          "BGN",
          "BHD",
          "BIF",
          "BMD",
          "BNB",
          "BND",
          "BOB",
          "BRL",
          "BSD",
          "BTC",
          "BTN",
          "BWP",
          "BYN",
          "BYR",
          "BZD",
          "CAD",
          "CDF",
          "CHF",
          "CLF",
          "CLP",
          "CNY",
          "COP",
          "CRC",
          "CUC",
          "CUP",
          "CVE",
          "CZK",
          "DJF",
          "DKK",
          "DOP",
          "DOGE",
          "DZD",
          "EGP",
          "ERN",
          "ETB",
          "ETH",
          "EUR",
          "FJD",
          "FKP",
          "FREE",
          "GMC",
          "GMC_BSC",
          "RMD",
          "GBP",
          "GEL",
          "GGP",
          "GHS",
          "GIP",
          "GMD",
          "GNF",
          "GTQ",
          "GYD",
          "HKD",
          "HNL",
          "HRK",
          "HTG",
          "HUF",
          "IDR",
          "ILS",
          "IMP",
          "INR",
          "IQD",
          "IRR",
          "ISK",
          "JEP",
          "JMD",
          "JOD",
          "JPY",
          "KES",
          "KGS",
          "KHR",
          "KMF",
          "KPW",
          "KRW",
          "KWD",
          "KYD",
          "KZT",
          "LAK",
          "LBP",
          "LEO",
          "LINK",
          "LKR",
          "LRD",
          "LSL",
          "LTC",
          "LTL",
          "LVL",
          "LYD",
          "MAD",
          "MATIC",
          "MDL",
          "MGA",
          "MKD",
          "MKR",
          "MMK",
          "MMY",
          "MNT",
          "MOP",
          "MRO",
          "MUR",
          "MVR",
          "MWK",
          "MXN",
          "MYR",
          "MZN",
          "NAD",
          "NGN",
          "NIO",
          "NOK",
          "NPR",
          "NZD",
          "OMR",
          "PAB",
          "PAX",
          "PAXG",
          "PEN",
          "PGK",
          "PHP",
          "PKR",
          "PLN",
          "PYG",
          "QAR",
          "RON",
          "RSD",
          "RUB",
          "RWF",
          "SAR",
          "SBD",
          "SCR",
          "SDG",
          "SEK",
          "SGD",
          "SHP",
          "SLL",
          "SOS",
          "SRD",
          "STD",
          "SVC",
          "SYP",
          "SZL",
          "THB",
          "TJS",
          "TMT",
          "TND",
          "TOP",
          "TRY",
          "TTD",
          "TRON",
          "TUSD",
          "BUSD",
          "TWD",
          "TZS",
          "UAH",
          "UGX",
          "UNI",
          "USD",
          "USDC",
          "USDC_MATIC",
          "USDC_MATIC_NATIVE",
          "USDT",
          "USDT_TRON",
          "USDT_MATIC",
          "UYU",
          "UZS",
          "VEF",
          "VND",
          "VUV",
          "WBTC",
          "WST",
          "XAF",
          "XAG",
          "XAU",
          "XCD",
          "XCON",
          "XDR",
          "XOF",
          "XPF",
          "XRP",
          "YER",
          "ZAR",
          "ZMK",
          "ZMW",
          "ZWL"
        ]
      },
      "Error403VCCreateFailed": {
        "properties": {
          "errorCode": {
            "description": "virtual.creation.error",
            "example": "virtual.creation.error",
            "type": "string"
          },
          "message": {
            "description": "It is not possible to create virtual currency.",
            "example": "It is not possible to create virtual currency.",
            "type": "string"
          },
          "statusCode": {
            "description": "403",
            "example": 403,
            "type": "number"
          }
        },
        "required": [
          "errorCode",
          "message",
          "statusCode"
        ],
        "type": "object"
      },
      "CreateXrpAsset": {
        "type": "object",
        "properties": {
          "issuerAccount": {
            "description": "Blockchain address of the issuer of the assets.",
            "example": "rsCZjvenhxsFycrb33gPSfXdrTNAS5uiR1",
            "maxLength": 34,
            "minLength": 33,
            "type": "string"
          },
          "token": {
            "description": "Asset name.",
            "example": "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709",
            "type": "string",
            "pattern": "^[A-F0-9]{40}$",
            "maxLength": 40,
            "minLength": 40
          },
          "basePair": {
            "description": "Base pair for Asset. Transaction value will be calculated according to this base pair. e.g. 1 TOKEN123 is equal to 1 EUR, if basePair is set to EUR.",
            "$ref": "#/components/schemas/FiatOrCryptoCurrency",
            "example": "EUR"
          }
        },
        "required": [
          "basePair",
          "issuerAccount",
          "token"
        ]
      }
    }
  }
}
```