# Quickstart

This quickstart shows how to begin interacting with Hortifuel DAO contracts from wallets, scripts, frontend applications, and Solidity smart contracts.

{% hint style="success" %}
Use this page to choose the fastest integration path for your setup.
{% endhint %}

## Who this guide is for

This guide is for:

* Solidity developers integrating Hortifuel contracts
* frontend developers building dApps
* operators and delegates interacting with protocol methods
* users participating in governance, token, registry, and redemption flows

### Core contracts

The main contracts in the Hortifuel DAO ecosystem are:

* `HFUELToken`
* `HortifuelGovernor`
* `Hunits`
* `HortiRedeem`
* `RWARegistry`
* `HemiVault`

### Before you start

Before interacting with the protocol, make sure you have:

* the deployed contract addresses
* the correct target network
* ABI or interface definitions for the contracts you want to call
* an RPC provider
* a funded wallet for gas if you are sending transactions

For privileged actions, make sure your wallet or calling contract has the required role.

### Quickstart paths

Choose the path that matches how you want to use the DAO.

#### 1. Wallet interaction

Use a wallet to:

* hold HFUEL
* delegate votes
* vote on proposals
* purchase hunits
* request redemptions

#### 2. Frontend or script integration

Use `ethers` or `viem` to:

* read contract state
* send transactions
* watch events
* automate protocol operations

#### 3. Solidity integration

Use contract interfaces to:

* read protocol state on-chain
* trigger allowed methods from your own contracts
* build integrations around assets, products, governance, and redemption flows

### Common first actions

Most users begin with one of these actions:

* transfer or hold `HFUEL`
* delegate voting power
* purchase a `Hunit`
* request redemption
* read an asset from `RWARegistry`
* read a product or batch from `HemiVault`

### Solidity example: read HFUEL balance

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

interface IHFUELToken {
    function balanceOf(address account) external view returns (uint256);
}

contract HFUELReader {
    function getBalance(address token, address user) external view returns (uint256) {
        return IHFUELToken(token).balanceOf(user);
    }
}
```


---

# 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://docs.hortifuel.com/documentation/getting-started/quickstart.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.
