Tokenization Guide for Issuer

The Instant Tokenization Network (ITN) is a platform designed to streamline and accelerate the process of in-kind mint and redemption of tokenized assets. The goal of the ITN is to enable efficient, secure, and rapid conversion of real-world and digital assets to and from various tokens issued by partners on the network. The network acts as instant settlement rails for market participants to programmatically rebalance inventory, thereby stitching together fragmented tokenized asset liquidity across the industry. This document will guide the Issuer of tokenized assets on how to start using Alpaca’s Instant Tokenization Network.

Handshake Process

Before a client at Alpaca can mint or redeem tokenized assets via the Issuer, they will need to reach out to Alpaca’s operation team for a handshake step. This step is meant to ensure that the client is both a client of Alpaca and the Issuer. Additionally, they will also need to be an Authorized Participant (AP) with the Issuer.

Linking Accounts

In order to easily communicate between the Alpaca and the Issuer’s platform, the AP’s account at Alpaca will be linked to their account with the Issuer. Alpaca will maintain this linking and use it during the mint and redeem processes.

Issuer’s Account Linking Endpoint

Alpaca will invoke the Issuer’s account linking endpoint. See an example below.

POST /accounts/connect

Alpaca will provide the following JSON body in the endpoint:

{
  "email": "[email protected]",
  "account" : "alpaca_account_number"
}
FieldDescription
emailAP’s email used on the Issuer’s platform
accountAP's Alpaca account number

The Issuer will respond with the AP’s account number on their platform as shown below. Alpaca will persist this information for future use during the mint and redeem flow.

{
  "client_id": "5505-1234-ABC-4G45"
}
FieldDescription
client_idAP’s account identifier on the Issuer’s platform

In addition, the Issuer can respond with the following statuses:

StatusDescription
200OK - Successful link
404Email not found
409Account already linked

Designated Tokenization Account

During the mint and redeem process, the Instant Tokenization Network will journal securities to and from the AP's account to the Issuer's account at Alpaca. If the Issuer holds multiple accounts at Alpaca, they will need to inform Alpaca which of their accounts should be designated for tokenization.

Tokenized Assets Data

The Issuer should provide Alpaca an endpoint which can retrieve the list of supported tokenized assets. The endpoint should provide the following data:

  • underling symbol
  • token symbol
  • supported blockchain network

Alpaca will use this information when validating the AP's mint request.

Mint Endpoint and Workflow

The mint workflow is depicted in Figure 1 below.

Figure 1. Minting a tokenized asset

  1. The Authorized Participant sends Alpaca a mint request.
  2. Alpaca uses the Issuer’s endpoint to submit a mint request with a JSON object in the body. The Issuer will validate the mint request.

Issuer’s Mint Request Endpoint

POST /inkind/issuance

Mint request body:

{
  "tokenization_request_id": "12345-678-90AB",
  "qty": "1.23",
  "underlying_symbol": "TSLA",
  "token_symbol": "TSLAx",
  "network": "solana",
  "client_id": "98765432",
  "wallet_address": "<AP's wallet address to deposit the tokenized asset>"
}

Field

Description

tokenization_request_id

Unique request identifier assigned by Alpaca

qty

The underlying quantity to convert into the tokenized asset. The value can be fractional.

underlying_symbol

Underlying asset symbol

token_symbol

Tokenized asset symbol

network

The token’s blockchain network. Currently, we support the following networks:

  • solana

client_id

AP’s account identifier on the Issuer's platform. This is the account identifier received during the handshake/account linking step.

wallet_address

The destination wallet address where the tokenized assets should be deposited

Mint response:

{
  "issuer_request_id": "123-456-ABCD-7890",
  "status": "created"
}

Field

Description

issuer_request_id

Unique identifier assigned by the Issuer

status

Tokenization request status. Once the request has been successfully validated, the Issuer will create a mint tokenization request on their platform. This does not mean that the token is created.

  • created

In addition, the Issuer will provide the following status on the request response:

Status

Description

200

OK

