ENSC Business API
Business DashboardWebsite
  • Introduction
    • Use Cases
    • Configurations
  • Ready To Integrate?
  • Getting Started
    • Security
      • Generating Keys
      • Encrypting / Decrypting Request
  • Integrations
    • Contract Address
    • Enums
    • Authorization
    • Endpoints
      • Get Bank Lists
      • Token Balance
      • Token Approval
      • Mint
      • Mint Allocation
      • Redeem
      • Transfer
      • Withdraw
      • Verify Payout/Withdrawal
  • Libraries/SDKs
    • Client Libraries
Powered by GitBook
On this page
  1. Integrations
  2. Endpoints

Transfer

Transfer ENSC between wallets

PreviousRedeemNextWithdraw

Last updated 2 months ago

POST /transfer

This endpoint generates an unsigned transaction for transferring tokens between wallets. It is designed specifically for transferring ENSC tokens only. The service validates both the sender and recipient addresses, confirms that the asset type is ENSC. It also checks that the sender has sufficient token and (pass the sender parameter to approve the token allowance).

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <api_key>

Body

Name
Type
Description

from

string

The wallet address that holds the tokens (sender).

recipient

string

The wallet address that will receive the tokens.

assetType

string

The asset type for the transfer. Must be ENSC.

amount

number

The number of tokens to transfer.

Example

{
  "from": "0xsenderaddress",
  "recipient": "0xrecipientaddress",
  "assetType": "ENSC",
  "amount": 5
}
{
  "status": 200,
  "message": "Transfer transaction generated successfully",
  "data": {
    "to": "0xTokenContractAddressXYZ",
    "nonce": "12",
    "gasLimit": "0x186a0",
    "gasPrice": "20000000000",
    "data": "0xEncodedTransferFunctionCall",
    "fromAddress": "0xsenderaddress",
    "toAddress": "0xrecipientaddress",
    "value": "5000000000000000000"  // Amount in Wei (for 5 tokens with 18 decimals)
  }
}

Common Error Responses

{
  "status": 400,
  "error": "Invalid Request",
  "message": "Invalid sender address",
  "details": { "receivedAddress": "0xInvalidSender" }
}
{
  "status": 400,
  "error": "Invalid Request",
  "message": "Invalid recipient address",
  "details": { "receivedAddress": "0xInvalidRecipient" }
}
{
  "status": 400,
  "error": "Invalid Asset",
  "message": "Only ENSC transfers are allowed",
  "details": { "supportedAssets": ["ENSC"] }
}
// ENSC has 18 decimals, requiredBalance is 5 and currentBalance is 3
{
  "status": 400,
  "error": "Insufficient Balance",
  "message": "Sender does not have enough ENSC balance",
  "details": {
    "requiredBalance": "5000000000000000000",
    "currentBalance": "3000000000000000000"
  }
}
{
  "status": 400,
  "error": "Insufficient Allowance",
  "message": "Sender has not approved enough tokens for transfer",
  "details": {
    "requiredAllowance": "5000000000000000000",
    "currentAllowance": "2000000000000000000"
  }
}
balance
allowance