โ ๏ธ Send USDT (TRC20) from one address to another (deprecated)
Code samples
POST /api/v1/trx/account/send/usdt
curl -X POST 'https://settla.net/api/v1/trx/account/send/usdt' \
-H 'X-API-Key: $SETTLA_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"private_key": "<64 hex characters>",
"to_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
"amount": 2.5,
"fee_limit": 30
}'
DEPRECATED, shutdown 2026-12-01. The endpoint accepts the sender's private key in the request body; the service does not store or handle client keys.
Replacement: build the transaction with POST /api/v1/trx/transactions/create, sign it on your side and submit it with POST /api/v1/trx/transactions/broadcast.
Body parameter
{
"private_key": "<64 hex characters>",
"to_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
"amount": 2.5,
"fee_limit": 30
}
๐ ๏ธ Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| ยป private_key | body | string | true | Sender's private key. |
| ยป to_address | body | string | true | none |
| ยป amount | body | number | true | Amount in whole USDT, not in the 6-decimal unit โ 2.5 sends 2.5 USDT. |
| ยป fee_limit | body | number | false | Energy budget in TRX, default 15. The value is multiplied by 1 000 000 before it reaches the node, so 15 means a 15 TRX ceiling. A TRC20 transfer to an address that has never held USDT costs noticeably more energy โ raise this if transfers come back OUT_OF_ENERGY. |
Example responses
200 Response
{
"success": true,
"tx_id": "e5c5e129f0cb41a6d29c18b060f9dbd6992025da1cc769485c06e3c373169b41",
"from_address": "TMuA6YqfCeX8EhbfYEg5y7S4DqzSJireY9",
"to_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
"amount": 2.5,
"amount_trx": 2.5
}
400 Response โ missingFields
{
"error": "private_key, to_address and amount are required."
}
400 Response โ badAmount
{
"error": "Invalid amount or fee_limit."
}
400 Response โ rejectedByNode
{
"error": "Broadcast failed: Validate signature error: miss sig or contract"
}
500 Response
{
"error": "Could not connect to TRX node."
}
๐ Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | The transfer was signed and accepted by the node. Acceptance is not execution: a TRC20 transfer can still end up FAILED (OUT_OF_ENERGY) on chain, so confirm with GET /api/v1/trx/transactions/{hash}. | Inline |
| 400 | Bad Request | Validation failed, or the node refused the transaction | Inline |
| 500 | Internal Server Error | Could not connect to TRX node | Inline |
๐ Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ยป success | boolean | false | none | none |
| ยป tx_id | string | false | none | none |
| ยป from_address | string | false | none | none |
| ยป to_address | string | false | none | none |
| ยป amount | number | false | none | The request value, echoed back in whole USDT. |
| ยป amount_trx | number | false | none | Duplicate of amount, despite the name โ it is the USDT figure, not a TRX conversion. There is no amount_usdt field. |
Status Code 400
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ยป error | string | false | none | none |
| ยป details | object | false | none | Present only on a few validation errors. |
Status Code 500
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ยป error | string | false | none | none |
| ยป details | object | false | none | Present only on a few validation errors. |