Burn API
Overview
The Burn API enables you to convert universal EVM tokens (uSOL, uXRP, uSUI, uDOGE, uZEC) back into their native equivalents on the original chains (SOL, XRP, SUI, DOGE, ZEC).
How Burning Works
Create Burn Configuration: Specify destination chain and address for receiving native tokens
Receive Transfer Address: The API returns the EVM address where you should send your universal tokens
Transfer Universal Tokens: Send uAssets to the provided address on the EVM chain
Automatic Processing: The system detects the transfer and automatically initiates redemption
Receive Native Tokens: Native tokens are sent to your specified destination address
⚠️ CRITICAL WARNING: You MUST create a destination address configuration (Step 1) BEFORE sending any universal tokens to the merchant controller address. If you send tokens without first creating a burn configuration, your funds will remain locked at the merchant address and cannot be redeemed. Always call
POST /burn/walletsfirst to set up your destination address, then send your tokens.
Important Concepts
Wallet Address Correlation
All burn operations are correlated with the EVM wallet address specified in your JWT token:
Burn configurations are associated with your EVM wallet
The system tracks which universal tokens belong to which wallet
To burn from a different EVM address, create a new JWT token for that address
Transfer Address
The uAsset transfer address (merchant address) is where you send your universal tokens for burning:
This is a centralized merchant-controlled address
Same address for all users (e.g.,
0x5A6e781104b057C558f4CAed97915B67f5e71b78on mainnet)The system identifies your transaction by your wallet address and routes accordingly
Provided in the burn wallet creation response
Endpoints
Create Burn Wallet Configuration
Creates a burn configuration specifying where to receive redeemed native tokens.
Endpoint: POST /burn/wallets
Headers:
Authorization: Bearer <jwt_token>
Content-Type: application/jsonRequest Body:
{
"destinationChain": "sol",
"destinationAddress": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"memo": null
}Parameters:
destinationChain(string, required): Destination chain symbolProduction mainnet values:
sol,xrp,sui,doge,zec
destinationAddress(string, required): Your address on the destination chain where native tokens will be sentmemo(string, optional): Destination tag/memoRequired for XRP/TXRP: Numeric destination tag (max 10 digits, max value: 4294967295)
Optional for other chains
Response (201 Created):
{
"success": true,
"data": {
"uAssetTransferAddress": "0x5A6e781104b057C558f4CAed97915B67f5e71b78",
"destinationChain": "sol",
"destinationAddress": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"memo": null
}
}Response Fields:
uAssetTransferAddress: The EVM address where you should send universal tokens for burningdestinationChain: The chain where you'll receive native tokensdestinationAddress: Your address on the destination chainmemo: Destination tag/memo (for XRP)
cURL Example:
curl -X POST https://api.universal.xyz/issuance-redemption/burn/wallets \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." \
-H "Content-Type: application/json" \
-d '{
"destinationChain": "sol",
"destinationAddress": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
}'XRP Example with Memo:
curl -X POST https://api.universal.xyz/issuance-redemption/burn/wallets \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." \
-H "Content-Type: application/json" \
-d '{
"destinationChain": "xrp",
"destinationAddress": "rN7n7otQDd6FczFgLdlqtyMVUXWqzp1GE1",
"memo": "2740406962"
}'Get Burn Wallet Configurations
Retrieves all burn configurations for the authenticated wallet.
Endpoint: GET /burn/wallets
Headers:
Authorization: Bearer <jwt_token>Response (200 OK):
{
"success": true,
"data": [
{
"uAssetTransferAddress": "0x5A6e781104b057C558f4CAed97915B67f5e71b78",
"destinationChain": "sol",
"destinationAddress": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"memo": null
},
{
"uAssetTransferAddress": "0x5A6e781104b057C558f4CAed97915B67f5e71b78",
"destinationChain": "xrp",
"destinationAddress": "rN7n7otQDd6FczFgLdlqtyMVUXWqzp1GE1",
"memo": "2740406962"
}
]
}cURL Example:
curl -X GET https://api.universal.xyz/issuance-redemption/burn/wallets \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."Update Burn Destination Address
Updates the destination address for an existing burn configuration.
Endpoint: PUT /burn/wallets
Headers:
Authorization: Bearer <jwt_token>
Content-Type: application/jsonRequest Body:
{
"destinationChain": "sol",
"destinationAddress": "5VzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtDEF",
"memo": null
}Response (200 OK):
{
"success": true,
"data": {
"uAssetTransferAddress": "0x5A6e781104b057C558f4CAed97915B67f5e71b78",
"destinationChain": "sol",
"destinationAddress": "5VzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtDEF",
"memo": null
}
}Supported Combinations
base, arbitrum, katana, world, unichain
uSOL
sol
SOL
base, arbitrum, katana, world, unichain
uXRP
xrp
XRP
base, arbitrum, katana, world, unichain
uSUI
sui
SUI
base, arbitrum, katana, world, unichain
uDOGE
doge
DOGE
base, arbitrum, katana, world, unichain
uZEC
zec
ZEC
Minimum Burn Amounts
uSOL
1000000000000000000 wei
1.0 uSOL
uXRP
25000000000000000000 wei
25.0 uXRP
uSUI
1000000000000000000 wei
1.0 uSUI
uBTC
100000000000000 wei
0.0001 uBTC
uDOGE
100000000000000000 wei
0.1 uDOGE
uZEC
100000000000000000 wei
0.1 uZEC
Important: XRP has a higher minimum redemption requirement of 25 XRP due to XRP Ledger reserve requirements.
Fee Structure
Platform Fees
Currently, all platform fees are 0% for all tokens.
uSOL
0%
uXRP
0%
uSUI
0%
uDOGE
0%
uZEC
0%
Important: The burn/redemption process is completely free from the customer perspective. The amount of universal tokens you burn equals the amount of native tokens you receive (1:1 conversion, excluding blockchain network fees which are covered by universal.xyz).
Gas Fees
All blockchain gas fees are covered by universal.xyz. Users do not pay any gas fees for burn operations.
Chain-Specific Address Formats
Solana (sol)
sol)Format: Base58 encoded, 32-44 characters
Example:
9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWMValidation:
^[1-9A-HJ-NP-Za-km-z]{32,44}$
XRP Ledger (xrp)
xrp)Format: Classic address starting with 'r', 25-34 characters
Example:
rN7n7otQDd6FczFgLdlqtyMVUXWqzp1GE1Validation:
^r[1-9A-HJ-NP-Za-km-z]{24,33}$Memo Required: Numeric destination tag (1-10 digits, max: 4294967295)
Memo Example:
2740406962
Sui (sui)
sui)Format: Hex string with
0xprefix, 66 characters totalExample:
0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdefValidation:
^0x[a-fA-F0-9]{64}$
Dogecoin (doge)
doge)Format: Mainnet addresses start with 'D', 'A', or '9', 34 characters
Example:
D7Z1n7FQKBTMhBqpL8xNjfR9VKXsCqHsKhValidation:
^[DA9][1-9A-HJ-NP-Za-km-z]{33}$
Zcash (zec)
zec)Format: Transparent addresses starting with
t1, 35 charactersExample:
t1abcdefghijklmnopqrstuvwxyz1234567Validation:
^t1[1-9A-HJ-NP-Za-km-z]{33}$Note: Shielded z-addresses are NOT supported
Error Responses
Wallet Already Exists
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"success": false,
"message": "Wallet already exists for this chain"
}Invalid Destination Address
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"success": false,
"message": "Invalid Solana address format. Must be base58 encoded, 32-44 characters."
}Missing Memo for XRP
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"success": false,
"message": "Memo is required for XRP and TXRP chains"
}Invalid Memo Format
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"success": false,
"message": "Memo must be numeric for XRP and TXRP chains"
}Below Minimum Amount
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"success": false,
"message": "Amount below minimum burn threshold"
}Workflow After Creating Burn Configuration
Create Burn Configuration: Set up destination address via
POST /burn/walletsNote the Transfer Address: Save the
uAssetTransferAddressfrom the responseTransfer Universal Tokens: Send uAssets from your EVM wallet to the transfer address
Automatic Detection: The system monitors the blockchain and detects your transfer
Automatic Redemption: A Temporal workflow processes the burn and sends native tokens to your destination address (1:1 conversion - you receive exactly what you sent)
Track Progress: Use the Orders API to monitor the status
Typical Timeline:
Base to SOL/XRP/SUI: ~2-5 minutes after confirmation
Arbitrum to any: ~2-5 minutes after confirmation
Base/Arbitrum to DOGE/ZEC: ~15-30 minutes (due to blockchain processing)
Amount Received:
1:1 Conversion: If you burn 10 uSOL, you receive 10 SOL (no fees deducted)
No Platform Fees: 0% platform fees on all tokens
No Gas Fees: All blockchain fees covered by universal.xyz
Best Practices
Validate Addresses: Ensure destination addresses are correctly formatted for the target chain
Include Memo for XRP: Always provide a valid numeric memo/destination tag for XRP burns
Check Minimums: Verify amounts meet minimum burn thresholds (especially 25 XRP minimum for uXRP)
Update Carefully: When updating destination addresses, ensure the new address is valid
Monitor Orders: Track burn operations through the Orders API
1:1 Conversion: Remember you receive exactly what you burn - no fees deducted
Next Steps
Orders API - Track burn operation status
Mint API - Mint universal tokens from native tokens
Examples - Complete burn workflow examples
Last updated