# HumanityGovernance

{% code title="HumanityGovernance.sol" %}

```javascript
function deposit(uint amount) public
```

{% endcode %}

Deposit tokens to the governance module in order to participate in voting.

* **amount:** The amount of tokens to deposit.

{% code title="HumanityGovernance.sol" %}

```javascript
function withdraw(uint amount) public
```

{% endcode %}

Withdraw tokens from the governance module.

* **amount:** The amount of tokens to withdraw.

{% code title="HumanityGovernance.sol" %}

```javascript
function proposeWithFeeRecipient(address feeRecipient, address target, bytes memory data) public returns (uint)
```

{% endcode %}

Propose a new action to be executed by the governance module.

* **feeRecipient:** The address to send the proposal fee too if the proposal is approved.
* **target:** The address of the target to execute.
  * HumanityRegistry ([0x4ee46dc4962c2c2f6bcd4c098a0e2b28f66a5e90](https://etherscan.io/address/0x4ee46dc4962c2c2f6bcd4c098a0e2b28f66a5e90)) to add or remove an identity to the registry.
  * HumanityGovernance ([0xdd806c4fdad2949a97fda79036cfbb8750181b37](https://etherscan.io/address/0xdd806c4fdad2949a97fda79036cfbb8750181b37)) to change the proposal fee.
* **data:** The encoded calldata to execute.
  * `add(address)` to add an identity to the registry.
  * `remove(address)` to remove an identity from the registry.
  * `setProposalFee(uint)` to change the proposal fee.

See TwitterHumanity applicant for a convenient way to propose additions to the Humanity registry.

{% code title="HumanityGovernance.sol" %}

```javascript
function voteYes(uint proposalId) public
```

{% endcode %}

Vote yes on a proposal. The proposal must be in the open vote period (2 days).

* **proposalId:** The ID of the proposal to vote on.

{% code title="HumanityGovernance.sol" %}

```javascript
function voteNo(uint proposalId) public
```

{% endcode %}

Vote no on a proposal. The proposal must be active (4 days).

* **proposalID:** The ID of the proposal to vote on.

{% code title="HumanityGovernance.sol" %}

```javascript
function removeVote(uint proposalId) public
```

{% endcode %}

Remove a vote on a proposal. The proposal must be active (4 days).

* **proposalID:** The ID of the proposal from which to remove a vote.

{% code title="HumanityGovernance.sol" %}

```javascript
function finalize(uint proposalId) public
```

{% endcode %}

Finalize a proposal.

**proposalID:** The ID of the proposal to finalize.

{% code title="HumanityGovernance.sol" %}

```javascript
function setProposalFee(uint fee) public
```

{% endcode %}

{% code title="HumanityGovernance.sol" %}

```javascript
 function getProposal(uint proposalId) external view returns (Proposal memory)
```

{% endcode %}

{% code title="HumanityGovernance.sol" %}

```javascript
function getProposalsCount() external view returns (uint)
```

{% endcode %}


---

# Agent Instructions: 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://humanitydao.gitbook.io/humanity/smart-contracts/humanitygovernance.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.
