Investor: Direct transfer
This guide is intended for qualified investors of the token. To proceed with any transaction, the user must also be the initiator of the operation.
This document provides a step-by-step guide for transferring tokens using the token transfers endpoints. For detailed parameter specifications and error codes, please refer to the Swagger documentation.
What You'll Need
- A registered and KYC-verified account.
- Qualified investor status for the specific token.
- A compatible wallet with sufficient funds for gas fees.
- The token ID of the asset you want to interact with.
- Make sure your investors have a created account.
Prerequisites:
To complete this use case, you will need to authenticate your request(s). You can generate your token by following these steps:
- Make sure to leverage an existing account from the correct role, e.g. Agent, Owner, Investor, etc.
- If this use case requires you to leverage an Agent account, make sure your 2FA is disabled via the Servicing portal.
- Navigate to the "Getting API access" page to generate the required JWT, thanks to your credentials.
- Add the JWT to the header of your request.
Complete Token Transfer Workflow
Step 1: Get Initials of counterpart investor
POST {base_url_servicing}/tokens/{tokenId}/holders/wallet/{walletAddress}
Step 2: Investor wallet verification
Investor wallets are required to undergo verification, which involves the investor signing a transaction to confirm ownership and control of the wallet.
Please visit the create and verify wallet guide.
Step 3: Initiate Transfer
Once the investor has validated his wallet, he can initiate the transfer.
Also, please note that only qualified investors can initiate and participate in token transfers. Please refer to our investor qualification flow for eligibility criteria, explanations.
POST /v2/assets/investor/transfers
With Payload:
{
"senderAddress": "string",
"recipientAddress": "string",
"tokenToSend": "UUID",
"tokenToSendAmount": "string"
}
Response: Returns transferId
and transactionPayloads
to sign.
Step 4: Complete Transfer (Choose One)
Refer to the guide based on the specific sign and broadcast solution your API integration requires by visiting the following link: Blockchain signature flow.
You can only complete transfers that you have initiated. Additionally, include the taskId
returned in the previous endpoint's response when calling the transaction logging endpoint.
Logging the transaction is essential to reconcile on-chain and off-chain flows. Since the user handles blockchain interactions on their own, we use the taskId
to:
- Identify the workflow uniquely.
- Maintain a consistent link between off-chain logic and on-chain activity.
- Ensure traceability and reliability.
Option A: Submit Transaction Hash
- Sign the transaction payload with your private key.
- Broadcast, on your end, the signed transaction to the blockchain.
- Log the transaction hash:
POST /v2/assets/investor/transfers/{transferId}/transactions
With Payload:
{
"transactionHash": "0x123..."
}
Option B: Submit Signed Payloads
- Sign the transaction payload with your private key.
- Send the signed payload for broadcasting:
POST /v2/assets/investor/transfers/{transferId}/payloads
With Payload:
{
"tasks": [
{
"taskId": "string",
"signedPayload": "string"
}
],
"signerWallet": "string"
}
Updated 10 days ago