> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.finrock.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Stake TRX for ENERGY or BANDWIDTH on the Tron Network

> Stake TRX to earn ENERGY or BANDWIDTH for a Tron address, cutting transaction costs for TRC-20 transfers and high-frequency smart contract operations.

On the Tron network, every transaction consumes either ENERGY (for smart contract interactions such as TRC-20 transfers) or BANDWIDTH (for basic TRX transfers). By staking TRX, you acquire these resources and assign them to a specific address, effectively giving that address zero-cost transaction capacity proportional to the amount staked. This is highly cost-effective for high-volume Tron wallets — use this endpoint to stake TRX and allocate ENERGY or BANDWIDTH to any address in your Finrock custody.

## Request

**Method:** `POST`\
**URL:** `https://api.finrock.io/dav/v1/stake`

### Body Parameters

<ParamField body="asset" type="string" required default="TRX">
  The blockchain ticker. Must be `TRX` for Tron staking.
</ParamField>

<ParamField body="address" type="string" required>
  The Tron address that will receive the ENERGY or BANDWIDTH resources from this staking operation. This should be the wallet address you want to benefit from reduced fees.
</ParamField>

<ParamField body="resource" type="string" required default="ENERGY">
  The type of Tron resource to obtain by staking. Must be one of:

  * `ENERGY` — used for TRC-20 token transfers and smart contract interactions
  * `BANDWIDTH` — used for basic TRX transfers
</ParamField>

<ParamField body="amount" type="number" required default="100">
  The amount of TRX to stake, expressed as a decimal number. For example, `100` stakes 100 TRX.
</ParamField>

### Headers

<ParamField header="x-api-key" type="string" required>
  Your Finrock API key.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Your JWT bearer token. Format: `Token {JWT}`
</ParamField>

## Example Request

```bash theme={null}
curl --request POST \
     --url https://api.finrock.io/dav/v1/stake \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: {{api_key}}' \
     --header 'Authorization: Token {JWT}' \
     --data '
{
  "asset": "TRX",
  "address": "TYourTronAddressHere",
  "resource": "ENERGY",
  "amount": 100
}
'
```

## Response

A `200` response confirms that the staking transaction has been submitted and the resources are being allocated to the specified address. A `400` response indicates an invalid parameter or insufficient TRX balance.

<ResponseField name="200" type="object">
  Confirms the staking operation was submitted, including transaction details and the resource allocation.
</ResponseField>

<ResponseField name="400" type="object">
  Returned when required parameters are missing, the address is invalid, or the TRX balance is insufficient to cover the staking amount.
</ResponseField>

<Note>
  Staked TRX is locked and cannot be transferred until you initiate an unstaking operation. See the [Unstake TRX](/api-reference/utilities/tron-unstake) endpoint to begin the withdrawal process.
</Note>