400

  • Invalid Wallet: Wallet does not belong to client
  • Invalid Token: Token not available on the network
  • Insufficient Eligibility: Client not eligible
  • Failed Validation: Invalid data payload
  1. Alpaca journals the underlying security from the AP’s account into the Issuer’s account.
  2. Alpaca invokes the Issuer’s endpoint to confirm the underlying asset's journal status.

Issuer Mint Journal Confirmation Endpoint

/inkind/issuance/confirm

Mint journal confirmation body:

{
  "tokenization_request_id": "12345-678-90AB",
  "issuer_request_id": "ABC-123-DEF-456",
  "status": "<completed/rejected>"
}

Field

Description

tokenization_request_id

Unique request identifier previously assigned by Alpaca

issuer_request_id

Unique identifier assigned by the Issuer as previously received on the mint response

status

The journal status. Valid values are:

  • rejected
  • completed
  1. The Issuer deposits the tokens into the AP’s wallet on a successful journal.
  2. The Issuer invokes Alpaca’s endpoint to confirm the successful token mint. The Issuer will provide their designated Alpaca tokenization account_id as a URL parameter in the endpoint.

Alpaca's Mint Confirmation Callback Endpoint

POST /v1/accounts/{account_id}/tokenization/callback/mint

Mint confirmation callback body:

{
  "tokenization_request_id": "12345-678-90AB",
  "client_id": "5505-1234-ABC-4G45",
  "wallet_address": "<AP's wallet address where the tokenized assets were deposited>",
  "tx_hash": "0x12345678",
  "network": "solana"
}

Field

Description

tokenization_request_id

Unique request identifier previously assigned by Alpaca

client_id

AP’s account identifier on the Issuer's platform

wallet_address

Wallet address where the tokenized assets were deposited

tx_hash

Mint’s transaction hash on the blockchain

network

The token’s blockchain network. Currently, we support the following networks:

  • solana

Redeem Endpoint and Workflow

The redeem workflow is depicted in Figure 2 below.

Figure 2. Redeeming a tokenized asset

  1. The token redemption process will be initiated by the client by moving the tokens into the Issuer’s redemption wallet address. The Issuer will remove these tokens from circulation.
  2. The Issuer will then notify Alpaca using the following endpoint that an AP has redeemed their tokens. The Issuer will provide their designated Alpaca tokenization account_id as a URL parameter in the endpoint.

Alpaca's Redeem Request Endpoint

POST /v1/accounts/{account_id}/tokenization/redeem

Redeem request body:

{
  "issuer_request_id": "ABC-123-DEF-456",
  "underlying_symbol": "AAPL",
  "token_symbol": "AAPLx",
  "client_id": "5505-1234-ABC-4G45",
  "qty": "1.23",
  "network": "solana",
  "wallet_address": "<the originating wallet address for the redeemed tokens>",
  "tx_hash": "0x12345678"
}

Field

Description

issuer_request_id

Unique identifier assigned by the Issuer

underlying_symbol

Underlying asset symbol

token_symbol

Token asset symbol

client_id

AP’s account identifier on the Issuer's platform

qty

The quantity to convert into the underlying asset. The value can be fractional.

network

The originating token’s blockchain network. Currently, we support the following networks:

  • solana

wallet_address

The address where the redeemed tokens were originally held

tx_hash

The transaction hash of the tokens being sent to the Issuer's redemption wallet

Redeem response:

{
  "tokenization_request_id": "12345-678-90AB",
  "issuer_request_id": "ABCDEF123",
  "created_at":"2025-09-12T17:28:48.642437-04:00",
  "type": "redeem",
  "status": "completed",
  "underlying_symbol": "TSLA",
  "token_symbol" : "TSLAx",
  "qty" : "123.45",
  "issuer" : "xstocks",
  "network": "solana",
  "wallet_address": "0x1234567A",
  "tx_hash" : "0x1234567A",
  "fees" : "0.567"
}

Field

Description

tokenization_request_id

Unique request identifier assigned by Alpaca

issuer_request_id

Unique identifier assigned by the Issuer

created_at

Timestamp when Alpaca received the redeem request

