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

# wallet/votewitnessaccount | TRON

> TRON API method that creates a transaction to vote for witnesses (validators) using frozen TRX balance. Chainstack TRON reference.

TRON API method that creates a transaction to vote for witnesses (validators) using frozen TRX balance. Voting is essential for TRON's Delegated Proof of Stake (DPoS) governance system and helps determine which witnesses become Super Representatives.

## Parameters

* `owner_address` — address of the account casting votes. Use base58 with `visible: true`, or hex with `visible: false`.
* `votes` — array of vote allocations, each containing:
  * `vote_address` — witness address to vote for (base58 with `visible: true`, or a 21‑byte hex address starting with `41` when `visible: false`).
  * `vote_count` — number of votes to allocate to this witness.
* `visible` — optional boolean. When `true`, addresses are base58; when `false`, hex. Default is `true`.

## Response

* `visible` — boolean indicating whether addresses are in visible format
* `txID` — unique transaction ID for the voting transaction
* `raw_data` — raw transaction data containing:
  * `contract` — array with witness voting contract details
  * `ref_block_bytes` — reference block bytes for transaction validation
  * `ref_block_hash` — hash of the reference block
  * `expiration` — transaction expiration timestamp
  * `timestamp` — transaction creation timestamp
* `raw_data_hex` — complete transaction data encoded in hexadecimal format

## Use case

The `wallet/votewitnessaccount` method is used for:

* Participating in TRON network governance by voting for preferred witnesses.
* Supporting witnesses that align with your vision for network development.
* Earning voting rewards from witnesses who share profits with their voters.
* Influencing which witnesses become the top 27 Super Representatives.
* Distributing voting power across multiple witnesses for diversification.
* Contributing to network decentralization through democratic participation.

<Note>
  You can only vote using frozen TRX balance. You must have TRX frozen for Energy or Bandwidth to be eligible for voting. The total number of votes cannot exceed your frozen TRX balance, and votes can be distributed among multiple witnesses.
</Note>

## curl example

```shell Shell theme={"system"}
curl --request POST \
  --url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/votewitnessaccount' \
  --header 'Content-Type: application/json' \
  --data '{
  "owner_address": "THPvaUhoh2Qn2y9THCZML3H815hhFhn5YC",
  "votes": [
    { "vote_address": "TDdeM7G4HSxhn2MfovsiMWwXZkiFaHhjMB", "vote_count": 1000000 },
    { "vote_address": "TAybtvPZCSj5kumiU4myD28xBy6WFtkgCu", "vote_count": 500000 }
  ],
  "visible": true
}'
```

<Info>
  avoid `Invalid address` by matching address format with `visible`:

  * base58 addresses → set `visible: true` (recommended for humans)
  * hex addresses → set `visible: false` and use 21‑byte hex (42 hex chars) starting with `41`

  to get valid witness addresses, call [`wallet/listwitnesses`](/reference/tron-listwitnesses) and copy candidate addresses from the response.
</Info>


## OpenAPI

````yaml openapi/tron_node_api/votewitnessaccount.json post /95e61622bf6a8af293978377718e3b77/wallet/votewitnessaccount
openapi: 3.0.0
info:
  title: wallet/votewitnessaccount TRON API
  version: 1.0.0
  description: Vote for witnesses (validators) using frozen TRX balance
servers:
  - url: https://tron-mainnet.core.chainstack.com
security: []
paths:
  /95e61622bf6a8af293978377718e3b77/wallet/votewitnessaccount:
    post:
      tags:
        - Witness and Governance
      summary: wallet/votewitnessaccount
      operationId: voteWitnessAccount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                owner_address:
                  type: string
                  description: >-
                    Voting account address. Use base58 with `visible: true`, or
                    hex with `visible: false`.
                votes:
                  type: array
                  description: Array of vote allocations
                  items:
                    type: object
                    properties:
                      vote_address:
                        type: string
                        description: >-
                          Witness address to vote for (base58 with `visible:
                          true`, or hex with `visible: false`).
                      vote_count:
                        type: number
                        description: Number of votes to allocate
                    required:
                      - vote_address
                      - vote_count
                visible:
                  type: boolean
                  description: When true, addresses are base58; when false, hex.
                  default: true
              required:
                - owner_address
                - votes
              example:
                owner_address: THPvaUhoh2Qn2y9THCZML3H815hhFhn5YC
                votes:
                  - vote_address: TDdeM7G4HSxhn2MfovsiMWwXZkiFaHhjMB
                    vote_count: 1000000
                  - vote_address: TAybtvPZCSj5kumiU4myD28xBy6WFtkgCu
                    vote_count: 500000
                visible: true
      responses:
        '200':
          description: Vote transaction for witnesses
          content:
            application/json:
              schema:
                type: object
                properties:
                  visible:
                    type: boolean
                    description: Whether addresses are in visible format
                  txID:
                    type: string
                    description: Transaction ID for the vote
                  raw_data:
                    type: object
                    properties:
                      contract:
                        type: array
                        description: Contract details for witness voting
                      ref_block_bytes:
                        type: string
                        description: Reference block bytes
                      ref_block_hash:
                        type: string
                        description: Reference block hash
                      expiration:
                        type: number
                        description: Transaction expiration timestamp
                      timestamp:
                        type: number
                        description: Transaction creation timestamp
                  raw_data_hex:
                    type: string
                    description: Raw transaction data in hex format

````