# Introduction

This documentation is intended to introduce the general user to the Hord protocol.

Read our [help center](https://www.hord.fi/help-center)

See the latest updates in our [news](https://www.hord.fi/news) & [blog](https://www.hord.fi/blog)

Take part in our [bug bounty](https://www.hord.fi/bug-bounty)

Participate in our [governance](https://gov.hord.fi/) forum

Follow Hord on [Twitter](https://twitter.com/HordApp)&#x20;

Join the Hord community on [Discord](https://discord.gg/xeTWKHWEbS)

## Disclaimer

The information in this document is of informational nature only, can be subject to change or update without notice and should not be construed as a commitment by ***Hordapp*** Limited (“***HORD***”). This document, and parts thereof, must not be reproduced or copied without ***HORD’s*** written permission, and contents thereof must not be imparted to a third party nor be used for any unauthorized purpose.

These docs are a work in progress, and are changing on a daily basis. Please continue to monitor them to understand more about the product specification as it evolves. You should not take any of these docs as a fixed promise or commitment from the ***hord.fi*** team to deliver any specific set of features. The contents and timelines of the releases of ***hord.fi*** may and will change dynamically, as the market requirements evolve, and as our planning evolves to account for more accurate product requirements and implementation constraints. We wish to thank you for your interest in ***hord.fi***


# About HORD

Hord is an innovative liquid staking (LSD) solution that strengthens the Ethereum ecosystem and offers a straightforward way to earn rewards on your ETH. When staking with Hord, you receive a liquid token called hETH that mirrors your stake and can be used in DeFi applications while accumulating rewards.

The Hord protocol is comprised of the following components:

1. **Staking Pool** - Manages deposits, staking rewards, and withdrawals.&#x20;
2. **hETH** - The liquid token hETH reflects a staker’s ETH combined with rewards. hETH is tradable and transferable, unlike a solo staker’s ETH, which is locked in a node.&#x20;
3. **Node Operators** - Providers of secure, stable infrastructure for running validator clients in support of the Hord protocol. These providers are dedicated to staking funds and ensuring the validity of protocol operations.
4. **DAO** - HORD token holders can propose and vote on changes to the protocol.


# An Overview of Ethereum Staking

The centralization issue in Ethereum staking has emerged as a concern. As of October 2023, the leading liquid ETH staking provider, Lido, controls a significant share of [32%](https://dune.com/hildobby/eth2-staking) of the entire Ethereum staking market. This percentage includes solo stakers, exchanges, and staking-as-a-service providers. Lido's dominance in the LSDfi market is particularly noteworthy, where it controls a substantial 72% of the market. This concentration of staking power poses a potential threat to Ethereum's principle of decentralization.

![](https://lh6.googleusercontent.com/3T3jP2TPh7mhjyMIC_-MdXwlaFH1Qxmw3U2CUa-r_eK-7NkCXWgXtPTbKOemIDBEXm6qnTlpzvydoTpvktjxrpA7HhJ7hIbu-wpLhgcCjyTmiJnPZ8A3MF67EnlNAzE5KDVznXSe60pQ-SMewZBO34U)

Hord has taken proactive steps to address this challenge by launching its ETH staking pools, which offer stakers an attractive APR and introduces diverse features. Hord seeks to provide an alternative and contribute to the broader Ethereum ecosystem's decentralization.


# Why Hord?

First and foremost, Hord is committed to decentralization, offering an alternative to the centralization challenges posed by dominant providers. By participating in Hord's ETH staking pools, you actively contribute to Ethereum's decentralized ethos, helping maintain its security and trustlessness.

Hord rewards HORD token holders with 50% of the revenue generated by the platform. This revenue share is distributed proportionally to HORD holders, providing an additional incentive for users to participate in Hord's staking pools and support the platform's growth.

The Hord team realizes the importance of providing a simple and intuitive stake process for its users. Users can easily stake their ETH and earn rewards without having to worry about complicated technical processes or confusing interfaces.

Furthermore, Hord places a strong emphasis on safety and security. All of Hord’s smart contracts have been thoroughly audited and battle-tested to safeguard user funds


# Hord ETH Staking

An overview of the ETH staking mechanism at Hord.

This chapter includes the following subchapters:

* [APR](/hord-eth-staking/apr)
* [Consensus & Execution Layer Rewards](/hord-eth-staking/consensus-and-execution-layer-rewards)
* [The Hord Reward Model](/hord-eth-staking/hord-reward-model)
* [Protocol Fee](/hord-eth-staking/protocol-fee)


# APR

The APR provides the current estimation of hETH's annual growth based on a 7-day average.


# Consensus & Execution Layer Rewards

Ethereum's proof of stake architecture generates rewards in both its execution layer and consensus layer through staking.

In the execution layer, stakers are responsible for verifying and executing transactions. They do this by running software called a node. Nodes are essentially computers that connect to the Ethereum network and process transactions. Stakers are rewarded for their work with transaction fees.

* Stakers run nodes to verify and execute transactions.
* Nodes are rewarded with transaction fees.
* The more nodes that are active, the more secure the network is.

In the consensus layer, stakers are responsible for validating blocks. Blocks are groups of transactions that are added to the Ethereum blockchain. Stakers validate blocks by checking to make sure that they are valid and that they follow the rules of the Ethereum protocol. Stakers are rewarded for their work with block rewards.

* Stakers validate blocks to ensure that they are valid and follow the rules of the Ethereum protocol.
* Stakers are rewarded with block rewards.
* The more stakers that are participating, the more secure the network is.

The amount of rewards depends on various factors, including the amount of ETH staked, staking duration, and the overall performance of the Ethereum network. The rewards that stakers earn are used to secure the Ethereum network and incentivize participation. By staking ETH, stakers help to ensure that the network is secure and that transactions are processed quickly and efficiently.


# Hord Reward Model

At Hord, stakers start earning staking rewards from the moment they receive hETH without the need to wait for validator activation. The liquid token hETH represents the stake and rewards generated by the entire Hord ETH staking pool. As such, the value of hETH isn’t pegged to the value of ETH and is anticipated to increase over time in relation to ETH.


# Protocol Fee

Hord's protocol fees and breakdown

Hord charges 10% of the rewards generated from the Hord staking pool validators. The fee is applied by periodically minting hETH proportional to the rewards owed.

These fees are used to fund node operation, overhead costs, and revenue share for HORD token holders.&#x20;


# Security

Security is essential in the Web3 world, and Hord places a special emphasis on ensuring the safety of its platform. As part of Hord’s emphasis on security, it has conducted multiple independent smart contract audits and security consultations and has an active bug bounty.&#x20;

This chapter includes the following subchapters:

* [Smart Contract Audits](/security/smart-contract-audits)
* [Bug Bounty](/security/bug-bounty)
* [Risk Disclaimer](https://app.gitbook.com/o/-MUEJxbr4A8GFapZYdw5/s/-MUELmtO-iJg-6-TIFDi/~/changes/81/security/risk-disclaimer)


# Smart Contract Audits

Hord takes security seriously and has gone the extra mile to ensure the safety of its platform. Multiple independent security audits have been conducted to verify its code's robustness and the platform's overall security.

Here is a complete list of Hord’s audits:

[Zokyo](https://github.com/zokyo-sec/audit-reports/blob/main/Hord/Zokyo_Hord%20audit%20report.pdf) 22.2.2023

[Diligence Audit](https://uploads-ssl.webflow.com/6048790ad5157f01d7437c77/64526aa73efdd91541f426a9_644438e70d01ac4d026eff8c_Hord%20audit%20report.pdf) 23.2.2023

[Zokyo](https://github.com/zokyo-sec/audit-reports/blob/main/Hord/Hord_Zokyo_audit_report_Sep19_2023.pdf) 19.9.2023


# Bug Bounty

Hord's Bug Bounty Program offers rewards to anyone who reports valid vulnerabilities and exploits on their app and domains.&#x20;

Community-driven auditing is the foundation of decentralized security. Hord encourages users to identify bugs, penetration vectors, front-end vulnerabilities, financial attack vectors, and other issues that may risk or destabilize the network and its operations.&#x20;

To report a potential bug, users should [fill out a form](https://www.hord.fi/submit-a-bug) with detailed and comprehensive information.&#x20;

Hord's development team reviews and prioritizes reported bugs and implements fixes accordingly. Rewards are proportional to the severity of the reported issue and are determined by factors such as the severity of the issue, its complexity, and reproducibility.&#x20;

Stable tokens or an equivalent amount in HORD tokens will be rewarded for valid bug reports. The maximum reward amount varies depending on the severity of the bug. Hord encourages users to uncover issues related to contracts, API, the Hord Protocol, and Front-End. Issues affecting outdated or unpatched browsers, those that have not been thoroughly investigated or comprehensively reported, and those that cannot be reproduced are not eligible for the bug bounty.


# Risk Disclaimer

The possible risks of staking ETH

Liquid ETH staking is a form of cryptocurrency staking that allows users to stake their ETH tokens for a period of time to receive rewards. The concept of staking has been around for some time, but the emergence of liquid staking platforms has made it easier for everyday users to participate.

However, there are several risks associated with using liquid ETH staking platforms. One of the biggest risks is the possibility of the platform being hacked or otherwise compromised. If someone gains access to the platform, they could potentially steal funds or disrupt the operations of the platform.&#x20;

Another risk is the potential for price volatility. Since the ETH tokens being staked are subject to market forces, prices can fluctuate quickly. If the price of ETH drops during the period of staking, users may not be able to get the fiat value of their original investment back. This could result in significant losses, depending on how much ETH was staked.

Overall, while liquid ETH staking offers an easy way to earn passive income in the cryptocurrency world, it is important to be aware of its risks. Users should always research and ensure they understand the risks before investing any money into liquid ETH staking platforms.


# hETH

An overview of how Hord's ETH liquid staking derivative or LSD token works

This chapter includes the following subchapters:

* [What is hETH](/heth/what-is-heth)
* [Auto Compounding](/heth/auto-compounding)
* [Withdrawals](/user-guides/withdrawing-eth)


# What is hETH?

Hord stakers deposit ETH into the deposit pool, which enables a node operator to create a new Beacon Chain validator. At Hord, you can stake as much as ETH as you’d like. There are no minimum requirements.

In doing so, you will be given a token called hETH. hETH is an ERC-20 standard token based on Ethereum. hETH represents both how much ETH you deposited and when you deposited it combined with rewards. The ratio includes rewards that Hord node operators earn from:

* The Beacon Chain itself
* Priority fees from block proposals
* MEV rewards from block proposals

More specifically, the value of hETH is determined by the following ratio:

hETH price in ETH = (amount of ETH deposited + ETH rewards generated) / amount of hETH minted

The Hord platform provides stakers with Beacon Chain rewards, priority fees and MEV rewards that continuously accumulate. As such, the value of hETH is anticipated to grow consistently versus ETH’s value. Below is a chart displaying the growth in hETH’s price between the dates of February 10, 2023, and October 15, 2023.

![](https://lh6.googleusercontent.com/NEl9hU86t9KtHUEKQ7WI90m7JDztWvCwJ9fWuPc_QJMXMU0M-0rpP5T6c35cm0eMZ4RBnNfGwGV219nstiSBlWMwS6W_6YWk1ETkcJhsux8u6_FcODIvx6OcUD6TOoeNfUM9fkXxi7sh64ys2QxrOdg)

The value of hETH is updated periodically and under certain circumstances where its price increases by a certain percentage.

**To illustrate how it works, let's take a look at a simple example.**

Assume you stake at the beginning when 1 ETH is equal to 1 hETH. You deposit 10 ETH and get 10 hETH in return.

As time passes, the balances on the Beacon Chain increase due to validator rewards. Suppose 128 ETH was staked with Hord, and the total of all validator balances on ETH2 was 160 ETH. In that case, 1 ETH would be valued at (128/160) = 0.8 hETH, and conversely, 1 hETH would be worth (160/128) = 1.25 ETH.

At this point, you could exchange your 10 hETH back to Hord's smart contracts and get 12.5 ETH in return.


# Auto Compounding

Auto-compounding is an investment strategy that allows our users to automatically reinvest their investment yields into their principal investment at regular intervals.&#x20;

Hord is unique in that it auto-compounds all rewards associated with ETH staking generated on the platform to maximize staker rewards. This includes rewards originating from the Beacon Chain, rewards from priority fees from block proposals, and MEV rewards. This means that at Hord, stakers can earn more rewards over time without having to manually reinvest their earnings.


# Hord Governance

This segment covers the most essential parts of how Hord Governance works.

This chapter includes the following subchapters:

* [Why Implement Governance at Hord?](/hord-governance/why-implement-governance-at-hord)
* [Governance Functions](/hord-governance/governance-functions)
* [Proposal Submission at Hord](/hord-governance/proposal-submission-at-hord)
* [Governance Voting System & Specifications](/hord-governance/governance-voting-system-and-specifications)


# Why Implement Governance at Hord?

In the Hord ecosystem, governance is a vital component that empowers token holders to guide the platform's direction and represent collective interests. Hord's governance approach aims to grant stakers and HORD token holders a genuine voice in shaping the platform's growth.

Moreover, governance promotes the inclusion of diverse perspectives and expertise. HORD token holders are active participants in the ecosystem, bringing their unique insights and interests to the table. Their involvement ensures that decisions are made with a comprehensive understanding of the platform's requirements and the community's expectations.

Hord's governance model also serves as a mechanism for gradual decentralization. As the platform grows and evolves, the distribution of decision-making authority becomes increasingly crucial.


# Governance Functions

Governance at Hord empowers the community to actively shape the platform's future. Via the [Hord governance forum](https://gov.hord.fi/) and Snapshot voting integration, HORD token holders can propose, discuss, and vote on key decisions.&#x20;

This can include:&#x20;

* Fee structures&#x20;
* Resource allocation
* Platform features
* Feature upgrades&#x20;
* Marketing activity

By actively participating, HORD token holders not only influence the direction of Hord but also contribute to its decentralization and long-term sustainability.


# Proposal Submission at Hord

The decision-making process at Hord is based on community engagement and collaboration to ensure inclusivity and effectiveness. The process is divided into the following five steps:

#### Step 1: Research Phase

Any community member can initiate a proposal by drafting a ‘Request for Comment’ or RFC. RFCs should clearly describe the proposed change, its objectives, and its potential impact on the platform.&#x20;

#### Step 2: Community Feedback and Iteration

There is a 10-day period of community discussion and feedback on RFCs. Token holders are encouraged to participate actively, offering constructive input and proposing alternative solutions or amendments. As a result of this iterative process, proposals can be refined and enhanced based on diverse perspectives.

#### Step 3: Proposal Finalization

After an ample discussion and iteration period, the RFC is finalized, incorporating valuable insights from the community. The proposal is then ready for submission.

#### Step 4: Snapshot Voting

The finalized proposal is submitted to the Hord Snapshot voting platform enables token holders to cast their votes on governance proposals. The voting system and specifications are detailed below.

#### Step 5: Execution and Implementation

If a proposal reaches the minimum quorum and satisfies the voting threshold, the Hord team will implement the approved changes responsibly and promptly.


# Governance Voting System & Specifications

To ensure a fair and representative voting process, the following specifications are implemented:

#### Token Weighted Voting System&#x20;

Hord adopts a Token Weighted Voting system where the voting power of each token holder is determined proportionally according to the number of tokens they hold. The more tokens a holder has, the more voting power they possess. This formula assigns voting power according to the following calculation:

Voting Power = Total Tokens Held / Total Token Supply

1 HORD = 1 vote. For example, if a token holder holds 100 tokens and the total token supply is 1,000, then their voting power would be 10%.

#### Voting Period&#x20;

The minimum duration for all types of proposals is 10 days. Should a proposal be scheduled to end on a Saturday or Sunday, the voting period will be extended to a Monday. These periods allow sufficient time for token holders to review, discuss, and cast their votes.

<br>


# HORD Token

HORD token is an ERC-20 standard token that is accessible on both the Ethereum and Arbitrum One networks. Furthermore, HORD tokens are traded on both the Ethereum and Arbitrum One versions of Uniswap V2, as well as Gate.io, and MEXC Global.

In this chapter, we will discuss Hord token utilities.


# Token Utilities

The HORD token, like hETH, is a tradeable and transferable token. HORD’s main use case is revenue share and token governance. &#x20;

## Revenue Share

**Overview** \
\
The Revenue Share feature at Hord is live. This feature, discussed since the inception of Hord’s token governance, redistributes 50% of protocol fees to enrolled HORD holders. Below is a detailed explanation of how the feature works. \
\
**Enrollment** \
To enroll in the Revenue Share feature:

Minimum Requirement: Users must hold a minimum of 2,500 HORD tokens.\
Maximum Enrollment: Users can enroll up to 500,000 HORD tokens.

**Enrollment Process**\
Users must click the "Join Revenue Share" button at app.hord.fi and connect their wallet to enroll.

Balances are updated automatically upon enrollment. Re-enrollment is required for each new round to receive a portion of the revenue share. \
\
**Token Requirements** \
\- Non-Staking Requirement: Users' HORD tokens do not need to be staked or locked.\
\- Holding Requirement: Users must hold the minimum required tokens in their wallet to be eligible for each day's distribution. \
\
**Airdrop Calculations** \
Daily Growth: The amount shown in the airdrop section grows daily. Initially, the airdrop amount is zero until the first simulation. The amount updates daily, and the final amount is determined at the end of the round.

**Snapshots:** Daily snapshots of enrolled users' HORD balances are taken randomly to determine eligibility and share size. Users must hold the minimum required HORD on the snapshot day. \
\
**Distribution**

**Semiannual Airdrops:** Actual airdrops are distributed semi annually through Disperse.app.

**Combined Total:** User interface displays a combined total for those holding both versions. <br>

**Acquiring HORD** \
\- Staking ETH: Users can stake ETH on Hord’s platform to receive HORD tokens for free. The amount and length of the stake determine the HORD token rewards.\
\- Purchasing HORD: HORD tokens can also be bought and traded on Gate.io, Uniswap v2 (Ethereum), and Uniswap v3 (Arbitrum).

## Governance

Hord token governance is an essential aspect of the Hord ecosystem, allowing HORD token holders to have a say in the platform's decision-making process. Token holders can issue, discuss, and vote on proposals.&#x20;

For more information on Hord Governance, please see the segments above or the Hord Governance Gitbook.

<br>


# User Guides

Below are a few short guides on how to navigate the Hord ecosystem.

This includes the following guides:

* [Adding HORD to your Wallet](/user-guides/adding-hord-to-your-wallet)
* [Staking with Hord](/user-guides/staking-with-hord)
* [How to Bridge HORD Tokens via ChainPort](/user-guides/how-to-bridge-hord-tokens-via-chainport)


# Adding HORD to your Wallet

The HORD token is an ERC-20 standard token that operates on both Ethereum and Arbitrum One.&#x20;

To add HORD in your wallet, click on the “Import Token” button on MetaMask. Other wallets may list this functionality as “Add Token.” Then paste the HORD contract address.

HORD Ethereum Contract Address:

```
0x43a96962254855f16b925556f9e97be436a43448
```

HORD Arbitrum One Contract Address:

```
0xb1bc21f748ae2be95674876710bc6d78235480e0
```

After posting the contract address, The Token Symbol should automatically be filled with HORD, and the Decimals of Precision should automatically be filled with 18.

<br>


# Staking with Hord

The simplest way to stake ETH at Hord is via the Hord app and its interface to the underlying smart contracts.&#x20;

While Hord supports all common Ethereum-based wallets, we will use MetaMask for the sake of example due to its popularity. You can download and install [MetaMask here](https://metamask.io/).

After installing MetaMask, be sure to set the network to the Ethereum Mainnet. The next step is to get some ETH. This can be done easily by purchasing ETH directly on Metamask via debit/credit card or via an exchange. If you purchase ETH via an exchange, send it directly to your MetaMask address before staking with Hord, or else you may not receive your hETH.

Now that you have a wallet and some ETH to stake, let's head over to the Hord app.&#x20;

<figure><img src="/files/YazaYAED371vlf4ZGCD2" alt=""><figcaption></figcaption></figure>

Start by connecting your wallet. If you’re using MetaMask you will be prompted to connect your MetaMask extension. Be sure to click the blue button to proceed.

<figure><img src="/files/Fv4Sd6kgGOoglfli0vGU" alt=""><figcaption></figcaption></figure>

Be sure to add Arbitrum as a network on MetaMask after connecting your wallet. This can be done by clicking on the Ethereum logo on the top right corner of the Hord app, and then clicking on Arbitrum. You will then be prompted to approve Arbitrum as a network in MetaMask. After approving Arbitrum, please switch back to the Ethereum network.<br>

<figure><img src="/files/silMjiTph9vG8hecaMxi" alt=""><figcaption></figcaption></figure>

Next, you will be asked how much ETH you’d like to stake. Be sure to leave a portion of your ETH in your wallet to cover the associated gas costs for interacting with a smart contract. Gas fees can vary at times, and to lower the costs, consider staking on a Sunday or Saturday at around 11 PM UTC or limit the transaction’s max gas setting.&#x20;

Review the transaction details before approving it. When you’re ready, hit the approve button and wait a few minutes. The next step is to add hETH as a token in MetaMask so you’ll see your balance. To do this, click on the “Import Token” button on MetaMask and click on “Custom Token.”<br>

hETH’s contract address is:&#x20;

```
0x5bbe36152d3cd3eb7183a82470b39b29eedf068b
```

After pasting the address, The Token Symbol should automatically be filled with hETH, and the Decimals of Precision should automatically be filled with 18.

<figure><img src="/files/el8CNxLw66T0PT8q40iT" alt=""><figcaption></figcaption></figure>

After adding hETH, you should see your balance. Please note that hETH is a value-accruing liquid staking token and does not mirror ETH’s value directly. The value of hETH should be greater than ETH, and as such, the amount of hETH you receive will be lower than the ETH staked. &#x20;


# Withdrawing ETH

hETH holders can easily exchange their hETH for ETH via the Hord app.&#x20;

Withdrawals are usually completed within 24 hours. Larger withdrawals may take up to 3-4 business days as Hord's Ethereum staking pool validators enter an exit queue. For faster access to assets, hETH holders can convert to ETH via Uniswap.

### How to Withdraw ETH in 3 Steps at Hord

Withdrawals at Hord are an easy and intuitive process that can be completed in three easy steps. Be sure to follow the steps below:

**Step 1 - Connect your wallet**

Head over to the Hord App and connect your wallet. Be sure to select your wallet that contains hETH.

<figure><img src="https://lh7-us.googleusercontent.com/165h1OUJ_q1DpWOzixygFjnKNjwmPjYXwublmbm8mkNCgQOlFDsg5Bzmx4-w9AGR0e6GhN4WupftE613ERk6zHRlFzcpOzcRVuxwgw_6F3TXSfK1KoTApHWBJDELQZpSaMRUAx_W_sT9NVcJLRAfH-E" alt=""><figcaption></figcaption></figure>

**Step 2 - Click on the Withdrawal Tab**

Now that your wallet is connected click on the ‘Withdrawal’ tab and select the amount of hETH you’d like to withdraw. The equivalent in ETH will be displayed below. When you’re ready, hit the ‘Request Withdraw’  button.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/DAMCc8Jf7HTQGMrrXljLAQsH3jwbMBQq0FVxEKkf-zQC2s0KNaYE07fn6NJ3vGOsqlTweRHdFJoEuCSvE6ktUDSKu8PenMrwHQ8556yNxzax9rSQvXKgc60a2iSMxbjPnpDKDGMqSjNZMV1jU_-EqVA" alt=""><figcaption></figcaption></figure>

**Step 3 - Claim ETH & Wallet Approval**

After 24 hours, the staked ETH will be claimable, this is the last step to get your ETH back into your wallet. Once that time span has passed, hit the “Claim ETH” button and approve the transaction in your wallet. A few minutes later, your ETH will be transferred to your wallet.

<figure><img src="https://lh7-us.googleusercontent.com/wL1gvEIopZOwZqhiLoi6XjDgNAZgbzkdzei2vL2GfC5iCBouglej8tvAkzRRvQ55Pu8VoLMarFL3tRJLc12ZEgQpw3cXHwFycmXVnAuaZZ2VP2I_bWtdtbQvhlua-qOEYF90zC3NN4dYKdvrB2cG6is" alt=""><figcaption></figcaption></figure>

<br>


# How to Bridge HORD Tokens via ChainPort

The HORD Token is available on both the Arbitrum One and Ethereum. Bridging your HORD tokens between Arbitrum One and Ethereum with Hord's partner ChainPort is straightforward and simple. With [ChainPort](https://app.chainport.io/), you can easily manage your HORD tokens on either network hassle-free.

Here's a quick guide to help you bridge your HORD tokens across both networks. This guide describes how to Bridge the HORD token from Arbitrum One to Ethereum. To bridge tokens in the opposite direction, please reverse the source and target chains.

**Step 1 - Connect Your Wallet**

Go to ChainPort's bridge (<https://app.chainport.io/>) and connect your wallet. Ledger, Trezor, Coinbase Wallet, Wallet Connect, and Metamask are all supported by ChainPort. Select the wallet containing the HORD tokens you wish to bridge.

<figure><img src="/files/ohzLkJgP4rWZvzRpNOFD" alt=""><figcaption><p>Click the 'Connect Wallet' button and select your wallet</p></figcaption></figure>

**Step 2 - Select the Chains & Token**

In the drop-down menu you can select the source blockchain and token. In our case, the source chain is Arbitrum, and the token is HORD. Select Ethereum as the target chain.

<figure><img src="/files/8PprDI7UGUEYjKUu05ot" alt=""><figcaption><p>Select the token you wish to bridge as well as the source and target chains</p></figcaption></figure>

**Step 3 - Confirm Tx & Get Tokens**

Review all related information before confirming the transaction. The details include the source and destination chains, gas fees, and the number of HORD tokens you are bridging. Once all details are confirmed, please approve the transaction and wait a few minutes for it to be processed. Once completed, your HORD tokens have been bridged to Ethereum.

<figure><img src="/files/e4Ic2fBX9Ibup6sLTTWI" alt=""><figcaption><p>Review all details and confirm porting tokens</p></figcaption></figure>


# FAQ

Common Frequently Asked Questions

### What is ETH Staking?

ETH staking is a process in which Ethereum (ETH) holders can lock up their ETH to receive rewards in the form of additional ETH.&#x20;

Once the ETH is staked or locked in a smart contract, the ETH will become part of Hord’s nodes. Nodes validate transactions on the Ethereum network and earn transaction fees.&#x20;

Typically staking requires a minimum of 32 ETH, technical know-how, and a dedicated computer that is connected to the internet. Most ETH stakers earn an average of 4% APR.&#x20;

Hord ETH staking requires no minimum and offers a better APR by combining [ETH staking](https://www.hord.fi/blog/what-is-ethereum-staking) with [MEV rewards](https://www.hord.fi/blog/what-is-mev-in-crypto).&#x20;

### Why should users stake ETH via Hord?

We offer lower fees than competing pools. It’s also risky for the Ethereum ecosystem to have a large portion of the ETH to be staked in one or two platforms. More staking options are needed to keep Ethereum truly decentralized and healthy.

### How is the APR calculated, and where are the rewards coming from?

To calculate the APR, we take the last 30-day increase of the hETH price - which is taken according to (the total amount of users' ETH in validators & rewards) divided by the number of hETH minted. The rewards come from the block rewards issued by the Ethereum network for staking ETH combined with additional MEV rewards. These rewards are redistributed to the pool and grant hETH (that represents the amount of ETH + rewards in the pool) its value.

Check our [APR Guide to learn more about it](https://www.hord.fi/blog/what-is-crypto-apr-and-how-to-maximise-profit-through-auto-compound).&#x20;

### How is Hord’s ETH Staking Pool Different?

Hord has taken a unique approach to ETH staking pools. Unlike other platforms, Hord combines [ETH staking rewards](https://www.hord.fi/blog/how-to-maximize-your-liquid-eth-staking-rewards) with MEV boosts, auto-compounding rewards, and additional HORD rewards. By combining different rewards, Hord can offer stakers the highest APRs seen in the market. Whenever staking users receive hETH, hETH’s value is expected to be greater than ETH and will constantly increase.

### What is hETH?

hETH is Hord's staked ETH liquid token variant. When a user stakes ETH, they receive hETH in return.

hETH is a token combining the value of a user’s staked ETH and rewards. hETH is minted upon deposit and burned when redeemed. The value of hETH combines the ETH staked with rewards. As such, its value is not pegged to ETH but is expected to be greater than it and will constantly increase.

Hord’s hETH token is fully liquid, meaning you can use it like you would ETH. Users can trade, sell, redeem, use in DeFi, and invest hETH as they want.

### Where can stakers trade their hETH?

Users can [trade hETH](https://app.uniswap.org/#/swap?exactField=1\&inputCurrency=ETH\&outputCurrency=0x5bBe36152d3CD3eB7183A82470b39b29EedF068B) freely on Uniswap. Direct withdrawals will be implemented in the summer of 2023.

### What is a decentralized Ethereum staking pool?

A decentralized Ethereum staking pool is a network of nodes that pool their computing resources to validate transactions on the Ethereum network. Validating transactions allows users to earn rewards for staking their Ethereum.&#x20;

### What makes Hord staking different from other ETH staking platforms?

ETH staking platforms differ in terms of the type of rewards they offer, the fees associated with staking, the user experience, and the security measures they employ. Hord is a secure and user-friendly staking platform that enables users to stake their ETH and receive rewards easily. Hord also offers competitive rewards and lower fees, which help users maximize their staking rewards.

### What happens to the staked ETH?

Staking is the process of locking up Ethereum (ETH) tokens to validate transactions on the Ethereum blockchain to earn rewards. The more ETH you lock up, the more rewards you will receive. Users receive hETH which represents the ETH they have staked and rewards.

### What is MEV or Maximal Extractable Value and how does it work?

Maximal Extractable Value (MEV) is a term that describes the maximum amount of value nodes can extract from blocks in the Ethereum network. Through front running or other forms of transaction reordering, validators can extract the maximum value and earn higher rewards.

### What are the benefits of joining a decentralized Ethereum staking pool?

Joining a decentralized Ethereum staking pool has several benefits. Firstly, you can stake any amount you’d like without restrictions. You also benefit from the pool’s scale, as all the nodes in the pool work together to earn rewards. Staking with Hord Staking Pools is also more accessible, with a user-friendly interface that makes staking and withdrawals easy.

### Is it possible to keep the crypto in my wallet when staking ETH with Hord staking?

No, it is not possible to keep the crypto in your wallet when staking ETH with Hord Staking. When you stake ETH with Hord, your ETH is moved to a secure smart contract, where it remains until you decide to unstake it. In exchange for staking ETH with Hord, users receive a token called hETH which represents their staked ETH and rewards.

### What is liquid staking?

Liquid staking is a way to stake tokens using a 3rd party provider. With [liquid staking](https://www.hord.fi/blog/what-is-liquid-staking), tokens are deposited, staked, and a tokenized receipt is issued that can be redeemed for staked tokens. The receipt represents staked tokens that can be traded or used as collateral.&#x20;

At Hord, the liquid token is hETH which represents both the user’s staked ETH and rewards earned. hETH can be traded and used across the DeFi ecosystem.

### What is the difference between self-staking and liquid staking?

Self-staking is a process of locking up one’s own ETH to receive rewards in return. Liquid staking, on the other hand, involves pooling ETH with other users to receive rewards. The main difference between the two is that self-staking requires a minimum of 32 ETH, some technical knowledge, and maintaining validator up-time. With liquid staking, funds are pooled with other users and Hord maintains the validator and technical aspects.

### How do I unstake my ETH?

hETH can be swapped for ETH by trading it on a [popular DEX](https://www.hord.fi/blog/what-is-a-dex-decentralized-exchange-in-crypto) like UniSwap. Direct withdrawals will be implemented soon.

### What is the Hord ETH Staking APR?

The Hord ETH Staking APR may fluctuate due to various reasons including market conditions. The exact rate can be found on the Hord website. The APR displayed APR reflects a rolling 7-day average of the return users can expect to make over a year.


# Smart Contracts


# Hord Congress Members Registry

Represent HORD Congress Members Registry

## Code

`HordCongressMembersRegistry.sol`

## Address

`HordCongressMembersRegistry` is deployed at [`0x29A5f08a38c79a2dD1DF055792822eB1E163d574`](https://etherscan.io/address/0x29A5f08a38c79a2dD1DF055792822eB1E163d574) on the Ethereum mainnet.

## Overview

Registry of `HordCongress` members.

## Events

### MembershipChanged

```solidity
event MembershipChanged(address member, bool isMember);
```

* Emitted each time when someone is added or removed from members.

## Read-Only Functions

### name

```solidity
function name() external view returns (string memory);
```

* Returns the name of the contract. \[`HordCongressMembersRegistry`]

### hordCongress

```solidity
function hordCongress() external view returns (address);
```

* Returns the address of `HordCongress` contract.

### address2Member

```solidity
function address2Member(address account) external view returns (Member memory);
```

* Returns name of the `account` and since he has been a member of the congress .

### allMembers

```solidity
function allMembers(uint accountId) external view returns (address);
```

* Returns the address of specific `accountId`.

### isMember

```solidity
function isMember(address _address) external view returns (bool);
```

* Returns true/false depending on whether the `_address` is a member of congress or not.

### getNumberOfMembers

```solidity
function getNumberOfMembers() external view returns (uint);
```

* Returns how many members are currently in congress.

### getAllMemberAddresses

```solidity
function getAllMemberAddresses() external view returns (address[] memory);
```

* Returns addresses of all members in congress.

### getMemberInfo

```solidity
function getMemberInfo(address _member) external view returns (address, bytes32, uint);
```

* Returns address and name of the `_member` and since he has been a member of the congress.

### getMinimalQuorum

```solidity
function getMinimalQuorum() external view returns (uint256);
```

* Returns what is the minimum number of votes needed for the proposal to be executed.

## State-Changing Functions

### changeMinimumQuorum

```solidity
function changeMinimumQuorum(uint newMinimumQuorum) external onlyHordCongress;
```

* One time call function to set address of `HordCongressMembersRegistry` contract.

### addMember

```solidity
function addMember(address targetMember, bytes32 memberName) external onlyHordCongress;
```

* Add `targetMember` to congress.
* Emits a `MembershipChanged` event.

### removeMember

```solidity
function removeMember(address targetMember) external onlyHordCongress;
```

* Remove `targetMember` from congress.
* Emits a `MembershipChanged` event.


# Hord Token

Represents HORD token contract.

## Code

`HordToken.sol`

## Address

`HordToken` is deployed at [`0x43A96962254855F16b925556f9e97BE436A43448`](https://etherscan.io/address/0x43A96962254855F16b925556f9e97BE436A43448) on the Ethereum mainnet.

## Overview

Implementation of the `IERC20` interface.

This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using `_mint`. For a generic mechanism see `ERC20PresetMinterPauser`.

TIP: <https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226>\[How to implement supply mechanisms].

We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of `ERC20` applications.

Additionally, an `Approval` event is emitted on calls to `transferFrom`. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification.

Finally, the non-standard `decreaseAllowance` and `increaseAllowance` functions have been added to mitigate the well-known issues around setting allowances. See `IERC20-approve`.

## Events

### Approval

<pre class="language-solidity"><code class="lang-solidity"><strong>event Approval(address indexed owner, address indexed spender, uint256 value);
</strong></code></pre>

Emitted each time an approval occurs via \_approve

### Transfer

```solidity
event Transfer(address indexed from, address indexed to, uint256 value);
```

Emitted each time a transfer occurs via \_[transfer](https://docs.uniswap.org/protocol/V2/reference/smart-contracts/Pair-ERC-20#transfer-1) or \_[burn](https://docs.uniswap.org/protocol/V2/reference/smart-contracts/pair#burn-1).

## Read-Only Functions

### name

```solidity
function name() external pure returns (string memory);
```

* Returns the name of the token. \[`Hord Token`]

### symbol

```solidity
function symbol() external pure returns (string memory);
```

* Returns the symbol of the token, usually a shorter version of the name. \[`HORD`]

### decimals

```solidity
function decimals() external pure returns (uint8);
```

* Returns the number of decimals used to get its user representation. \[`18`]

### totalSupply

```solidity
function totalSupply() external view returns (uint);
```

* Returns the total amount of HORD tokens.

### balanceOf

```solidity
function balanceOf(address account) external view returns (uint);
```

* Returns the amount of tokens owned by an `account` address.

### allowance

```solidity
function allowance(address owner, address spender) external view returns (uint256);
```

* Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through `transferFrom`.

## State-Changing Functions

### approve

```solidity
function approve(address spender, uint256 amount) external returns (bool);
```

* Sets `amount` as the allowance of `spender` over the caller's tokens.
* Returns a boolean value indicating whether the operation succeeded.
* Emits an [`Approval`](#approval) event.

### transfer

```solidity
function transfer(address recipient, uint256 amount) external returns (bool);
```

* Moves `amount` tokens from the caller's account to `recipient`.
* Returns a boolean value indicating whether the operation succeeded.
* Emits a [`Transfer`](#transfer) event.

### transferFrom

```solidity
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
```

* Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance.
* Returns a boolean value indicating whether the operation succeeded.
* Emits a [`Transfer`](#transfer) event.

### burn

```solidity
function burn(uint amount) public virtual;
```

* Destroys `amount` tokens from `msg.sender`, reducing the total supply.
* Emits a [`Transfer`](#transfer) event.

### increaseAllowance

```solidity
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool)
```

* Atomically increases the allowance granted to `spender` by the caller.
* This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20-approve`.
* Emits an [`Approval`](#approval) event indicating the updated allowance.

### decreaseAllowance

```solidity
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool)
```

* Atomically decreases the allowance granted to `spender` by the caller.
* This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20-approve`.
* Emits an [`Approval`](#approval) event indicating the updated allowance.


# Maintainers Registry

Serves as a registry for privileged addresses.

## Code

`MaintainersRegistry.sol`

## Address

`MaintainersRegistry` is deployed at [`0x8B7819135Fe97aBFDc0c88596509c00FA727eaDc`](https://etherscan.io/address/0x8B7819135Fe97aBFDc0c88596509c00FA727eaDc) on the Ethereum mainnet.

## Overview

Registry of `maintainers`. `Maintainer` is an account that has permissions to call functions that ordinary users cannot call.

## Events

### MembershipChanged

```solidity
event MaintainerStatusChanged(address maintainer, bool isMember);
```

* Emitted each time when someone is added or removed from members list.

## Read-Only Functions

### hordCongress

```solidity
function hordCongress() external view returns (address);
```

* Returns the address of the HordCongress contract.&#x20;

### allMaintainers

```solidity
function allMaintainers(uint256 maintainerId) external view returns (address);
```

* Returns the address of specific `maintainerId`.

### isMaintainer

```solidity
function isMaintainer(address _address) external view returns (bool);
```

* Returns true/false depending on whether the `_address` is a maintainer or not.

## State-Changing Functions

### addMaintainer

```solidity
function addMaintainer(address _address) public;
```

* Function that serves for adding maintainer, callable only by HordCongress.
* Emits a `MaintainerStatusChanged` event.

### removeMaintainer

```solidity
function removeMaintainer(address _maintainer) external;
```

* Function that serves for removing maintainer, callable only by HordCongress.
* Emits a `MaintainerStatusChanged` event.


# Staking Configuration

This is a basic configuration contract.

## Code

`StakingConfiguration.sol`

## Address

`StakingConfiguration` is deployed at [`0x51B2f83aac13adB9Ed826C4cdb593C88e6B61C92`](https://etherscan.io/address/0x51B2f83aac13adB9Ed826C4cdb593C88e6B61C92) on the Ethereum mainnet.

## Overview

This is a basic configuration contract. Contains all information subject to change related to ETH Staking on HORD.app.

## Events

### NameChanged

```solidity
event NameChanged(string parameter, address newValue);
```

* Emitted each time when name or symbol is changed.

### AddressChanged

```solidity
event AddressChanged(string parameter, address newValue);
```

* Emitted each time when some address is changed.

### ConfigurationChanged

```solidity
event ConfigurationChanged(string parameter, uint256 newValue);
```

* Emitted each time when some numerical value is changed.&#x20;

## Read-Only Functions

### feeRecipient

```solidity
function feeRecipient() external view returns(address);
```

* Returns fee recipient address.

### stakeETHTokenName

```solidity
function stakeETHTokenName() external view returns(string memory);
```

* Returns name of staking ETH token.

### stakeETHTokenSymbol

```solidity
function stakeETHTokenSymbol() external view returns(string memory);
```

* Returns symbol of staking ETH token.

### amountETHInValidator

```solidity
function amountETHInValidator() external view returns(uint256);
```

* Returns amount of ETH needed to launch a new validator.

### rewardFeePercentage

```solidity
function rewardFeePercentage() external view returns(uint256);
```

* Returns percentage of reward fee.

### tolerancePercentageForRewards

```solidity
function tolerancePercentageForRewards() external view returns(uint256);
```

* Returns percentage of tolerance for rewards.

### tolerancePercentageForFee

```solidity
function tolerancePercentageForFee() external view returns (uint256);
```

* Returns percentage of tolerance for fee.

## State-Changing Functions

### setFeeRecipientAddress

```solidity
function setFeeRecipientAddress(address _feeRecipient) external onlyHordCongress;
```

* Set fee recipient address.
* Emits an [`AddressChanged`](#addresschanged) event.

### setStakeETHTokenName

```solidity
function setStakeETHTokenName(string memory _stakeETHTokenName) external onlyHordCongress;
```

* Set name of ETH staking token.
* &#x20;Emits a [`NameChanged`](#namechanged) event.

### setStakeETHTokenSymbol

```solidity
function setStakeETHTokenSymbol(string memory _stakeETHTokenSymbol) external onlyHordCongress;
```

* Set symbol of ETH staking token.
* &#x20;Emits a [`NameChanged`](#namechanged) event.

### setAmountETHInValidator

```solidity
function setAmountETHInValidator(uint256 _amountETHInValidator) external onlyHordCongress;
```

* Set amount of ETH needed to launch a new validator.
* &#x20;Emits a [`ConfigurationChanged`](#configurationchanged) event.

### setRewardFeePercentage

```solidity
function setRewardFeePercentage(uint256 _rewardFeePercentage) external onlyHordCongress;
```

* Set percentage of reward fee.
* &#x20;Emits a [`ConfigurationChanged`](#configurationchanged) event.

### setTolerancePercentageForRewards

```solidity
function setTolerancePercentageForRewards(uint256 _tolerancePercentageForRewards) external onlyHordCongress;
```

* Set percentage of tolerance for rewards.
* &#x20;Emits a [`ConfigurationChanged`](#configurationchanged) event.

### setTolerancePercentageForFee

```solidity
function setTolerancePercentageForFee(uint256 _tolerancePercentageForFee) external onlyHordCongress;
```

* Set percentage of tolerance for fee.
* &#x20;Emits a [`ConfigurationChanged`](#configurationchanged) event.


# Hord ETH Staking Manager (HETH)

Core contract for Ethereum Staking Platform.

## Code

`HordETHStakingManager.sol`

## Address

`HordETHStakingManager` is deployed at [`0x5bBe36152d3CD3eB7183A82470b39b29EedF068B`](https://etherscan.io/address/0x5bBe36152d3CD3eB7183A82470b39b29EedF068B) on the Ethereum mainnet.

## Overview

`HordETHStakingManager(HETH)` is upgradeable contract where users can deposit ETH in order to stake and earn validator rewards, redeeming of deposit is not possible yet, but it will be after the Shanghai Hard Fork.

## Events

### Deposit

```solidity
event Deposit(address account, uint256 amountDeposited);
```

* Emitted each time when someone deposits.&#x20;

### LaunchNewValidator

```solidity
event LaunchNewValidator(address account, uint256 amountWithdrawn);
```

* Emitted each time when a new validator is launched.

### HETHMinted

```solidity
event HETHMinted(address account, uint256 amountHETH);
```

* Emitted each time when new HETH tokens are minted.

### EtherReceived

```solidity
event EtherReceived(address account, uint256 amountETH);
```

* Emitted each time when contract receives the execution layer rewards.

### FeeCollected

```solidity
event FeeCollected(address account, uint256 amountHETH, uint256 amountETHForMintingCalc, uint256 diffExecLayerRewardsForFeelCalc);
```

* Emitted each time when reward fees are collected.

### StakingStatsUpdated

```solidity
event StakingStatsUpdated(uint256 newRewardsAmount, uint256 newTotalETHBalanceInValidators, uint256 newTotalExecutionLayerRewards);
```

* Emitted each time when the staking stats are updated.

### NewTokensFarmSDKSet

```solidity
event NewTokensFarmSDKSet(address newAddress);
```

* Emitted each time when the `TokensFarmSDK` address changes.

### Transfer

```solidity
event Transfer(address indexed from, address indexed to, uint256 value);
```

* Emitted each time when the someone transfers `HETH` tokens.

### Approval

```solidity
event Approval(address indexed owner, address indexed spender, uint256 value);
```

* Emitted each time when the someone approves `HETH` tokens.

### Burn

```solidity
event Burn(address indexed account, uint256 value);
```

* Emitted each time when HordETHStakingManager calls burn function.

### Mint

```solidity
event Mint(address indexed beneficiary, uint256 value);
```

* Emitted each time when HordETHStakingManager calls mint function.

## Core functions

### userDepositETH

```solidity
function userDepositETH() 
payable
isDirectCall
isCorrectAmount
external 
whenNotPaused;
```

* `UserDepositETH` function allowing user to deposit ETH on contract.
* Emits [`Deposit`](#deposit) event.

### launchNewValidator

```solidity
function launchNewValidator(
    bytes calldata pubkey,
    bytes calldata withdrawal_credentials,
    bytes calldata signature,
    bytes32 deposit_data_root
)
nonReentrant
external
whenNotPaused
onlyMaintainer;
```

* `LaunchNewValidator` Withdraws funds for launching new validator, callable only by maintainer.
* Emits [`LaunchNewValidator`](#launchnewvalidator) event.

### transfer

```solidity
function transfer(address recipient, uint256 amount) public virtual returns (bool);
```

* Transfer HETH from msg.sender to `recipient` address.
* Emits [`Transfer`](#transfer) event.

### approve

```solidity
function approve(address spender, uint256 amount) public virtual returns (bool);
```

* Msg.sender approves `spender` to manage his HETH tokens.
* Emits [`Approval`](#approval) event.

### transferFrom

```solidity
function transferFrom(address sender, address recipient, uint256 amount) public virtual returns (bool);
```

* Transfer this `amount` of HETH from `sender` to `recipient` address.
* Emits [`Transfer`](#transfer) event.

## Read-Only functions

### totalETHDeposited

```solidity
function totalETHDeposited() external view returns(uint256);
```

* `TotalETHDeposited` represents total ETH deposited by user.

### totalBalanceETHInValidators

```solidity
function totalBalanceETHInValidators() external view returns(uint256);
```

* `TotalBalanceETHInValidators` represents total balance ETH in validators includes amount required to launch the validator plus validator rewards.

### totalRewardsCollected

```solidity
function totalRewardsCollected() external view returns(uint256);
```

* `TotalRewardsCollected` represents total rewards collected validator plus execution layer rewards.

### totalHETHMinted

```solidity
function totalHETHMinted() external view returns(uint256);
```

* `TotalHETHMinted` represents total HETH minted.

### numberOfUsers

```solidity
function numberOfUsers() external view returns(uint256);
```

* `NumberOfUsers` represents total number of users who stake.

### lastRewardsForFeeCalc

```solidity
function lastRewardsForFeeCalc() external view returns(uint256);
```

* `LastRewardsForFeeCalc` represents the last amount of total rewards from which fees was taken.

### totalFeesAccountedInETH

```solidity
function totalFeesAccountedInETH() external view returns(uint256);
```

* `TotalFeesAccountedInETH` represents total fees accounted in ETH.

### totalFeesMintedInHETH

```solidity
function totalFeesMintedInHETH() external view returns(uint256);
```

* `TotalFeesMintedInHETH` represents total fees minted in HETH.

### lastExecLayerRewardsForFeeCalc

```solidity
function lastExecLayerRewardsForFeeCalc() external view returns(uint256);
```

* `LastExecLayerRewardsForFeeCalc` represents the last amount of execution layer rewards from which fees was taken.

### totalExecLayerRewards

```solidity
function totalExecLayerRewards() external view returns(uint256);
```

* `TotalExecLayerRewards` represents total total amount of execution layer rewards.

### hordCongressMembersRegistry

```solidity
function hordCongressMembersRegistry() external view returns(address);
```

* `HordCongressMembersRegistry` represents instance of HordCongressMembersRegistry contract.

### beaconDeposit

```solidity
function beaconDeposit() external view returns(address);
```

* `BeaconDeposit` represents instance of BeaconDeposit contract.

### stakingConfiguration

```solidity
function stakingConfiguration() external view returns(address);
```

* `StakingConfiguration` represents instance of StakingConfiguration contract.

### users

```solidity
function users() external view returns(User);

struct User {
	uint256 amountDeposited;
	uint256 rewardsEarned;
}
```

* `Users` map user address to his informations.

### getAmountOfHETHforETH

```solidity
function getAmountOfHETHforETH(uint256 amountETH, bool isContractCall, uint256 diffExecLayerRewardsForFeeCalc) external view returns(uint256);
```

* `GetAmountOfHETHforETH` calculates how much HETH will be minted for certain amount of ETH.

### decimals

```solidity
function decimals(uint256 amountETH, bool isContractCall, uint256 diffExecLayerRewardsForFeeCalc) external view returns(uint256);
```

* `decimals` returns the number of decimals used to get its user representation.

### totalSupply

```solidity
function totalSupply(uint256 amountETH, bool isContractCall, uint256 diffExecLayerRewardsForFeeCalc) external view returns(uint256);
```

* `totalSuplly` returns total supply of HETH token.

### balanceOf

```solidity
function balanceOf(address account) public view virtual returns (uint256)
```

* `balanceOf` balance of HETH tokens for sepcific `account`.

### allowance

```solidity
function allowance(address owner, address spender) public view virtual returns (uint256);
```

* `allowance` returns amount of HETH which `owner` has approved `spender` to use.

### name

```solidity
function name(uint256 amountETH, bool isContractCall, uint256 diffExecLayerRewardsForFeeCalc) external view returns(uint256);
```

* `name` returns name of HETH token.

### symbol

```solidity
function symbol(uint256 amountETH, bool isContractCall, uint256 diffExecLayerRewardsForFeeCalc) external view returns(uint256);
```

* `symbol` returns symbol of HETH token.

## State-Changing Functions

### pause

```solidity
function pause() external onlyHordCongressOrMaintainer;
```

* `Pause` function allowing HordCongress or maintainer to pause contract.
* Emits `Paused` event.

### unpause

```solidity
function unpause() external onlyHordConngressMember;
```

* `Unpause` function allowing HordCongress member to unpause contract.
* Emits `Unpaused` event.

### setTokensfarmSDK

```solidity
function setTokensFarmSDK(address _tokensFarmSDK) external onlyHordCongress;
```

* `SetTokensFarmSDK` sets address of TokensFarmSDK contract.
* Emits a [`NewTokensFarmSDKSet`](#newtokensfarmsdkset) ecent.

### setValidatorStats

```solidity
function setValidatorStats(uint256 newRewardsAmount, uint256 newTotalETHBalanceInValidators, uint256 newTotalExecutionLayerRewards) external onlyMaintainer;
```

* `SetValidatorStats` sets total amount of collected rewards, total balance ETH in validators and total amount of execution layer rewards.
* Emits a [`StakingStatsUpdated`](#stakingstatsupdated) event.


# Hord Congress

Represents multi-sig wallet for HORD app.

## Code

`HordCongress.sol`

## Address

`HordCongress` is deployed at [`0x086A6d9FD61758096CF4F394AE7C1F9B6b4EEC14`](https://etherscan.io/address/0x086A6d9FD61758096CF4F394AE7C1F9B6b4EEC14) on the Ethereum mainnet.

## Overview

Standard implementation of the [`multisignature`](https://101blockchains.com/multisignature-wallets/) wallet. This contract contains the initial total supply of [`HORD`](broken://pages/Mx1lBoyS6lbVRaCFNBbC) tokens.

## Events

### ProposalCreated

```solidity
event ProposalCreated(uint id, address proposer, address[] targets, uint[] values, string[] signatures, bytes[] calldatas, string description);
```

* Emitted each time when a new proposal is created.

### VoteCast

```solidity
event VoteCast(address voter, uint proposalId, bool support);
```

* Emitted each time when a vote has been cast on a proposal.

### ProposalCanceled

```solidity
event ProposalCanceled(uint id);
```

* Emitted each time when a proposal has been canceled.

### ProposalExecuted

```solidity
event ProposalExecuted(uint id);
```

* Emitted each time when a proposal has been executed.

### ReceivedEther

```solidity
event ReceivedEther(address sender, uint amount);
```

* Emitted each time when ether is received.

### ExecuteTransaction

```solidity
event ExecuteTransaction(address indexed target, uint value, string signature,  bytes data);
```

* Emitted each time when transaction is executed.

## Read-Only Functions

### name

```solidity
function name() external view returns (string memory);
```

* Returns the name of the contract. \[`HordCongress`]

### proposalCount

```solidity
function proposalCount() external view returns (uint);
```

* Returns the total number of proposals.

### proposals

```solidity
function proposals(uint256 proposalId) external view returns (Proposal memory);
```

* Returns official record of all proposals ever proposed.

### getActions

```solidity
function getActions(uint proposalId) external view returns (address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas);
```

* Returns all actions from exact proposal.

### getMembersRegistry

```solidity
function getMembersRegistry()external view returns (address);
```

* Returns the address of [`HordCongressMembersRegistry`](broken://pages/vU9HzG681yyAHYBCAVHS) contract.

## State-Changing Functions

### setMembersRegistry

```solidity
function setMembersRegistry(address _membersRegistry) external;
```

* One time call function to set address of `HordCongressMembersRegistry` contract.

### propose

```solidity
function propose(address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description) external onlyMember returns (uint);
```

* Only a member of `HordCongress` can call this function in order to create a proposal for which members will vote and based on the votes the proposal will be executed or rejected.
* Returns id of new proposal.
* Emits a `ProposalCreated` event.

### castVote

```solidity
function castVote(uint proposalId, bool support) external onlyMember;
```

* Only a member of `HordCongress` can call this function in order to vote on a specific proposal.
* Emits a `VoteCast` event.

### execute

```solidity
function execute(uint proposalId) external onlyMember payable;
```

* Only a member of `HordCongress` can call this function in order to execute a specific proposal which reached the minimal quorum (50% or more of the votes are in favor).
* Emits a `ExecuteTransaction` and `ProposalExecuted` events.

### cancel

```solidity
function cancel(uint proposalId) external onlyMember;
```

* Only a member of `HordCongress` can call this function in order to cancel a specific proposal which didn\`t reach the minimal quorum (less than 50% of votes are in favor).
* Emits a `ProposalCanceled` event .


# Support

## **Having An Issue?**

If you're experiencing difficulties using Hord’s features, try the following:

* Refresh the page&#x20;
* Clear your browser's cache & cookies&#x20;
* Restart your device&#x20;
* Try another RPC

## Need Further Assistance?

Contact us via email at: <support@hord.fi>


# Legal Disclaimer

* The ownership of ***HORD*** tokens does not represent any participation in ***Hordapp*** Limited capital nor any rights of payment, remuneration, profit distribution or money reward of any kind. This Whitepaper has been prepared in good faith to provide a comprehensive overview of the ***HORD*** project and ***HORD*** token crowdsale and is for information purposes only.&#x20;
* With the development of ***HORD*** platform and/or any ***HORD*** mobile applications, it may be amended in the following. Please also note that the ***HORD*** Project itself may be redesigned or otherwise revised in future, if that would be required for any material reasons (including, but not limited to: commercial considerations, technical possibilities, or the need to ensure compliance with any (existing or future) applicable laws and regulations, or any other material reasons). ***HORD*** tokens are not intended to constitute securities in any jurisdiction.&#x20;
* This ***HORD*** Whitepaper does not constitute a prospectus or offer document of any sort and is not intended to constitute an offer of securities or a solicitation for investments in securities in any jurisdiction. The contents of this document are not a financial promotion. Therefore, none of the contents of ***HORD*** Whitepaper serves as an invitation or inducement to engage in any sort of investment activity.
* U.S. Persons, as defined in Regulation S under the U.S. Securities Act of 1933, as amended (the “U.S. Securities Act”), are prohibited from accessing this Whitepaper and ***HORD*** website. Nothing in this Whitepaper or ***HORD*** website shall be deemed to constitute an offer, offer to sell, or the solicitation of an offer to buy, any securities in any U.S. jurisdiction. Each person accessing this Whitepaper or ***HORD*** website will be deemed to have understood and agreed that: (1) he is not a U.S. citizen and he is located outside of the U.S.; (2) any securities described herein have not been and will not be registered under the U.S. Securities Act or with any securities regulatory authority of any state or other jurisdiction of the United States, and may not be offered, sold or delivered within the United States or to, or for the account or benefit of, U.S. persons except pursuant to an exemption from, or in a transaction not subject to, the registration requirements of the U.S. Securities Act and applicable state securities laws.
* Do not contribute any money that you can’t afford to lose in the ***HORD*** Token Sale. Make sure you read and understand this Whitepaper and TERMS AND CONDITIONS FOR PARTICIPATING IN THE ***HORD*** TOKEN SALE (including all warnings regarding possible token value, technical, regulatory and any other risks; as well as all disclaimers contained therein), as will be published on our website <https://hord.fi> (as they may be amended from time to time).&#x20;
* Should you have any questions regarding the ***HORD*** project, ***HORD*** token, the contents of this Whitepaper or the sale of ***HORD***  tokens, please, do not hesitate to contact <hello@hord.fi> or <https://t.me/hord_app>.