type

Tokenization request type:

  • redeem

status

Current status of the redemption request:

  • pending
  • completed
  • rejected

underlying_symbol

The underlying asset symbol

token_symbol

The tokenized asset symbol

qty

The quantity to convert into the underlying asset. It can be fractional.

issuer

The tokenized asset's Issuer. Valid values are:

  • xstocks

network

The token's blockchain network. Valid values are:

  • solana

wallet_address

The originating wallet where the tokenized assets were previously held

tx_hash

The transaction hash of the tokens being sent to the Issuer's redemption wallet

fees

The fees charged for this tokenization request

  1. Finally, Alpaca will journal the underlying asset from the Issuer’s account into the AP’s account.

List Requests

An Issuer can use the following endpoint to list the tokenization requests performed through their platform. The Issuer will provide their designated Alpaca tokenization account_id as a URL parameter in the endpoint.

Alpaca's List Requests Endpoint

GET /v1/accounts/{account_id}/tokenization/requests

List response:

[
   {
    "tokenization_request_id": "12345-678-90AB",
    "issuer_request_id": "ABCDEF123",
    "created_at":"2025-09-12T17:28:48.642437-04:00",
    "updated_at":"2025-09-12T17:28:48.642437-04:00",
    "type": "redeem",
    "status": "completed",
    "underlying_symbol": "TSLA",
    "token_symbol" : "TSLAx",
    "qty" : "123.45",
    "issuer" : "xstocks",
    "network": "solana",
    "wallet_address": "0x1234567A",
    "tx_hash" : "0x1234567A",
    "fees" : "0.567"
  },
  {
    "tokenization_request_id": "12345-678-90AB",
    "issuer_request_id": "ABCDEF123",
    "created_at":"2025-09-12T17:28:48.642437-04:00",
    "updated_at":"2025-09-12T17:28:48.642437-04:00",
    "type": "redeem",
    "status": "completed",
    "underlying_symbol": "TSLA",
    "token_symbol" : "TSLAx",
    "qty" : "123.45",
    "issuer" : "xstocks",
    "network": "solana",
    "wallet_address": "0x1234567A",
    "tx_hash" : "0x1234567A",
    "fees" : "0.567"
  },
  {
    "tokenization_request_id": "12345-678-90AB",
    "issuer_request_id": "ABCDEF123",
    "created_at":"2025-09-12T17:28:48.642437-04:00",
    "updated_at":"2025-09-12T17:28:48.642437-04:00",
    "type": "redeem",
    "status": "completed",
    "underlying_symbol": "TSLA",
    "token_symbol" : "TSLAx",
    "qty" : "123.45",
    "issuer" : "xstocks",
    "network": "solana",
    "wallet_address": "0x1234567A",
    "tx_hash" : "0x1234567A",
    "fees" : "0.567"
  }
]

Field

Description

tokenization_request_id

Unique request identifier assigned by Alpaca

issuer_request_id

Unique identifier assigned by the Issuer

created_at

Timestamp when the request was created

updated_at

Timestamp when the request was last updated

type

Tokenization request type. Valid values are:

  • mint
  • redeem

status

Current status of the tokenization request:

  • pending
  • completed
  • rejected

underlying_symbol

The underlying asset symbol

token_symbol

The token asset symbol

qty

The quantity for this request

issuer

The tokenized asset's Issuer. Valid values are:

  • xstocks

network

The token's blockchain's network. Valid values are:

  • solana

wallet_address

The wallet address associated with this request

tx_hash

The transaction hash on the blockchain

fees

The fees charged for this tokenization request

Glossary

  • Authorized Participant: An entity licensed to conduct digital asset business in the tokenized asset, e.g xstocks. The Issuer only sells tokenized assets to Authorized Participants (AP). The AP can sell the tokenized assets to their clients.
  • Issuer: Financial entity which purchases the underlying equity securities, wraps them and creates/issues tokens which are backed by the same.
  • Mint: The act of converting underlying equity securities into tokenized assets.
  • Redeem: The act of converting tokenized assets into their underlying equity securities.