๐ก Broadcast a signed transaction
Code samples
POST /api/v1/trx/transactions/broadcast
curl -X POST 'https://settla.net/api/v1/trx/transactions/broadcast' \
-H 'X-API-Key: $SETTLA_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"txID": "e5c5e129f0cb41a6d29c18b060f9dbd6992025da1cc769485c06e3c373169b41",
"raw_data": {
"ref_block_bytes": "88f0",
"ref_block_hash": "ef8831affaead8f8",
"expiration": 1788333366000,
"contract": [
{
"type": "TransferContract",
"parameter": {
"type_url": "type.googleapis.com/protocol.TransferContract",
"value": {
"owner_address": "TMuA6YqfCeX8EhbfYEg5y7S4DqzSJireY9",
"to_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
"amount": 1000
}
}
}
],
"timestamp": 1788333307556
},
"raw_data_hex": "0a0288f02208ef8831affaead8f840f0b5e68786345a66080112620a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412310a154182dd6b9966724ae2fdc79b416c7588da67ff1b3512154184716914c0fdf7110a44030d04d0c4923504d9cc18e80770a4ede2878634",
"signature": [
"4817931a156fa2e95fabac528daf33e1d09b34fb3ee2925beec879e40ce15c16a6ca9d2001524f29757fd9b57ada9432fac300aa21d8dfffa238c2a19232bb6c01"
],
"visible": true
}'
Submits a signed transaction to the network. Send back the entire object returned by /transactions/create, unmodified, with your signature added as a signature array of one hex string. A rejected broadcast still answers 200. The node reports the outcome in the body, not in the HTTP status, so never treat 200 as success on its own โ check result === true. On failure you get code and message instead; message is usually plain text but java-tron sometimes hex-encodes it, so decode it if it is all hex digits. Common code values: SIGERROR (missing or wrong signature), TRANSACTION_EXPIRATION_ERROR (you passed expiration), DUP_TRANSACTION_ERROR (already broadcast) and BANDWITH_ERROR (not enough bandwidth or TRX to cover the fee). A successful broadcast only means the transaction was accepted into the pool. Confirm it by polling GET /api/v1/trx/transactions/{hash} until block_number is set and result is SUCCESS.
Body parameter
{
"txID": "e5c5e129f0cb41a6d29c18b060f9dbd6992025da1cc769485c06e3c373169b41",
"raw_data": {
"ref_block_bytes": "88f0",
"ref_block_hash": "ef8831affaead8f8",
"expiration": 1788333366000,
"contract": [
{
"type": "TransferContract",
"parameter": {
"type_url": "type.googleapis.com/protocol.TransferContract",
"value": {
"owner_address": "TMuA6YqfCeX8EhbfYEg5y7S4DqzSJireY9",
"to_address": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",
"amount": 1000
}
}
}
],
"timestamp": 1788333307556
},
"raw_data_hex": "0a0288f02208ef8831affaead8f840f0b5e68786345a66080112620a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412310a154182dd6b9966724ae2fdc79b416c7588da67ff1b3512154184716914c0fdf7110a44030d04d0c4923504d9cc18e80770a4ede2878634",
"signature": [
"4817931a156fa2e95fabac528daf33e1d09b34fb3ee2925beec879e40ce15c16a6ca9d2001524f29757fd9b57ada9432fac300aa21d8dfffa238c2a19232bb6c01"
],
"visible": true
}
๐ ๏ธ Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| ยป txID | body | string | false | none |
| ยป raw_data | body | object | false | none |
| ยป raw_data_hex | body | string | false | none |
| ยป signature | body | [string] | false | One hex-encoded recoverable signature over txID. |
| ยป visible | body | boolean | false | none |
Example responses
200 Response โ Accepted into the mempool
{
"result": true,
"txid": "e5c5e129f0cb41a6d29c18b060f9dbd6992025da1cc769485c06e3c373169b41"
}
200 Response โ Real response to an unsigned transaction
{
"code": "SIGERROR",
"message": "Validate signature error: miss sig or contract",
"txid": "e5c5e129f0cb41a6d29c18b060f9dbd6992025da1cc769485c06e3c373169b41"
}
500 Response
{
"error": "Could not connect to TRX node."
}
๐ Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Broadcast outcome. Both acceptance and rejection are reported here โ branch on result. | Inline |
| 500 | Internal Server Error | Could not connect to TRX node | Inline |
๐ Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ยป result | boolean | false | none | Present and true only when the node accepted the transaction. |
| ยป txid | string | false | none | none |
| ยป code | string | false | none | Rejection reason; absent on success. |
| ยป message | string | false | none | Human-readable rejection reason, occasionally hex-encoded. Absent on success. |
Status Code 500
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ยป error | string | false | none | none |
| ยป details | object | false | none | Present only on a few validation errors. |