> For the complete documentation index, see [llms.txt](https://docs.trac.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.trac.network/documentation/developers/mainnet/main-settlement-bus/rpc-api-v1.md).

# RPC API v1

Use these endpoints to read ledger state and submit transactions.

### Network State

## Get current TXV

> Returns the current transaction validity hash (\`txv\`) as hex.

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Network"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/txv":{"get":{"tags":["Network"],"summary":"Get current TXV","description":"Returns the current transaction validity hash (`txv`) as hex.","responses":{"200":{"description":"TXV returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxvResponse"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"schemas":{"TxvResponse":{"type":"object","required":["txv"],"properties":{"txv":{"type":"string"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}},"responses":{"InternalServerError":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}
```

#### Get fee

Returns the fee used for transaction submission.

## GET /v1/fee

> Get current transaction fee

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Network"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/fee":{"get":{"tags":["Network"],"summary":"Get current transaction fee","responses":{"200":{"description":"Fee returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeResponse"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"schemas":{"FeeResponse":{"type":"object","required":["fee"],"properties":{"fee":{"type":"string"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}},"responses":{"InternalServerError":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}
```

#### Get confirmed length

Returns the current confirmed ledger length.

## GET /v1/confirmed-length

> Get confirmed ledger length

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Network"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/confirmed-length":{"get":{"tags":["Network"],"summary":"Get confirmed ledger length","responses":{"200":{"description":"Confirmed length returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmedLengthResponse"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"schemas":{"ConfirmedLengthResponse":{"type":"object","required":["confirmed_length"],"properties":{"confirmed_length":{"type":"integer"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}},"responses":{"InternalServerError":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}
```

#### Get unconfirmed length

Returns the current unconfirmed ledger length.

## GET /v1/unconfirmed-length

> Get unconfirmed ledger length

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Network"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/unconfirmed-length":{"get":{"tags":["Network"],"summary":"Get unconfirmed ledger length","responses":{"200":{"description":"Unconfirmed length returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnconfirmedLengthResponse"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"schemas":{"UnconfirmedLengthResponse":{"type":"object","required":["unconfirmed_length"],"properties":{"unconfirmed_length":{"type":"integer"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}},"responses":{"InternalServerError":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}
```

### Wallet & Account

#### Get balance

Returns the current balance for an address.

## Get wallet balance

> Returns balance for the specified wallet address.\
> \
> \`confirmed\` query behavior:\
> \- missing: defaults to confirmed view\
> \- \`true\`: confirmed view\
> \- \`false\`: unconfirmed view\
> \- any other value: falls back to unconfirmed view<br>

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Wallet"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/balance/{address}":{"get":{"tags":["Wallet"],"summary":"Get wallet balance","description":"Returns balance for the specified wallet address.\n\n`confirmed` query behavior:\n- missing: defaults to confirmed view\n- `true`: confirmed view\n- `false`: unconfirmed view\n- any other value: falls back to unconfirmed view\n","parameters":[{"$ref":"#/components/parameters/AddressParam"},{"$ref":"#/components/parameters/ConfirmedQueryParamLenient"}],"responses":{"200":{"description":"Balance returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceResponse"}}}},"400":{"description":"Missing address.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"parameters":{"AddressParam":{"name":"address","in":"path","required":true,"description":"Wallet/account address.","schema":{"type":"string","minLength":1}},"ConfirmedQueryParamLenient":{"name":"confirmed","in":"query","required":false,"description":"Balance endpoint behavior:\n- `true` for confirmed view\n- `false` for unconfirmed view\n- omitted => confirmed view\n- any other value => treated as unconfirmed view\n","schema":{"type":"string","default":"true"}}},"schemas":{"BalanceResponse":{"type":"object","required":["address","balance"],"properties":{"address":{"type":"string"},"balance":{"type":"string"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}},"responses":{"InternalServerError":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}
```

#### Get account details

Returns account details for an address.

## Get account details

> Returns account details (roles, keys, balances and license).\
> \
> \`confirmed\` must be exactly \`true\` or \`false\`.<br>

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Wallet"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/account/{address}":{"get":{"tags":["Wallet"],"summary":"Get account details","description":"Returns account details (roles, keys, balances and license).\n\n`confirmed` must be exactly `true` or `false`.\n","parameters":[{"$ref":"#/components/parameters/AddressParam"},{"$ref":"#/components/parameters/ConfirmedQueryParamStrict"}],"responses":{"200":{"description":"Account details returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountDetailsResponse"}}}},"400":{"description":"Invalid address or invalid `confirmed` parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"parameters":{"AddressParam":{"name":"address","in":"path","required":true,"description":"Wallet/account address.","schema":{"type":"string","minLength":1}},"ConfirmedQueryParamStrict":{"name":"confirmed","in":"query","required":false,"description":"Must be exactly `true` or `false`.","schema":{"type":"string","enum":["true","false"],"default":"true"}}},"schemas":{"AccountDetailsResponse":{"type":"object","required":["address","writingKey","isWhitelisted","isValidator","isIndexer","license","balance","stakedBalance"],"properties":{"address":{"type":"string"},"writingKey":{"description":"64-character hex writing key.\nCan be all zeros when no writer key is assigned.\n","type":"string","pattern":"^[A-Fa-f0-9]{64}$"},"isWhitelisted":{"type":"boolean"},"isValidator":{"type":"boolean"},"isIndexer":{"type":"boolean"},"license":{"type":"string","nullable":true},"balance":{"type":"string"},"stakedBalance":{"type":"string"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}},"responses":{"InternalServerError":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}
```

### Transactions - Read

#### List transaction hashes

Returns transaction hashes for a confirmed-length range.

{% hint style="info" %}
The start length must be less than or equal to the end length. The range must fall within the current confirmed length.
{% endhint %}

## Get transaction hashes by confirmed-length range

> Returns transaction hashes in inclusive range.\
> \
> Rules:\
> \- both params must be integers\
> \- both params must be non-negative\
> \- end must be greater than or equal to start\
> \- max difference is 1000<br>

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Transactions"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/tx-hashes/{start_confirmed_length}/{end_confirmed_length}":{"get":{"tags":["Transactions"],"summary":"Get transaction hashes by confirmed-length range","description":"Returns transaction hashes in inclusive range.\n\nRules:\n- both params must be integers\n- both params must be non-negative\n- end must be greater than or equal to start\n- max difference is 1000\n","parameters":[{"$ref":"#/components/parameters/StartConfirmedLengthParam"},{"$ref":"#/components/parameters/EndConfirmedLengthParam"}],"responses":{"200":{"description":"Hashes returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxHashesResponse"}}}},"400":{"description":"Invalid range parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"parameters":{"StartConfirmedLengthParam":{"name":"start_confirmed_length","in":"path","required":true,"description":"Start of confirmed-length range (inclusive).","schema":{"type":"integer","minimum":0}},"EndConfirmedLengthParam":{"name":"end_confirmed_length","in":"path","required":true,"description":"End of confirmed-length range (inclusive).","schema":{"type":"integer","minimum":0}}},"schemas":{"TxHashesResponse":{"type":"object","required":["hashes"],"properties":{"hashes":{"type":"array","items":{"$ref":"#/components/schemas/TxHashItem"}}}},"TxHashItem":{"type":"object","required":["hash","confirmed_length"],"properties":{"hash":{"type":"string"},"confirmed_length":{"type":"integer"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}},"responses":{"InternalServerError":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}
```

#### Get transaction by hash

Returns the transaction payload by hash.

{% hint style="info" %}
If the endpoint supports a `confirmed` query parameter, use it to select the confirmed view. Use the parameter details shown in the operation for default behavior.
{% endhint %}

## Get confirmed transaction details

> Returns normalized details for confirmed transaction hash.\
> \
> Current handler behavior:\
> \- if not found, returns \`404\` with \`{ "txDetails": null }\`\
> \- hash format is not strictly validated at handler layer<br>

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Transactions"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/tx/{transactionHash}":{"get":{"tags":["Transactions"],"summary":"Get confirmed transaction details","description":"Returns normalized details for confirmed transaction hash.\n\nCurrent handler behavior:\n- if not found, returns `404` with `{ \"txDetails\": null }`\n- hash format is not strictly validated at handler layer\n","parameters":[{"$ref":"#/components/parameters/TransactionHashParamLoose"}],"responses":{"200":{"description":"Transaction details returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxDetailsResponse"}}}},"404":{"description":"Transaction not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxDetailsNotFoundResponse"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"parameters":{"TransactionHashParamLoose":{"name":"transactionHash","in":"path","required":true,"description":"Transaction hash.","schema":{"type":"string","minLength":1}}},"schemas":{"TxDetailsResponse":{"type":"object","required":["txDetails"],"properties":{"txDetails":{"$ref":"#/components/schemas/TxDetailsPayload"}}},"TxDetailsPayload":{"type":"object","description":"Normalized transaction payload.","required":["type","address"],"properties":{"type":{"type":"integer"},"address":{"type":"string"},"tro":{"$ref":"#/components/schemas/TxOperationPayload"},"txo":{"$ref":"#/components/schemas/TxOperationPayload"}},"oneOf":[{"required":["tro"]},{"required":["txo"]}],"additionalProperties":false},"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true},"TxDetailsNotFoundResponse":{"type":"object","required":["txDetails"],"properties":{"txDetails":{"type":"object","nullable":true}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}},"responses":{"InternalServerError":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}
```

#### Get transaction details

Returns the transaction plus decoded and enriched details.

**`txDetails.tro` example (full field set)**

Examples for `txDetails.tro` should include all fields below. This avoids “missing field” ambiguity in client code.

```json
{
  "tx": "<transaction-hash>",
  "txv": "<transaction-vailidity>",
  "to": "<to-address>",
  "am": "<amount>",
  "in": "<requester-nonce>",
  "is": "<requester-signature>",
  "va": "<validator-address>",
  "vn": "<validator-nonce>",
  "vs": "<validator-signature>"
}
```

## Get transaction details with confirmation metadata

> Returns transaction details with \`confirmed\_length\` and \`fee\`.\
> \
> \`confirmed\` must be exactly \`true\` or \`false\`.<br>

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Transactions"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/tx/details/{transactionHash}":{"get":{"tags":["Transactions"],"summary":"Get transaction details with confirmation metadata","description":"Returns transaction details with `confirmed_length` and `fee`.\n\n`confirmed` must be exactly `true` or `false`.\n","parameters":[{"$ref":"#/components/parameters/TransactionHashParamStrict"},{"$ref":"#/components/parameters/ConfirmedQueryParamStrict"}],"responses":{"200":{"description":"Transaction details returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxDetailsWithMetaResponse"}}}},"400":{"description":"Invalid transaction hash or invalid `confirmed` parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Transaction not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"parameters":{"TransactionHashParamStrict":{"name":"transactionHash","in":"path","required":true,"description":"Transaction hash (64-char hex string).","schema":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$"}},"ConfirmedQueryParamStrict":{"name":"confirmed","in":"query","required":false,"description":"Must be exactly `true` or `false`.","schema":{"type":"string","enum":["true","false"],"default":"true"}}},"schemas":{"TxDetailsWithMetaResponse":{"type":"object","required":["txDetails","confirmed_length","fee"],"properties":{"txDetails":{"$ref":"#/components/schemas/TxDetailsPayload"},"confirmed_length":{"type":"integer","description":"Confirmed ledger length (0 when transaction is not yet confirmed)."},"fee":{"type":"string"}}},"TxDetailsPayload":{"type":"object","description":"Normalized transaction payload.","required":["type","address"],"properties":{"type":{"type":"integer"},"address":{"type":"string"},"tro":{"$ref":"#/components/schemas/TxOperationPayload"},"txo":{"$ref":"#/components/schemas/TxOperationPayload"}},"oneOf":[{"required":["tro"]},{"required":["txo"]}],"additionalProperties":false},"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}}}}
```

### Transactions - Write

#### Resolve transaction payloads (bulk)

Fetches multiple transaction payloads in one request.

{% hint style="info" %}
This endpoint enforces request and response size limits. Split requests into smaller batches when you hit limits.
{% endhint %}

## Get transaction payloads in bulk

> Returns payloads for provided transaction hash list.\
> \
> Limits:\
> \- max \`1500\` hashes per request\
> \- request body limit: \`1\_000\_000\` bytes\
> \- response body limit: \`2\_000\_000\` bytes<br>

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Transactions"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/tx-payloads-bulk":{"post":{"tags":["Transactions"],"summary":"Get transaction payloads in bulk","description":"Returns payloads for provided transaction hash list.\n\nLimits:\n- max `1500` hashes per request\n- request body limit: `1_000_000` bytes\n- response body limit: `2_000_000` bytes\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxPayloadsBulkRequest"}}}},"responses":{"200":{"description":"Payloads returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxPayloadsBulkResponse"}}}},"400":{"description":"Invalid request body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Request/response size limits exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"TxPayloadsBulkRequest":{"type":"object","required":["hashes"],"properties":{"hashes":{"type":"array","minItems":1,"maxItems":1500,"items":{"type":"string"}}}},"TxPayloadsBulkResponse":{"type":"object","required":["results","missing"],"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/TxPayloadBulkResultItem"}},"missing":{"type":"array","items":{"type":"string"}}}},"TxPayloadBulkResultItem":{"type":"object","required":["hash","payload"],"properties":{"hash":{"type":"string"},"payload":{"$ref":"#/components/schemas/TxDetailsPayload"}}},"TxDetailsPayload":{"type":"object","description":"Normalized transaction payload.","required":["type","address"],"properties":{"type":{"type":"integer"},"address":{"type":"string"},"tro":{"$ref":"#/components/schemas/TxOperationPayload"},"txo":{"$ref":"#/components/schemas/TxOperationPayload"}},"oneOf":[{"required":["tro"]},{"required":["txo"]}],"additionalProperties":false},"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}}}}
```

#### Broadcast signed transaction

Broadcasts a signed transaction payload to the network.

{% hint style="warning" %}
This endpoint may return `429 Too Many Requests` when rate limited. Retry with backoff.
{% endhint %}

## Broadcast signed transaction

> Broadcasts a signed transaction payload.\
> \
> Request requirements:\
> \- body must be valid JSON\
> \- body must contain \`payload\`\
> \- \`payload\` must be valid Base64 string<br>

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"tags":[{"name":"Transactions"}],"servers":[{"url":"https://tracapi.trac.network","description":"Trac Network Mainnet"}],"paths":{"/v1/broadcast-transaction":{"post":{"tags":["Transactions"],"summary":"Broadcast signed transaction","description":"Broadcasts a signed transaction payload.\n\nRequest requirements:\n- body must be valid JSON\n- body must contain `payload`\n- `payload` must be valid Base64 string\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BroadcastTransactionRequest"}}}},"responses":{"200":{"description":"Transaction accepted and broadcasted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BroadcastTransactionResponse"}}}},"400":{"description":"Invalid request payload.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Broadcast retry limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"BroadcastTransactionRequest":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"Base64-encoded signed transaction."}}},"BroadcastTransactionResponse":{"type":"object","required":["result"],"properties":{"result":{"$ref":"#/components/schemas/BroadcastResult"}}},"BroadcastResult":{"type":"object","required":["message","signedLength","unsignedLength","tx"],"properties":{"message":{"type":"string"},"signedLength":{"type":"integer"},"unsignedLength":{"type":"integer"},"tx":{"type":"string"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}}}}
```

### Errors & Limits

#### Confirmed query behavior

Some read endpoints accept a `confirmed` query parameter. It selects a confirmed view versus an unconfirmed view. Treat it as a consistency knob for reads.

#### `tx-hashes` range constraints

Ranges are constrained by confirmed length. Invalid ranges should be treated as client errors. Request smaller windows if you hit server limits.

#### Bulk request limits

`/v1/tx-payloads-bulk` is designed for batching. Keep batches small and bounded.

#### Broadcast rate limiting

`/v1/broadcast-transaction` can respond with `429`. Back off and retry.

### Schemas

## The TxDetailsWithMetaResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxDetailsWithMetaResponse":{"type":"object","required":["txDetails","confirmed_length","fee"],"properties":{"txDetails":{"$ref":"#/components/schemas/TxDetailsPayload"},"confirmed_length":{"type":"integer","description":"Confirmed ledger length (0 when transaction is not yet confirmed)."},"fee":{"type":"string"}}},"TxDetailsPayload":{"type":"object","description":"Normalized transaction payload.","required":["type","address"],"properties":{"type":{"type":"integer"},"address":{"type":"string"},"tro":{"$ref":"#/components/schemas/TxOperationPayload"},"txo":{"$ref":"#/components/schemas/TxOperationPayload"}},"oneOf":[{"required":["tro"]},{"required":["txo"]}],"additionalProperties":false},"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true}}}}
```

## The TxPayloadsBulkResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxPayloadsBulkResponse":{"type":"object","required":["results","missing"],"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/TxPayloadBulkResultItem"}},"missing":{"type":"array","items":{"type":"string"}}}},"TxPayloadBulkResultItem":{"type":"object","required":["hash","payload"],"properties":{"hash":{"type":"string"},"payload":{"$ref":"#/components/schemas/TxDetailsPayload"}}},"TxDetailsPayload":{"type":"object","description":"Normalized transaction payload.","required":["type","address"],"properties":{"type":{"type":"integer"},"address":{"type":"string"},"tro":{"$ref":"#/components/schemas/TxOperationPayload"},"txo":{"$ref":"#/components/schemas/TxOperationPayload"}},"oneOf":[{"required":["tro"]},{"required":["txo"]}],"additionalProperties":false},"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true}}}}
```

## The TxPayloadBulkResultItem object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxPayloadBulkResultItem":{"type":"object","required":["hash","payload"],"properties":{"hash":{"type":"string"},"payload":{"$ref":"#/components/schemas/TxDetailsPayload"}}},"TxDetailsPayload":{"type":"object","description":"Normalized transaction payload.","required":["type","address"],"properties":{"type":{"type":"integer"},"address":{"type":"string"},"tro":{"$ref":"#/components/schemas/TxOperationPayload"},"txo":{"$ref":"#/components/schemas/TxOperationPayload"}},"oneOf":[{"required":["tro"]},{"required":["txo"]}],"additionalProperties":false},"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true}}}}
```

## The TxPayloadsBulkRequest object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxPayloadsBulkRequest":{"type":"object","required":["hashes"],"properties":{"hashes":{"type":"array","minItems":1,"maxItems":1500,"items":{"type":"string"}}}}}}}
```

## The TxDetailsNotFoundResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxDetailsNotFoundResponse":{"type":"object","required":["txDetails"],"properties":{"txDetails":{"type":"object","nullable":true}}}}}}
```

## The TxDetailsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxDetailsResponse":{"type":"object","required":["txDetails"],"properties":{"txDetails":{"$ref":"#/components/schemas/TxDetailsPayload"}}},"TxDetailsPayload":{"type":"object","description":"Normalized transaction payload.","required":["type","address"],"properties":{"type":{"type":"integer"},"address":{"type":"string"},"tro":{"$ref":"#/components/schemas/TxOperationPayload"},"txo":{"$ref":"#/components/schemas/TxOperationPayload"}},"oneOf":[{"required":["tro"]},{"required":["txo"]}],"additionalProperties":false},"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true}}}}
```

## The TxDetailsPayload object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxDetailsPayload":{"type":"object","description":"Normalized transaction payload.","required":["type","address"],"properties":{"type":{"type":"integer"},"address":{"type":"string"},"tro":{"$ref":"#/components/schemas/TxOperationPayload"},"txo":{"$ref":"#/components/schemas/TxOperationPayload"}},"oneOf":[{"required":["tro"]},{"required":["txo"]}],"additionalProperties":false},"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true}}}}
```

## The TxOperationPayload object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxOperationPayload":{"type":"object","description":"Normalized operation object (`tro` for transfer or `txo` for subnet tx).\nFields depend on operation type; unknown keys may also appear.\n","properties":{"tx":{"type":"string","description":"Transaction hash."},"txv":{"type":"string","description":"Transaction validity hash."},"to":{"type":"string","description":"Recipient address (transfer)."},"am":{"type":"string","description":"Amount in base units."},"in":{"type":"string","description":"Nonce."},"is":{"type":"string","description":"Signature."},"va":{"type":"string","description":"Validator address or encoded validator field."},"vn":{"type":"string","description":"Validator nonce or validator-related field."},"vs":{"type":"string","description":"Validator signature or validator-related field."},"iw":{"type":"string","description":"Writer/indexer related field."},"bs":{"type":"string","description":"Bootstrap/subnetwork identifier (for subnet tx)."}},"additionalProperties":true}}}}
```

## The TxHashesResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxHashesResponse":{"type":"object","required":["hashes"],"properties":{"hashes":{"type":"array","items":{"$ref":"#/components/schemas/TxHashItem"}}}},"TxHashItem":{"type":"object","required":["hash","confirmed_length"],"properties":{"hash":{"type":"string"},"confirmed_length":{"type":"integer"}}}}}}
```

## The TxHashItem object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxHashItem":{"type":"object","required":["hash","confirmed_length"],"properties":{"hash":{"type":"string"},"confirmed_length":{"type":"integer"}}}}}}
```

## The BroadcastTransactionResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"BroadcastTransactionResponse":{"type":"object","required":["result"],"properties":{"result":{"$ref":"#/components/schemas/BroadcastResult"}}},"BroadcastResult":{"type":"object","required":["message","signedLength","unsignedLength","tx"],"properties":{"message":{"type":"string"},"signedLength":{"type":"integer"},"unsignedLength":{"type":"integer"},"tx":{"type":"string"}}}}}}
```

## The BroadcastResult object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"BroadcastResult":{"type":"object","required":["message","signedLength","unsignedLength","tx"],"properties":{"message":{"type":"string"},"signedLength":{"type":"integer"},"unsignedLength":{"type":"integer"},"tx":{"type":"string"}}}}}}
```

## The BroadcastTransactionRequest object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"BroadcastTransactionRequest":{"type":"object","required":["payload"],"properties":{"payload":{"type":"string","description":"Base64-encoded signed transaction."}}}}}}
```

## The UnconfirmedLengthResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"UnconfirmedLengthResponse":{"type":"object","required":["unconfirmed_length"],"properties":{"unconfirmed_length":{"type":"integer"}}}}}}
```

## The ConfirmedLengthResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"ConfirmedLengthResponse":{"type":"object","required":["confirmed_length"],"properties":{"confirmed_length":{"type":"integer"}}}}}}
```

## The FeeResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"FeeResponse":{"type":"object","required":["fee"],"properties":{"fee":{"type":"string"}}}}}}
```

## The TxvResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"TxvResponse":{"type":"object","required":["txv"],"properties":{"txv":{"type":"string"}}}}}}
```

## The AccountDetailsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"AccountDetailsResponse":{"type":"object","required":["address","writingKey","isWhitelisted","isValidator","isIndexer","license","balance","stakedBalance"],"properties":{"address":{"type":"string"},"writingKey":{"description":"64-character hex writing key.\nCan be all zeros when no writer key is assigned.\n","type":"string","pattern":"^[A-Fa-f0-9]{64}$"},"isWhitelisted":{"type":"boolean"},"isValidator":{"type":"boolean"},"isIndexer":{"type":"boolean"},"license":{"type":"string","nullable":true},"balance":{"type":"string"},"stakedBalance":{"type":"string"}}}}}}
```

## The BalanceResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"BalanceResponse":{"type":"object","required":["address","balance"],"properties":{"address":{"type":"string"},"balance":{"type":"string"}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.0.3","info":{"title":"Trac Network RPC API","version":"1.0.2"},"components":{"schemas":{"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error message describing the failure."}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.trac.network/documentation/developers/mainnet/main-settlement-bus/rpc-api-v1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
