curl "https://sandbox-api.tender.cash/v1/api/conversions/fee/ethereum/usdt/100?toChain=solana&toCoin=sol" \
-H "x-access-id: your-access-id-here" \
-H "x-request-id: 550e8400-e29b-41d4-a716-446655440000" \
-H "x-timestamp: 2026-10-15T09:45:53.000Z" \
-H "authorization: <signature>"
curl "https://sandbox-api.tender.cash/v1/api/conversions/fee/ethereum/usdt/100?toChain=fiat&toCoin=ngn" \
-H "x-access-id: your-access-id-here" \
-H "x-request-id: 550e8400-e29b-41d4-a716-446655440000" \
-H "x-timestamp: 2026-10-15T09:45:53.000Z" \
-H "authorization: <signature>"
{
"status": "success",
"message": "success",
"data": {
"from": { "chain": "ethereum", "currency": "usdt", "symbol": "USDT", "amount": 100, "amountUSD": 100 },
"to": { "chain": "solana", "currency": "sol", "symbol": "SOL", "amount": 0.6633, "amountUSD": 99.5 },
"fee": { "fee": 0.5, "feeUSD": 0.5 },
"rate": { "value": "0.006667", "perSourceUnit": "0.006700", "symbol": "SOL", "overridden": false }
}
}
{
"status": "error",
"message": "Invalid destination currency",
"data": {}
}
Calculate Conversion Fee
Quote the fee, rate and expected output for a conversion before you create it
curl "https://sandbox-api.tender.cash/v1/api/conversions/fee/ethereum/usdt/100?toChain=solana&toCoin=sol" \
-H "x-access-id: your-access-id-here" \
-H "x-request-id: 550e8400-e29b-41d4-a716-446655440000" \
-H "x-timestamp: 2026-10-15T09:45:53.000Z" \
-H "authorization: <signature>"
curl "https://sandbox-api.tender.cash/v1/api/conversions/fee/ethereum/usdt/100?toChain=fiat&toCoin=ngn" \
-H "x-access-id: your-access-id-here" \
-H "x-request-id: 550e8400-e29b-41d4-a716-446655440000" \
-H "x-timestamp: 2026-10-15T09:45:53.000Z" \
-H "authorization: <signature>"
{
"status": "success",
"message": "success",
"data": {
"from": { "chain": "ethereum", "currency": "usdt", "symbol": "USDT", "amount": 100, "amountUSD": 100 },
"to": { "chain": "solana", "currency": "sol", "symbol": "SOL", "amount": 0.6633, "amountUSD": 99.5 },
"fee": { "fee": 0.5, "feeUSD": 0.5 },
"rate": { "value": "0.006667", "perSourceUnit": "0.006700", "symbol": "SOL", "overridden": false }
}
}
{
"status": "error",
"message": "Invalid destination currency",
"data": {}
}
x-access-id, x-request-id, x-timestamp, and an HMAC-SHA256
authorization signature. See Authentication.Headers
{"timeStamp":"<x-timestamp>","requestId":"<x-request-id>","accessId":"<x-access-id>"}, signed with your access secret. The request body is not part of the signature.Example: "pV3n0o8kq0lK2mJ8bZ1yq3Yt6hR0cXK9u4mVJ2l9sE0=""2026-10-15T09:45:53.000Z""550e8400-e29b-41d4-a716-446655440000""your-access-id-here"Path parameters
"ethereum"usdt, not the symbol USDT)Example: "usdt""100"Query parameters
fiat to quote a fiat conversion.Example: "solana"ngn) when toChain
is fiat. If omitted, the destination is the source coin.Example: "sol"Response
success on successExample: "success""success"Show data properties
Show data properties
Show rate properties
Show rate properties
"0.006667"from.symbol = perSourceUnit rate.symbol”.Example: "0.006700""SOL"true if the quote uses a fixed rate instead of the live market rateExample: falseErrors
All return HTTP 400.| Message | Cause |
|---|---|
Amount must be greater than zero | amount is zero, negative or not a number |
Invalid chain | Unknown source chain |
Invalid currency | Unknown source coin |
Exchange price not available | No price for the source coin |
Invalid destination chain | Unknown toChain |
Invalid destination currency | Unknown toCoin |
Exchange price not available for destination currency | No price for toCoin |
Invalid destination exchange rate | The destination price is unusable |
curl "https://sandbox-api.tender.cash/v1/api/conversions/fee/ethereum/usdt/100?toChain=solana&toCoin=sol" \
-H "x-access-id: your-access-id-here" \
-H "x-request-id: 550e8400-e29b-41d4-a716-446655440000" \
-H "x-timestamp: 2026-10-15T09:45:53.000Z" \
-H "authorization: <signature>"
curl "https://sandbox-api.tender.cash/v1/api/conversions/fee/ethereum/usdt/100?toChain=fiat&toCoin=ngn" \
-H "x-access-id: your-access-id-here" \
-H "x-request-id: 550e8400-e29b-41d4-a716-446655440000" \
-H "x-timestamp: 2026-10-15T09:45:53.000Z" \
-H "authorization: <signature>"
{
"status": "success",
"message": "success",
"data": {
"from": { "chain": "ethereum", "currency": "usdt", "symbol": "USDT", "amount": 100, "amountUSD": 100 },
"to": { "chain": "solana", "currency": "sol", "symbol": "SOL", "amount": 0.6633, "amountUSD": 99.5 },
"fee": { "fee": 0.5, "feeUSD": 0.5 },
"rate": { "value": "0.006667", "perSourceUnit": "0.006700", "symbol": "SOL", "overridden": false }
}
}
{
"status": "error",
"message": "Invalid destination currency",
"data": {}
}
Authorizations
Signed (HMAC) authentication. Required headers: x-access-id, x-request-id (UUID v4), x-timestamp (ISO 8601, must be within 5 minutes of server time), and authorization: the Base64 HMAC-SHA256 of the JSON string {"timeStamp":"","requestId":"","accessId":""} (keys in that order, no whitespace) using your access secret. The request body, method and path are not signed. The API key must be linked to an outlet.
Headers
Base64-encoded HMAC-SHA256 signature of {"timeStamp":"<x-timestamp>","requestId":"<x-request-id>","accessId":"<x-access-id>"}, signed with your access secret. The request body is not part of the signature.
ISO 8601 timestamp; must be within 5 minutes of server time
A unique UUID v4 per request
Path Parameters
Source chain ID
Source coin ID
Amount in the source coin; must be greater than zero
Query Parameters
Destination chain ID, or fiat
Destination coin ID, or fiat currency ID when toChain is fiat