> For the complete documentation index, see [llms.txt](https://docs.belugas.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.belugas.io/governance/cast-vote-1.md).

# Cast Vote With Reason

Cast a vote on a proposal with a reason attached to the vote.

**Governor Bravo**

```
function castVoteWithReason(uint proposalId, uint8 support, string calldata reason)
```

* `proposalId`: ID of a proposal in which to cast a vote.
* `support`: An integer of 0 for against, 1 for in-favor, and 2 for abstain.
* `reason`: A string containing the voter's reason for their vote selection.
* `RETURN`: No return, reverts on error.

**Solidity**

```
GovernorBravo gov = GovernorBravo(0x123...); // contract address
gov.castVoteWithReason(proposalId, 2, "I think...");
```

**Web3 1.2.6**

```javascript
const tx = gov.methods.castVoteWithReason(proposalId, 2, "I think ...").send({ from: sender });;
```
