Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 348 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Harmony

Loading...

General

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Technology

Key FeaturesRandomnessShardingConsensusEffective Proof-of-StakeTokenomicsTransactionsWallets

Introduction

What is Harmony?‌RoadmapStrategy & ArchitectureStudy MaterialsFAQ

LayerZero Bridge

Ledger with Staking Dashboard

Using Harmony hardware wallet on the Ledger requires a few things. You will need:

  • Your Ledger

  • The Harmony app installed on your Ledger

Desktop Wallets

Mobile Wallets

Web Wallets

Partners

Strategy & Architecture

Harmony in 2021 will focus on adoption through developers and partners. We will continue to strengthen our network features, to lead industry in our cross-chain architecture, and to engage broad ecosystem to build with us. There will be explosive growth and new applications this year in blockchains — Harmony is ready to be leading a part of this global fintech revolution.

Towards our mission, Harmony’s current strategy is “Cross-Chain Finance” as decentralized finance and interoperable protocols are the product-market fit in 2021. We are building trustless bridges to Bitcoin and Ethereum for broader access of users and assets with Harmony as a hub. An example of utility is a cross-chain exchange without custodial risks. Our current settlement layer and soon liquidity infrastructure will enable further financial innovations, leading to cross-exchange integrations and cross-border finance.

Read more:

Roadmap

Harmony’s 2025 roadmap focuses on achieving 1-second finality, unifying decentralized finance, and creating an open AI ecosystem.

We are continuously upgrading our protocol for seamless performance with enhancements such as Verkle Trees, State Expiry, and improved network resilience through Stream Sync and Leader Rotation. These innovations power platforms like pump.one for memecoin creation and exchange.one for stablecoins and perpetual trading. Meanwhile, the .country top-level domains enable AI agents to own self-custodial wallets and domains.

We aim to simplify DeFi, expand liquidity, and attract new users. Innovations such as yield enhancer and perpetual options markets, combined with AI-driven frameworks like Eliza OS—empowering autonomous agents for trading, governance, and decision-making—are designed to make DeFi intuitive and accessible to everyone. By leveraging AI to create cult-like memes and autonomous agents that amplify engagement through viral narratives and real-time market insights, we aim to redefine community-driven finance with creativity and precision.

These advancements aim to onboard millions of DeFi assets, billions of community memes, and trillions of intelligent models. Together, these efforts reflect our vision for 2025: building a blockchain that is fast, simple, and accessible to everyone.

Read more:

Welcome

To Scale Trust and Create A Radically Fair Economy

Harmony is an open and fast blockchain. Our mainnet runs Ethereum applications with 2-second transaction finality and 1000 times lower fees.

Harmony is your open platform for assets, collectibles, identity, governance.

Build on Harmony

This Gitbook document has introduction and resources for all audience:

  • 🎶 General – technical features, application showcases, ecosystem partners, community channels.

  • 🏗️ – web3 toolkits, deploy tutorials, open bounties, hackathon prizes.

  • 🌏 – token wallets, delegator economics, validator setup, governance dao.

Visit for our Open Development:

  • 🧠 – Market Research by Founder, Stephen Tse

  • 💪 – AI Agents, DeFi on Exchange.one, 1-Second Finality

Study Materials

Crypto Startup School

Learn how to build a crypto company. The course videos from a16z’s Crypto Startup School, held in the spring of 2020, are now available to all. Use the hours of free videos and the reading materials, below, to navigate the idea maze and start building crypto projects. .

Crypto Thesis for 2021

A Messari report: key trends, people, companies, and projects to watch across crypto, Bitcoin, and Ethereum, with predictions for 2021. .

NFT Canon

The NFT Canon is a go-to resource for artists and creators, developers, corporations and institutions, communities and other organizations seeking to understand or do more with non-fungible tokens.

Ecosystem

The Harmony team is focused on delivering a strong foundation for our network and ecosystem. We are grateful for the engagement and support of our validators, developers, community members, grantees and collaborators. Our current ecosystem map as of February 2022 is below and only includes a portion of projects launched on the Harmony network.

See below our 2021 Year in Review & Ecosystem Growth:

Ledger Nano

A Hardware wallet

The Nano X and Nano S are hardware wallets created by Ledger. A hardware wallet stores the private keys to Harmony tokens on a separate device, making it much harder for malicious parties to steal them. In fact, the private keys never leave the Nano wallet itself, so they will remain secure even if the device is connected to a compromised computer. As long as you follow best practices when using your Nano, it is virtually impossible for an attacker to steal your funds.

Safepal

A hardware wallet with a mobile app

SafePal is a secure and user-friendly hardware wallet designed for the masses. SafePal S1, its first flagship hardware wallet, adopts multiple layers of security schemes and intuitive user interfaces, enabling users to store, transfer and trade coins in the wallet in the easiest way.

Download & setup

Download and setup Safepal Hardware Wallet

SafePal mobile apps can be downloaded from PlayStore and AppStore following the instructions.

Please make sure your SafePal is the latest by following the instructions . The SafePal general user's manual is and the initial set up guide is .

Create/import account

When you're setting up SafePal you can either create a new account/wallet, or import/recover an existing account/wallet.

Metamask

MetaMask is an extension for accessing Harmony enabled distributed applications, or "dapps", from your browser. The extension injects the Harmony web3 API into every website's javascript context, so that Web3 applications can read from the blockchain.

In this section, we walk through the process of installing MetaMask, configuring it on the Harmony network, and importing an existing account using a previously generated private key.

Create a New Account

In order to create a new account, click on the icon on top as shown by the image below and then on Create Account:

On next window, provide an account name and then click the Create button to complete the step.

Rabby Wallet

Rabby Wallet is an extension for accessing Harmony-enabled distributed applications, or "dapps", from your browser. The extension injects the Harmony web3 API into every website's javascript context, so that Web3 applications can read from the blockchain.

In this section, we walk through the process of installing Rabby Wallet, configuring it on the Harmony network, and importing an existing account using a previously generated private key.

Installing Rabby Wallet

Click to install the Rabby Wallet extension on your browser. It can be installed on most desktop browsers. Just click on the installation button to begin the process. Once installed, continue to the next section to add the Harmony network to your new wallet.

Using Rabby Wallet

To learn about how to use Rabby wallet, create accounts, send and receive Tokens, import wallets, and more, please follow the instructions on the Rabby Wallet website:

Math Wallet

This section describes how to create your wallet, stake and undelegate your ONE, send transactions, and claim staking rewards using the Math Wallet browser extension.

is a browser extension and a mobile wallet for holding and transacting cryptocurrency.

Harmony Chrome Extension Wallet

Guarda Wallet

Stake and exchange Harmony ONE tokens using Guarda Wallet. You can download the desktop wallet .

Staking4All Wallet

Staking4All wallet is a desktop wallet for Harmony. You can download it .

Frontier Wallet

Frontier is a chain-agnostic DeFi aggregation layer. Users can stake in Harmony using Frontier.

Please visit with your mobile device to download the harmony mobile app.

Guarda Wallet

Stake and exchange Harmony ONE tokens using Guarda Wallet. You can download the mobile wallet .

Infinity Wallet

Description: "The ultimate gateway to decentralized finance in a user-friendly, multi-currency and convenient cryptocurrency wallet for all your needs."

For more information:

ONTO Wallet

Description: "ONTO is the first truly decentralized, cross-chain wallet, allowing users to securely manage their identities, data, and digital assets. Wallet users can manage their crypto assets (including NFTs), perform cross-chain swaps, keep up-to-date with the blockchain and crypto industry’s latest developments and events via the ONTO news feed, and enjoy a variety of dApps."

For more information:

Trustee Wallet

Description: "Trustee Wallet is the altcoins & Bitcoin wallet app for secure storage, profitable purchase of cryptocurrencies and tokens using bank cards."

For more information:

Guarda Wallet

Description: Stake and exchange Harmony ONE tokens using Guarda Wallet. Stake, exchange, earn and buy Harmony, Bitcoin, Ethereum and thousands of other assets.

For more information:

Querying Balances

Get JSON output of balances on all shards of a given ONE address with the balances subcommand:

Other CLI References

if you want a full list of commands the hmy tool knows in markdown format, please run the following command:

Then in the same directory, hmy creates a directory named hmy-docs in which you can find all markdown files for the commands and subcommands.

Deletion of a one account is possible by issuing the below command

Onsen

1ONE/WETH pool:

1ONE token:

FAQ

1wallets have an expiration date. It means that once the expiration date is reached, all your funds will be automatically sent to the recovery address you set.

The daily limit for 1wallet is set to 1000 ONE's. This means you cannot transfer more than this amount daily.

Continue through this section for more information on installing MetaMask, adding the Harmony network, importing an existing account, and more.

Continue through this section for more information on installing Rabby Wallet, adding the Harmony network, importing an existing account, and more.

The Harmony Chrome extension wallet is no longer supported. The extension can still be downloaded but should be used at your own risk.

Please see here for more information on the sunset announcement.

See here for migration options to MetaMask.

1. What does Expires In mean?

2. What does Daily Limit mean?

Bridge to All Chains

Developers
Network
open.harmony.one
crypto ∩ ai
Roadmap

Remember to save a backup of your private key(s) but never share it with anyone unless that person is to be trusted with full access to your cryptocurrency assets.

here
https://rabby.io/
here
here
here
https://infinitywallet.io/mobile
https://onto.app/
https://trusteeglobal.com/
https://guarda.com/

Ledger Nano X and Nano S

Important Notice

The LayerZero-Harmony Bridge Interface (“Interface”) is an interface that facilitates use of a third-party cross-chain communication system (“Bridge”) that is designed to enable users to send messages between certain blockchains to enable the exchange of crypto assets between such blockchains. Your use of the Interface and the Bridge is entirely at your own risk.

The Interface and the Bridge are available on an “as is” basis without warranties of any kind, either express or implied, including, but not limited to, warranties of merchantability, title, fitness for a particular purpose and non-infringement.

You assume all risks associated with using the Interface and the Bridge, and digital assets and decentralized systems generally, including but not limited to, that: (a) digital assets are highly volatile; (b) using digital assets is inherently risky due to both features of such assets and the potential unauthorized acts of third parties; (c) you may not have ready access to assets; and (d) you may lose some or all of your tokens or other assets. You agree that you will have no recourse against anyone else for any losses due to the use of the Interface or the Bridge. For example, these losses may arise from or relate to: (i) incorrect information; (ii) software or network failures; (iii) corrupted cryptocurrency wallet files; (iv) unauthorized access; (v) errors, mistakes, or inaccuracies; or (vi) third-party activities.

The Interface and the Bridge do not collect any personal data, and your interaction with the Interface and the Bridge will solely be through your public digital wallet address. Any personal or other data that you may make available in connection with the Bridge may not be private or secure.

Wallets

Hardware WalletsBrowser Extension WalletsDesktop WalletsMobile WalletsWeb WalletsHMY CLI (Harmony Command Line Interface)

Hardware Wallets

Installing MetaMask

Click here to install the MetaMask extension on your browser. It can be installed on most desktop browsers. Just click on the installation button to begin the process. Once installed, continue to the next section to add the Harmony network to your new wallet.

Remember to save a backup of your private key(s) but never share it with anyone unless that person is to be trusted with full access to your cryptocurrency assets.

Blits Wallet

Manage your Harmony, Ethereum, HRC20, HRC721, ERC20 & ERC721 Tokens in a trustless manner.

You can download Blits Wallet here.

Cobo Wallet

Cobo is the first leading wallet company in the world to offer Staking and masternode rewards on user holdings, making it easy for users to grow their digital assets effortlessly. As a company, they emphasize long-term security, reliability, and convenience.

You can download Cobo Wallet here.

DApps

Browser Extension Wallets

It’s a curated list of readings and resources on all things NFTs (inspired by the a16z
), and is organized from the big picture of what NFTs are and why they matter, to how to mint, collect, and do more with them — including various applications such as art, music, gaming, social tokens, and others.
.
https://harmony.one/school
https://harmony.one/theses
Crypto Canon
https://harmony.one/nfts
./hmy balances <ONE-address> --node="<endpoint-address>"

Using the Binary:

Using the Shell Wrapper:

Example:

./hmy docs

Generate Markdown Documentation

Delete Account

Be sure to have saved your private keys before if you had fund in that account. Deleting the account without backing it up means you'll lose it forever.

./hmy.sh -- balances <ONE-address> --node="<endpoint-address>"
./hmy balances one1km7xg8e3xjys7azp9f4xp8hkw79vm2h3f2lade --node="https://api.s0.t.hmny.io"
 ./hmy keys remove [ACCOUNT-NAME]

SafePal Hardware Wallet

Download SafePal Mobile Apps

Quick Start

here
here
here
here

Create New Wallet

Import Wallet (Recover)

Math Wallet
https://frontier.xyz/
https://analytics.sushi.com/pairs/0x986627db5e4aae987f580feb63d475992e5ac0ae
https://etherscan.io/address/0xd5cd84d6f044abe314ee7e414d37cae8773ef9d3

What is Harmony?‌

‌Harmony is a fast and secure blockchain for decentralized applications. Our production mainnet supports 4 shards of 1000 nodes, producing blocks in 2 seconds with finality.

Our Effective Proof-of-Stake (EPoS) reduces centralization while supporting stake delegation, reward compounding and double-sign slashing.

Harmony aims to build an open network of nodes operated and governed by a large community. This node community is called Pangaea.

Are we decentralized yet? There’s no consensus without participation. There are now 1,000 Harmony nodes – so far 800 of them run by the community – in line with thousands of Bitcoin and Ethereum nodes. Pangaea consists of volunteers and validators from more than 100 countries and most of them have never run a node before.

Key Innovations

Fully Scalable Architecture

Harmony’s sharding works not only on the network communication and transaction validation, but also on the blockchain state. This makes Harmony fully scalable on all three aspects of the blockchain: network, storage and transaction processing.

Secure Random Sharding

Harmony’s sharding process is provably secure against shard attacks because the network validators are randomly assigned and shuffled among shards. The randomness used in the sharding is obtained with a distributed randomness generation algorithm (based on VRF and VDF) which is unpredictable, un-biased, verifiable and scalable. Harmony reshards the network in a non-interruptive manner using “Cuckoo Rule” to prevent against slowly adaptive byzantine adversaries.

Harmony’s consensus algorithm is called Fast Byzantine Fault Tolerance or FBFT. FBFT is a highly efficient and speedy consensus algorithm built upon the famous PBFT (Practical Byzantine Fault Tolerance) algorithm which is the cornerstone for distributed systems and consensus research for the past 30 years. Harmony’s FBFT is able to confirm blocks within 2 seconds thanks to the adoption of aggregated BLS (Boneh–Lynn–Shacham) signature. FBFT is also highly optimized in network message processing and block proposal pipelining so that the consensus can scale to hundreds of validators at the same time.

Unlike traditional blockchains which require PoW (Proof of Work) to reach consensus, Harmony is a Proof-of-Stake blockchain which is energy efficient and low-cost for node runners. The process to elect validators is called Effective Proof-of-Stake (EPoS) which is the first sharding-focused PoS mechanism that prevents stake centralization. In EPoS, validators with a large amount of staked tokens are obligated to run more nodes to support the network while validators with less stake run fewer nodes. Besides, EPoS is able to randomly and evenly distribute the stakes among all shards so no shard is less secure than other shards.

Harmony’s network layer is based on the industry-leading p2p protocol named libp2p. We use libp2p’s gossip protocol for network message broadcasting and stream protocol for decentralized state synchronization. To achieve high performance, we adopt RaptorQ fountain code and use Adaptive Information Dispersal Algorithm to quickly and efficiently broadcast large blocks. Harmony also features a design where Kademlia routing is used to achieve cross-shard transactions that scale logarithmically with the number of shards.

Harmony supports cross-shard transactions to achieve composability of assets between shards. We designed a receipt-based asynchronous cross-shard communication mechanism which achieves eventual consistency so no double-spending is possible between shards.

Harmony is the beautiful music when we sing in different notes but resonate. It’s analogous to our high-performance protocol of multiple shards but reaching consensus.

Harmony’s vision is “For One and For All,” creating open consensus for 10 billion people.

Harmony’s community is built on “Handshake & Embrace.” All Is Fair in Love and War. (Euphues [Euphuism]: The Anatomy of Wit, 1579). Read the “ Interview” on our founding story.

FAQ

Where do I get Harmony One?

Check Coinmarketcap Markets for a list of Exchanges trading Harmony One. You may also want to get them via Defi DApps.

What Wallets accept Harmony One?

Check Holders for a list of Harmony One wallets.

What DApps work with Harmony One?

Check DApps for a list of decentralized applications running on Harmony One.

What is Staking?

For those wishing to participate in staking without running a validator, delegation is the best approach to still get involved and earn block rewards. The act of delegating tokens and earn rewards is called staking.

Harmony ONE holders can delegate their tokens to existing validators using our staking explorer: https://staking.harmony.one/. If the tokens are delegated to an elected validator, a portion of the block reward earned by the validator will be credited to the delegator (according to section Block Reward).

The earned block rewards are stored in a separate reward balance of the delegator, which can be immediately withdrawn to the delegator’s account balance. The block rewards can also be staked again to achieve the compounding effect of staking.

Your delegated tokens are also associated with slashing risks of the validator. As a delegator, you should carefully choose validators based on their historical performance metrics such as APR, uptime and commission. In case of indifference or indecisiveness, you should distribute your delegations among multiple validators in order to minimize risk.

New Delegators Quick, Simple Walkthrough:

💻 Download the ONEwallet extension from

✍️ Using the new extension create a new wallet or recover an existing one using seed words.

🎯 Next head over to the

👀 Choose a validator (or a few)

💰 Stake your tokens

🤑 Earn block rewards every 2 seconds.

Happen to be a more visual learner? Be sure to like and subscribe if you find the video(s) helpful.

For a deeper understanding of the staking mechanism, please refer to under the Validators section.

For more questions, check our section.

Key Features

Secure, Random State Sharding

Harmony has transcended the blockchain trilemma by bringing the best research to production. Sharding is proven to scale blockchains without compromising security and decentralization.

We divide not only our network nodes but also the blockchain states into shards, scaling linearly in all three aspects of machines, transactions and storages.

To prevent single shard attacks, we must have a sufficiently large number of nodes per shard and cryptographic randomness to re-shard regularly. Each shard has 1/4 of nodes for strong security guarantee against Byzantine behaviors. We use Verifiable Random Function (VRF) for un-biased and unpredictable shard membership.

Fast Consensus w/ Instant Finality

Harmony has innovated on the battle-tested Practical Byzantine Fault Tolerance (PBFT) for fast consensus of block transactions. Our Fast BFT (FBFT) leads to low transaction fees and 1-block-time finality in Harmony Mainnet.

We use Boneh–Lynn–Shacham (BLS) constant-sized signatures to commit blocks in a single round of consensus messages. We achieve 2-second block time with view changes in production against adversarial or unavailable leaders.

Harmony Mainnet was launched in June 2019. Our network has produced 30M+ blocks with 450k+ transactions in publicly traded, native ONE tokens.

Harmony has designed a novel Proof-of-Stake (PoS) mechanism for network security and economics. Our Effective Proof-of-Stake (EPoS) reduces centralization and distributes rewards fairly to thousands of validators.

Our staking mechanism supports delegation and reward compounding. To support 100% uptime but fully open participation, EPoS slashes validators who double-sign and it penalizes elected but unavailable nodes.

Harmony Economics Model caps the annual issuance at 441 million tokens (about 3% rate in long term). Our model gives validators a simple and predictable return. All transaction fees are burnt to offset the issuance, naturally leading to zero inflation when our network usage becomes high.

Harmony allows smart contracts to receive random numbers on chain, using a Verifiable Random Function (VRF) powered by distributed randomness generation (DRG). This allows any DAPP in the Harmony ecosystem to leverage randomness without relying on off-chain oracles.

Sharding

Harmony blockchain is sharded in three dimensions: state, network and transaction.

State Sharding

In Harmony, each shard maintains it's own chain of blocks and state database. Therefore, the validators of each shard only need to store 1/N of the global state, where N is the number of shards. The consistency between states from different shards are guaranteed by the property of eventual atomicity of cross-shard transactions, which guarantees that double spending between shards can not happen.

Network Sharding

Harmony's validator network is also divided into shards where each shard involves a separate set of validators connected closely with each other and running consensus between themselves. Most of the time, validators communicate with other validators within the same shard to reach consensus or synchronize blocks. In cases of cross-shard transactions and beacon chain synchronization, validators from different shards send messages across shards through the globally connected network.

Transaction Sharding

Transactions in Harmony blockchain are sent to and processed by a specific shard instead of all shards. This way, shards can process transactions in parallel which greatly improves the overall transaction processing capacity of the blockchain. Users need to specify a field named shard_id in the signed transaction which indicates which shard this transaction belongs to. For cross-shard transactions, another field named to_shard_idis needed to indicate the destination shard while the shard_id field indicates the source shard.

An epoch in Harmony blockchain is a pre-determined period of time when the validator committees of shards stay unchanged. In Harmony mainnet, one epoch is 32768 blocks which translates to around 18.2 hours. In Harmony testnet, one epoch is 8192 blocks which is around 4.6 hours.

When one epoch ends, the election for the new validator committees will be conducted in beacon chain and the result (i.e. shard state) will be written in the last block of the epoch in the beacon chain. After that, beacon chain enters the new epoch with the new validator committee producing blocks. Once beacon chain enters new epoch, all the other shards will follow and also enters the new epoch. The new shard state from the beacon chain will be written in the new block of the shards which also marks the last block of the epoch for that shard.

Crosslink is an important piece of data which is sent from shard chains and stored in beacon chain. A crosslink contains data for block signatures and the block identifier data such as block hash, block number, view id and epoch etc. When a new block is confirmed in a shard chain, the corresponding crosslink will be created and sent to the beacon chain. Upon the receipt of the crosslink, the beacon chain verifies its signature and checks that it’s from the canonical chain of the shard. Successfully verified crosslinks will be added in the new block of the beacon chain to permanently endorse the block of the shard chain as canonical. Shard chain blocks without corresponding crosslinks endorsed in the beacon chain won’t be recognized by the network and will be deemed as invalid blocks.

Besides serving the purpose of marking canonical blocks of the shard chains, crosslinks are also used to record and tally the signing activity of the shard chain validators. Since epoch transition and EPoS election happens only on beacon chain, the validator signing activity from shard chains are sent to the beacon chain via the crosslink so it can be used for block reward calculation and uptime calculation which affect the validator’s election status.

Tokenomics

In the updated economic model of our network, the total reward across the network (issuance plus transaction fees) will remain constant regardless of average block time and staking ratio. The goal of this change is to achieve a higher staking ratio, to simplify the model and to create a path to 0 issuance, all of which we believe will bring long term benefits for Harmony.

ONE Token

ONE is the native token for Harmony which supports the monetary flow of the entire Harmony economic system. ONE has 18 decimals.

The smallest unit of ONE is called Atto, which is 0.000000000000000001 ONE. (equivalent to Wei in Ethereum).

The second smallest unit of ONE is called Nano, which is 0.000000001 ONE (equivalent to Gwei in Ethereum)

Utility of ONE

ONE token has several important utilities that’s required for using the network and is essential to the security of the network.

Pay for transaction fee

ONE token is the native token for paying transaction fees. Users need to specify a certain amount of transaction fee in ONE so the transaction can be successfully processed and included in the blockchain.

Harmony is a Proof-of-Stake blockchain which means the security of the network is protected by staked tokens. ONE token is the native token that’s accepted for staking. Potential node runners need to stake a certain amount of ONE token to be elected as a validator. ONE token holders are also able to delegate their ONE tokens to existing validators to participate in the staking process. The more ONE token staked, the more secure the network becomes. Elected validators who successfully sign blocks will receive block rewards in ONE tokens as compensation for their services.

Harmony is a permission-less and decentralized network which is governed by the community. Any protocol level decisions or improvements will be put as a proposal which will go through the open governance process to finalize. ONE is the only accepted token used as the measure for voting in the governance process.

How to find a bridged token address

You can find your token from your final step transaction if it’s correctly displayed (sometimes there are delays in data representation).There is a token symbol near the amount in “Tokens transferred”/ ”Token transfers” section that leads to the token page.

token explorer eth.png
token explorer hmy.png

You can also look for the token in a token list on your wallet address page in the target chain explorer (it also can take some time for a token to appear).

Screenshot 2022-01-20 at 23.41.56.png
Screenshot 2022-01-20 at 23.46.25.png

Click on the token symbol, and you’ll see all necessary token information.

Screenshot 2022-01-20 at 21.52.12.png

![Screenshot 2022-01-20 at 21.45.29.png](../../../../.gitbook/assets/HRC 20 ETH explorer.png)

Don’t forget, that address should be in ETH style (starting 0x...). For Harmony Explorer, there is a switcher in the top right corner.

If you can’t find your token there, please use to find a token address you should have after the bridge.

After you find your token, add it to your wallet as shown You can avoid this process if you use Add token to Metamask button on the bottom your bridge operation page after operation is completed:

Check that you add token to a receiver wallet of your operation and the wallet is connected to the correct network.

Trezor

This page describes how to use Trezor hardware wallet with Metamask on Harmony network

Trezor wallet can be used along with Metamask to perform ONE transfers on Harmony network. Follow the steps below.

1. Add Harmony network to metamask (testnet or mainnet)

2. Select "Connect Hardware Wallet"
3. Select Trezor and continue
4. Select account, mostly the first one
5. Account loaded
6. Click on Send and prepare the transaction

Note that, load the Ethereum firmware (or app) for signing the transactions on the trezor device. Currently, Harmony does not have a separate trezor firware. There is a for adding Harmony to trezor firmware. After this bounty is finished, the users will be able to both transfer ONE and perform staking using trezor using Harmony firmware (or app).

Sending & Receiving

You can receive transactions to addresses starting with both one1 and 0x. However, Metamask does not allow you to send transactions to addresses starting with one1. You will need its' equivalent 0x address as the destination address. For that, follow the procedures below.

Retrieving the 0x Equivalent Address

  • For mainnet, go to https://explorer.harmony.one/#/ (Mainnet). For testnet, go to https://explorer.testnet.harmony.one/#/.

  • Search for your one1 address at the top.

  • At top of the screen, toggle the address format from ONE to ETH.

  • Copy the 0x address format by clicking on the small icon right to the address

You now have the 0x address which corresponds to your one1 address.

To send a transaction on MetaMask, click on Send button and on next window paste the destination address starting with 0x, fill the amount you want to send, click on Next, and then click on continue.

In order to receive a transaction, simply share the 0x address format with the sender.

Adding Custom Harmony Tokens

This page describes how to add HRC20/HRC721 tokens to MetaMask.

Adding a Custom Token

Open MetaMask, select the Harmony network, then click the Assets tab. Near the bottom, click "Import Tokens" and complete the empty fields.

Add the Token Contract Address, Token Symbol, and the Decimals value. Note the Token Symbol and Decimals may auto-populate. These details are usually provided by the token creator.

See "Importing 1BTC Token" as an example.

Complete the step by clicking on "Add Custom Token". Your custom HRC20 Token will show up in MetaMask along with its balance.

Sending a HRC20/HRC721 Transaction

Click on the asset you want to send your tokens from on the Asset tab. Click on Send button and on next window copy paste the destination address starting with 0x, fill the amount you want to send, click on Next and then on Confirm.

In order to receive a transaction, just share the 0x address format of your wallet. One Wallet supports sending HRC20/HRC721 transactions to either addresses starting with 0x or one1.

Import an Account

There is a where after the restoration of a wallet, MetaMask shows a different account with missing funds. Please make sure you use the same RPC network details as the one used in the original wallet. For example, if your original wallet was on the Harmony RPC network but your new wallet is on POKT RPC network, you may not see your original account.

1. Obtaining a Private Key

Importing an account is done by taking an existing private key and importing it into MetaMask. How you obtain the private key is dependent on the wallet in use.

For the Harmony Chrome extension wallet, click the Menu button at the top right, click Export Private Key, enter your password, and copy the private key displayed.

2. Using a Private Key

Click on the icon on top as shown by the image below and then on Import Account:

Importing Account

On next window, select the option to import from a Private Key, paste your key and click on Import to complete the step.

Your account should now be imported.

Download & Setup

Installation

  1. Access the Google Chrome web store and install the Math Wallet extension.

Note : Ensure to use the latest available version of Math Wallet (greater than 2.0.7).

Previous versions have a known bug and are not supported.

  1. Open the extension in your browser and create new password.

  1. Select Harmony from the list of networks.

Create/Import/Export Wallet

You can choose to create a wallet through the extension or import your existing wallet using a mnemonic phrase or a private key.

When you create a wallet, please write down your mnemonic correctly and keep in a safe place.

You may also import your Harmony Account using your mnemonic or private key.

You can also choose to export your keys in Settings. Your keys will be exported into a txt file with both private key and mnemonic.

Collecting Rewards

This page walks you through the process of collecting stake rewards with Math Wallet.

With your ONE staked to one or more validators, your delegation begins earning rewards with each block. You may collect these rewards at any time and may be re-delegated to compound your interest assuming you have 100 or more ONE.

Visit the staking dashboard at staking.harmony.one and click the Portfolio link on the left.

Log into the dashboard if you're not already signed in.

With your address confirmed, proceed by clicking the Claim Rewards button to collect the ONE earned through staking.

Ensure your address is correct. Click the Claim Rewards button.

Note the staking dashboard currently only displays whole integers, which means <1 ONE rewards will display as zero and cannot be collected.

Proceed by clicking the Next button at the window below.

Then click the Confirm and Sign button to send the transaction for signing in Math Wallet.

This will cause Math Wallet to pop up and request you to accept the signature request.

Click the Accept button to sign the transaction and collect your rewards.

Your rewards are collected once you see a Successful Withdrawal message.

Your ONE rewards, generated by staking your coins, are now added to your wallet.

Undelegating

Follow the steps below to undelegate your staked ONE using the Math Wallet browser extension.

Visit and sign into the staking dashboard at https://staking.harmony.one/, if you are signed out.

Click on the Portfolio link to the left.

This page will display information about your staked ONE including a list of validators to which you've delegated your ONE, amount of staked ONE, and unclaimed rewards.

You can undelegate from one or more validators where your ONE is staked.

From the Portfolio view, select the validator(s) from which you wish to undelegate by clicking on their validator name. This brings up the validator profile page.

Click the Undelegate button.

You will be prompted to specify how much you wish to undelegate from the validator. From here, specify an amount you wish to undelegate or click Set Max to undelegate all ONE from the validator.

Click Next and then click Confirm and Sign. This will open a window for Math Wallet.

Click the Accept button to sign your undelegation / unstaking transaction.

You should see a notification for your successful undelegation.

Your ONE is now undelegated from the validator. You may have more ONE staked with other validators. To undelegate fully, repeat these steps again through the list of validators on your Portfolio page.

HMY CLI (Harmony Command Line Interface)

Introduction

hmy is the official Command Line Interface (CLI) provided by Harmony. You can use it as a local wallet and as a way to interact with your Ledger Nano device. The hmy CLI is completely open-source. You can track its development and post any issues encountered and your feature suggestions here.

Features

With the hmy CLI you can create a wallet, check your balance, send signed transactions to the Harmony blockchain, look up previous transactions, recover keys from previous mnemonics, create new keystores, and create new BLS keys.

Supported Platforms

  • OSX: main development platform

  • Linux: tested

  • Windows: tested/working under Windows Subsystem for Linux (WSL)

We will always upload the latest production release on and announce future uploads in pre-production releases.

Staking Transactions

Delegating to a Validator

You can delegate tokens to a validator using the following command:

./hmy --node="https://api.s0.t.hmny.io" staking delegate \
    --delegator-addr [ONE ADDRESS] --validator-addr [ONE ADDRESS] \
    --amount [AMOUNT] --passphrase

The CLI will ask for the passphrase for the delegator-addr keystore file.

--delegator-addr is the ONE address of the delegator (string)

--validator-addr is the ONE address of the validator (string)

--amount is the number of ONE tokens to delegate to the validator (float)

You can un-delegate tokens from a validator using the following command:

The CLI will ask for the passphrase for the delegator-addr keystore file.

--delegator-addr is the ONE address of the delegator (string)

--validator-addr is the ONE address of the validator (string)

--amount is the number of ONE tokens to un-delegate (float)

You can collect your block rewards with the following command:

The CLI will prompt your for the passphrase of the delegation account.

--delegator-addr is the account to collect rewards for

User Guide

Learn to setup and use your 1wallet

1Wallet: 1wallet.crazy.one

Creating Your ONE Wallet

First, make sure to have Google Authenticator installed on your mobile device. Click on button Create and a QR Code similar to the image below will show up. Scan this QR Code using Google Authenticator app and type the random 6-digit code.

QR Code

After inputing the 6-digit code you will be redirected to a new window. Fill the recovery address and click on Create Now.

Setup Recovery Address

Make sure to setup a recovery address you have the keys of. This is in the case you lose access to Google Authenticator.

If everything went alright you should see your wallet created:

Wallet Created

Restoring Your ONE Wallet

Click on button Restore and paste your wallet address:

Follow the instructions on the next window:

Harmony Swap

Link: https://swap.harmony.one/

Harmony Swap is a decentralized exchange that represents the main liquidity hub on the Harmony blockchain and is operated by the core team. It was forked from Uniswap V3, enabling concentrated liquidity positions and the most efficient swap experiences.

Swap Tokens

Before swapping, make sure that you own ONE tokens to pay for gas fees and your wallet is switched to the Harmony network.

To swap tokens, visit https://swap.harmony.one/ and connect your wallet. Once connected, you will find Tokens that are available in your wallet in the drop-down menu of the swap interface:

In case your Token does not show up in the list please paste the contract address to add the Token manually.

The lower drop-down menu allows you to select the desired Tokens that you want to receive. You can either choose from the list or paste the contract address as well.

Once you have selected input and output tokens, enter the amount you want to swap. The interface shows a preview of the expected amount of Tokens to be received:

Click "Approve" and then "Swap" to execute the swap. You will receive the output Tokens directly in your wallet.

Anyone can provide liquidity on Harmony Swap. Adding and removing liquidity follows the Uniswap V3 concentrated liquidity framework.

You can get an overview of existing pools by selecting "Pools" in the menu and getting directed to .

Select "Positions" on the Harmony Swap Menu to open the liquidity interface:

Choose the tokens you want to add liquidity to and the fee tier. a higher fee tier will result in less volume but more fees per swap.

Since liquidity pools on Harmony Swap are concentrated you need to select a range in which you want to add your tokens. A wider range results in lower fees but also less impermanent loss. Choose a range you are comfortable with depending on the expected volatility of the tokens. Reminder: If the pair trades outside of the selected range you will earn no fees. The liquidity visualization shows the current liquidity in the pool and the current price. It helps you to find a good range for your on liquidity.

Randomness

Harmony’s sharding approach depends on a secure randomness source so the validators can be assigned to shards in a truly random manner to avoid single-shard attacks. Harmony designed a distributed randomness generation (DRG) protocol which involves both VRF (Verifiable Random Function) and VDF (Verifiable Delay Function) to achieve the follows key properties:

  1. Unpredictable: No one should be able to predict the random number before it is generated.

  2. Un-biased: The process of generating the random number should not be biasable by any participant.

Consensus

The consensus algorithm is a key component of any blockchain. It determines the security and performance of a blockchain and is often referred to as the "engine" of a blockchain. Harmony’s consensus algorithm is called Fast Byzantine Fault Tolerance (FBFT), which is an innovative upgrade on the famous PBFT algorithm. FBFT is one order of magnitude faster and more scalable than PBFT because BLS (Boneh–Lynn–Shacham) aggregate signature is used to significantly reduce the communication cost. Specifically, FBFT allows at least 250 validators to reach consensus within 2 seconds.

For every round of consensus in FBFT, one validator serves as the “leader” and there are three phases: the announce phase, the prepare phase and the commit phase. In the announce phase, the leader proposes a new block and broadcasts the block hash to all of the validators. In the prepare phase, validators verify the message and sign on the block hash, as well as sending the signature back to the leader. The prepare phase finishes when signatures with more than 2/3 of the voting power are collected. After that, the leader aggregated the collected signatures into a O(1)-sized BLS aggregate signature and then broadcast it with the whole block to start the commit phase. The commit phase involves validators verifying the block and doing a similar signing process as the prepare phase (i.e. 2/3 voting power collection). The consensus is reached after the commit phase is done. This whole process can be done within 2 seconds in mainnet.

Specifically, Harmony’s FBFT consensus involves the following steps:

Ledger with Metamask

This page will describe how to use ledger with Metamask connected to Harmony network for transfers

Metamask can be used along with ledger to perform transfers.

Steps:

Ledger with HMY CLI

To interact with your Ledger device using the HMYC CLI, please click to download and configure it first.

With that in mind, you can run any other command via HMY CLI using your Ledger.

Below, are a few practical examples on how to interact with your Ledger device.

For example, if you want to show your Ledger address you would simply run:

For a complete reference of all commands available, please check the HMY CLI .

Sign In With Ledger

Plug in your Ledger and open the Harmony Ledger App. Your device will be detected by your computer.

Start from the staking dashboard: and click the "sign-in" button.

You will be directed to the Validators page on the Staking Dashboard and a small trident logo will appear on the chrome tab. Your Ledger Nano will display "waiting for commands" before you click on any buttons.

Sending transactions via Ledger

To send ONE tokens to an address, click the "Transfer funds" button and the send window will pop-up.

Input the amount of tokens to send and the destination address, then click the "next" buttons.

Click the "Confirm and Sign" button to sign the transaction.

Check your ledger Nano S, the LED display on Nano S is shown as below. Click on the right button to review transaction on Ledger.

Staking Transactions via Ledger

Check the validators page to see list of validators. Click on desired validator logo to check validator details.

Click on the "Delegate" button to delegate to this validator.

Enter the desired delegation amount or scroll the percentage slider in the pop-up Delegate window. Delegation must be at least 100 ONE. Click on "Next" and confirm the signature request.

Check your Ledger, it will display "Delegate Stake" in the LED screen. Press the right button to start signing the transaction.

Send transaction

  1. Click on the 'Send' segment in SafePal App menu bar and select ONE.

  1. Input the destination address by pasting the address or scanning the QR code. Enter all transaction details - amount, fee and don't forget to select the shard number.

Sending Transactions

Follow the steps below to send your ONE using Math Wallet.

Make sure you've set up your Math Wallet extension according to the directions in .

You will need to open Web Wallet in order to view account details and perform transactions.

  1. Please select the wallet you want to open and click Web Wallet on the Math Wallet extension popover interface.

Staking

Follow the steps below to stake your ONE using Math Wallet.

Visit the staking dashboard at and click Sign In.

The screen will prompt you to make a selection.

Choose "Use an Existing Address".

Click "Use Math Wallet" from the next selection of options and then click "Sign In".

Sign in to your Math Wallet browser extension. You will see a Login Request pop up. Select your wallet and then click

Metamask Wallet

Average setup time is 3-5 minutes:

  1. Download Mobile App from Apple App Store

  2. Click on Get Started

Trust Wallet

Trust Wallet is a mobile cryptocurrency wallet. Please visit with your mobile device to download the app. Users can stake in Harmony using Trust Wallet.

The funds that are sent within shard 0 will be viewed correctly in Trust Wallet.

If you receive funds in a shard other than shard 0 (i.e. in shard 2), you will not see the transaction receipt in the Trust Wallet app. Since your account balance will only show the funds in shard 0, your total balance will not change.

Since there is no shard selection in the Trust Wallet UI, all transactions will originate from shard 0 and will be sent to shard 0.

Download & Setup

The Harmony CLI tool is used to interact with the Harmony blockchain.

Enter the following command into your shell of choice:

hmy depends on some dynamic libraries, hence we recommend using the shell wrapper. Enter there commands into your terminal:

Now you can use hmy.sh as a wrapper over hmy and you should assume that all references to hmy in these documents refer to hmy.sh. For example, the command ./hmy

Media

We engage publicly with wallet researchers and experts towards building the best end product. Here is a collection of our discussions.

balajis.com @balajis · Jun 11 Replying to @matthew_d_green Yes. But here’s a possibly dumb workaround:

1) A listens for events on chain 2) B sends a decryption request for resource to A’s address 3) A returns decrypted version, re-encrypted with B’s public key, if in a valid time window

Sort of like multisig with restrictions?

stephen tse | s.one @stse · Jul 3 smartotp by @IHomoliak has a research paper & a prototype - with a wallet for private keys

"keyless wallet" by @dionyziz has a theoretical result assuming witness encryption

our @1wallet_ by @polymorpher has a mainnet demo with hardened client security

Timeless

Timeless is reimagining the role of the calendar in our daily lives. They provide a delightful user interface, enabling users to seamlessly network their events with others via our Web RSVP pages. Instead of serving as a reminder for certain tasks, They are building out the discovery of services that will grow a marketplace in our calendar, intuitively helping users conquer the day. Timeless is driven to help users make the best use of their time, doing what matters, with the people they care about.

Timeless and Harmony can tokenize unique events and experiences on merging NFTs with some of the biggest events of the summer, from live concerts, sporting events, and many shared cultural experiences.

While we have the same amount of time in a day, how we spend our time is what gives meaning & value to each life’s moment. So, Timeless is creating bespoke 3D art to accompany life-enriching experiences.

Timeless will streamline the onboarding process for NFT Moment auctions, deploying Web RSVP. It is integrated with your calendar and enables fast & easy event participation.

Fiat Gateways

Buy ONE on Crypto.com with credit card, debit card and bank transfers.

Have you all heard about ? It’s the Proof-of-Stake blockchain with a two-way Ethereum bridge, ultra-fast transactions and built-in interoperability. And its native token was just added to Ramp SDK. Buy it today at !

DeFi Protocols

For a full list of DeFi Protocols on Harmony, visit

A fully decentralized protocol for automated liquidity provision.

DeFi Kingdoms is a game, a DEX, a liquidity pool opportunity, a market of rare utility driven NFTs, and it all plays out seamlessly in the incredibly nostalgic form of fantasy pixel art.

Tranquil is an algorithmic money market and liquid staking protocol for Harmony. It's now part of the Defira metaverse

Effective PoS & Token Economics

On-chain Verifiable Randomness

Website

Timeless Twitter

Timeless Medium

About Timeless

Shared Cultural Experiences

Non-Fungibility of Time

Web RSVP

Efficient and Fast Consensus

Effective Proof-of-Stake

Scalable Networking Infrastructure

Asynchronous Cross-Shard Transactions

Fun Facts

Why is the project called “Harmony”?

Why is the token called “ONE”?

Why is the logo designed as such?

Xoogler

How to Stake?

More Questions?

here
Staking Dashboard
Check out Harmony Protocol on YouTube!
Terms & Concepts
community

Release information

github
Select Create a new wallet
  • Scroll and select No thanks for Metamask data

  • Create Password and select Face ID (MetaMask cannot recover your password, write this down in a safe place, DO NOT TAKE A SCREENSHOT)

  • Allow Face ID

  • Secure Wallet (*even more important than password, should never be shared with anyone, even MetaMask)

  • Review Metamask Tips (store phrase in a secure location)

  • Make sure no one is watching before revealing phrase, click View

  • Write your Secret Recovery Phrase in a safe place

  • Choose to enable automatic security checks (we recommend that you enable this)

  • You’re all set! Now connect to Harmony

  • Now that you have Metamask set up, let’s get you ready for ONE 🎉

  • Click Wallet at the top of the screen

  • Click Add Network

  • Select Add for Harmony Mainnet Shard 0

  • Approve (make sure the information is the same)

  • Switch to Network

  • To Get ONE you’ll need your ONE address

  • With Metamask open make sure the Wallet is on Harmony Mainnet Shard 0

  • Click your address on the top of the page to copy it

  • Once the address is copied, select ONE

  • Select the three dots on the top right and View on block explorer

  • Paste in Search

  • Your ONE address will automatically load

  • Select the copy icon to copy the address

  • (For additional iPhone security measures, follow this link)

    Metamask

    Sending a Regular Transaction

    Receiving a Regular Transaction

    Address Format

    Provide Liquidity

    https://info.swap.harmony.one/#/harmony/pools
    Swap Preview
    Pool overview
    Liquidity Interface
    Liquidity Visualization

    As a validator, if you want to increase your stake, you will have to delegate to yourself. For delegating to your own validator, delegator-addr and validator-addr will be the same.

    Undelegating from a Validator

    As a validator, for un-delegating from your own validator, delegator-addr and validator-addr will be the same.

    Collecting Rewards

    You can only collect ALL of your block rewards at once, not partially.

    Download & Setup HMY

    Interacting with Ledger

    When using Ledger with HMY CLI, the only difference here is that you have to add parameter --ledgeron every command.

    Make sure HMY CLI is being run with super user permissions when interacting with Ledger.

    1. Displaying your Address

    Using the Binary:

    Using the Shell Wrapper:

    2. Displaying your Balance

    Using the Binary:

    Using the Shell Wrapper:

    3. Sending Transactions

    Using the Binary:

    Using the Shell Script:

    here
    cookbook
    ./hmy --node="https://api.s0.t.hmny.io" staking undelegate \
        --delegator-addr [ONE ADDRESS] --validator-addr [ONE ADDRESS] \ 
        --amount [AMOUNT] --passphrase
    ./hmy --node="https://api.s0.t.hmny.io" staking collect-rewards \
    --delegator-addr [ONE ADDRESS] --passphrase
    ./hmy keys list --ledger
    ./hmy.sh -- keys list --ledger
    ./hmy balances --node="<endpoint-address>" <ONE-address> --ledger
    ./hmy.sh -- balances --node="<endpoint-address>" <ONE-address> --ledger
    ./hmy transfer --node="<endpoint_address>" \
     --from <ONE_address> --to <ONE_address> \
     --from-shard <shard> --to-shard <shard> \
     --amount <amount> --chain-id <chain-id> --passphrase --ledger
    ./hmy.sh -- transfer --node="<endpoint_address>" \
     --from <ONE_address> --to <ONE_address> \
     --from-shard <shard> --to-shard <shard> \
     --amount <amount> --chain-id <chain-id> --passphrase --ledger

    Verifiable: The validity of the generated random number should be verifiable by any observer.

  • Scalable: The algorithm of randomness generation should scale to a large number of participants.

  • Since the random assignment (resharding) of validators only happens every epoch, Harmony’s DRG protocol only needs to execute once per epoch. It works as follows:

    1. During the epoch, each validator takes turns to become the FBFT leader and at the end of the epoch, all validators should have become leader for at least once. Each new leader runs VRF to create a random number R and a proof P using its BLS key. The random number and the proof will be attached to the first proposed block by the leader, which will be verified by the validators and committed to the blockchain.

    2. As soon as more than 2/3 of the validators have done the VRF submission, the immediate next leader will combine all the submitted random numbers with an XOR operation to get the preimage pRnd of the final randomness.

    3. The leader runs FBFT among all the validators to reach consensus on the pRnd and commit it in block.

    4. After pRnd is committed, the leader starts computing the actual randomness Rnd=VDF(pRnd, T), where T is the VDF difficulty and is set algorithmically such that the randomness can only be computed after k blocks.

    5. Once Rnd is computed, the leader initiates a FBFT among all validators to agree on the validity of Rnd and finally commit the randomness into the blockchain.

    The VDF (Verifiable Delay Function) delays the revelation of the final randomness.

    The VDF (Verifiable Delay Function) is used to delay the revelation of the final randomness in order to be secure against last-revealer-attack.The VDF is used to provably delay the revelation of Rnd and prevent the last leader from biasing the randomness by choosing to submit or not the last random number. Because of the VDF, the last leader won’t be able to know the actual final randomness before pRnd is committed to the blockchain. By the time Rnd is computed with the VDF, pRnd is already committed in a previous block so the leader cannot manipulate it anymore. Therefore, the most a malicious leader can do is to either blindly commit the randomness pRnd, or stall the protocol by not committing pRnd. The former is the same as the honest behavior. The latter won’t cause much damage as the timeout mechanism in FBFT will be triggered to switch the leader.

    1. The leader constructs the new block and broadcasts the block hash to all validators. This is called the “announce” phase.

    2. The validators check the validity of the message, sign the block hash with a BLS signature, and send the signature back to the leader.

    3. The leader waits for valid signatures with more than 2/3 voting power from validators (including the leader itself) and aggregates them into a BLS aggregate signature. Then the leader broadcasts the new block and the aggregated signature along with a bitmap indicating which validators have signed. Together with Step 2, this concludes the “prepare” phase.

    4. The validators check that the aggregate signature has at least 2/3 of total voting power, verify the new block, sign the received block from Step 3, and send it back to the leader.

    5. The leader waits for valid signatures with more than 2/3 voting power (can be different signers from Step 3), aggregates them together into a BLS aggregate signature, and creates a bitmap for all the signers. Finally, the leader commits the new block with the aggregate signatures and bitmaps into local DB, and broadcasts the aggregate signature and bitmap for all validators to confidently commit the block too. Together with Step 4, this concludes the “commit” phase.

    One of the drawbacks of BFT-based consensus is the potential stallment of the consensus if the leader is malicious. The solution to this in PBFT algorithm is the additional view change protocol on top of the consensus which is able to switch leaders when the consensus is stalled. The view change in PBFT works well in the traditional distributed system setting but it fails in the more complicated blockchain space. Particularly, the view change in PBFT is relying on the timeout mechanism where the timer is triggered based on the live progress of the consensus. This works fine if the nodes are always online and are in sync with the consensus progress. However, this won’t be true in the real world situation where nodes can be down for extended time or restarted due to machine crash, which will make the nodes having inconsistent view IDs and not able to make progress in the view change.

    We solve this problem by using an improved version of the view change protocol that’s fully synchronous based on the local clock rather than assuming the liveness of the nodes. Specifically, instead of setting the validator’s view ID based on the live progress of the consensus, the view ID is calculated based on the elapsed time of the last successfully committed block’s timestamp. Of course, there is no global clock to rely on in the calculation of elapsed time. Each validator will use their own local clock for that. However, this is totally fine as long as more than 2/3 of the validators maintain a relatively accurate local clock that’s not drifting by a few seconds. This is achievable in the protocol to make validators to periodically synchronize its local clock with NTP time.

    This improvement makes our view change protocol fully robust and functional as long as more than 2/3 of the honest validators are online, guaranteeing the liveness of the FBFT consensus. Besides, BLS aggregate signatures are also used in the view change protocol to reduce network communication cost, making it a very efficient process which takes a few seconds to finish.

    Fast Byzantine Fault Tolerance (FBFT)

    Network communication during a single round of consensus.

    Synchronous View Change

    9. You can see the transfer success
    1. Add Harmony network to metamask (testnet or mainnet)
    2. Select "Connect Hardware Wallet"
    3. Select the ledger account that you want to use
    4. Make sure to load your Ethereum app on the ledger
    5. You will see the account loaded and balance
    6. Click Send and input the transaction data
    7. Wait for review and sign using ledger
    8. Review transaction in the ledger and sign
    Click the "Show on Ledger" button to display your address on your Ledger device.

    Press the right button on Ledger to continue and confirm the address is correct.

    https://staking.harmony.one/ledger
    Check and confirm the destination address is correct.

    Check and confirm the amount is correct.

    Currently, staking dashboard only supports transaction on shard0.

    Click the right button to start signing the transaction:

    Once transaction is signed, Send window will pop-up on the staking dashboard and display the transaction status.

    It will display "Successful Send" once the transactions completes.

    Note: staking dashboard only process transactions on shard 0.

    Check the delegator address. Press the right button to show full address. If correct, press both left/right buttons to continue.

    Check the validator address. If correct, press both left/right buttons to continue.

    Check the delegation amount. If correct, press the right button to continue:

    Press right button for Sign Stake confirmation.

    The entire process is shown below:

    Once transaction is signed, Delegate window will pop-up on the staking dashboard and display the transaction status.

    Then clink “Send”to check the transaction details.

    Tips: If you don't know the exact shard number, don't worry, you can simply use Shard 0 as the default shard.

    1. Sign the order with your SafePal S1 hardware wallet.

    1. Confirm the payment.The transfer is broadcasted on chain. Don't forget to check transfer status later.

    To receive ONE tokens you need to provide the sender your ONE address which can be found using the SafePal app or wallet.

    Using the SafePal App:

    1. Select ONE which gives you the option of receive and send, click on receive

    2. You can either copy your ONE address for the wallet, save the QR code, or have the other party scan the QR code from your phone

    Using the SafePal Wallet:

    1. Turn on the wallet

    2. Scroll to "Asset Management" in the main menu

    3. Select "Harmony" out of all the options

    4. Click on receive, and then enter your PIN code

    5. Your QR code, as well as the ONE address for the wallet will show for the other party to use

    How to send ONE in SafePal?

    How to receive ONE in SafePal?

    After clicking Web Wallet, a new tab will open asking you to login into Math Wallet, click on login and you will enter the Web Wallet.
    1. Specify the shard you want to pull funds from using the Shard dropdown in the sidebar.

    2. Specify which account you want to send funds to using the To Address field.

    3. Specify which shard you want to send funds to using the Shard dropdown to the right.

    4. Specify the amount you wish to send in the Transfer Amount field.

    5. Specify the gas price you wish to pay using the Fee slider. Gas is a fee charged by the network for the computational work of mining a transaction into the blockchain.

    6. Click Transfer to complete the transaction! You will be shown a transaction receipt before finalizing the transaction.

    Opening Web Wallet

    Download & Setup

    Sending transactions

    Accept
    .
    Select the wallet from which you'd like to stake your ONE.

    You will be brought back to the Validator page of Staking Dashboard. You will be able to see your address on the top left corner under the Harmony logo which means you are now signed in to your account.

    Your one1 address will appear in the top-left of the staking page upon signing in.

    Locate and click on your preferred validator from the list.

    The validator profile page will open. Click on the Delegate button.

    Option #1: Enter the desired amount of tokens you would like to delegate and click next or...

    Option #2: Use the slider to determine the percentage of your ONE you wish to stake.

    Staking 100% of your ONE leaves you with no gas to pay for additional transactions. We suggest leaving a small amount of ONE in your wallet; a single ONE will cover over 1,000 transactions.

    Click Next and then click Confirm and Sign.

    Click Accept to confirm the signature request on the Math Wallet pop-up window and wait a few seconds. If the transaction completes, you will find a success confirmation pop-up on your screen.

    You are now staking your ONE with a validator and will begin earning rewards at the start of the following epoch.

    Click the Portfolio link on the left to view your stake amount, rewards accumulated, and a list of any validator to whom you have delegated your coins.

    https://staking.harmony.one/
    You will need to export the account in which you received the funds and import it to another wallet such as the CLI or Math Wallet.

    Example Using Math Wallet:

    1. Open Trust Wallet app

    2. Click on "Settings" on the bottom right

    3. Click on "Wallets"

    4. Click on the info circle next to "Multi-Coin Wallet"

    5. The screen will show backup options, select "show recovery phrase"

    6. Your mnemonic recovery phrase will show up, make sure to note them down accurately and securely

    7. Open Math Wallet Chrome Extension

    8. Click the + sign next to Harmony

    9. Select "Import Wallet"

    10. Select "Import by mnemonic"

    11. Type in your mnemonic that you noted from Trust Wallet, and click next

    12. Name your new imported wallet

    13. Open "web wallet" from the extension and you can access all your funds in all shards

    Below are the official instructions on how to restore/import Recovery Phrase (mnemonic) on Trust wallet.

    IMPORTANT DISCLAIMER

    Please note that Trust Wallet does not support Harmony's sharded network architecture yet, so all transactions to or from Trust Wallet must go through shard 0. You can only view and access your funds in shard 0.

    Incoming transactions

    Outgoing transactions

    For more details, please see these example cross-shard transactions using Trust Wallet:

    What to do if you receive funds in a shard other than shard 0 when using Trust Wallet?

    https://trustwallet.com

    Import/Export Wallet

    becomes
    ./hmy.sh --
    .

    If you are interested in compiling from source, then the process is more involved.

    Steps:

    1. Clone the repository at the same level as the main Harmony repo:

    1. Then setup the build flags:

    1. Call make in the go-sdk repo. This builds a binary named hmy:

    Congratulations! You can now use the binary to run the CLI.

    curl -LO https://harmony.one/hmycli && mv hmycli hmy && chmod +x hmy
    curl -O https://raw.githubusercontent.com/harmony-one/go-sdk/master/scripts/hmy.sh
    chmod u+x hmy.sh
    ./hmy.sh -d

    Throughout this guide, we will use the following syntax:

    • ./hmy: This is the CLI program

    • ./hmy.sh -- : This is the command to use the CLI with a shell wrapper (for macOS)

    • <argument>: This is a required argument

    • [argument]: This is an optional argument

    • / : This is a line break, used to break up a line while writing a command

    Download Harmony CLI tool

    1. For Linux

    If you have permission issues, enter the commands with "sudo" at the beginning, i.e. "sudo curl -LO https://harmony.one/hmycli && mv hmycli hmy && chmod +x hmy"

    2. For MacOS

    cd $(go env GOPATH)/src/github.com/harmony-one
    ls
    bls harmony mcl
    git clone https://github.com/harmony-one/go-sdk.git
    source harmony/scripts/setup_bls_build_flags.sh
    cd go-sdk
    make

    Note that since hmy is not statically linked, you cannot arbitrarily move hmy.sh to anywhere on your filesystem like you could with a single binary.

    3. Compiling from source

    Have , all built and prepared. This may require you to see instructions in the repo's readme.

    nick.eth @nicksdjohnson · Jun 11 Replying to @AutismCapital 2FA only works when you have a central service that controls access to your data. The wallet equivalent of 2FA is a hardware wallet.

    stephen tse | s.one @stse · Jul 4 why can't public and decentralized platforms do 2fa services?

    Pedro Gomes 🦇🔊📲 @pedrouid · Feb 13 Replying to @zmanian I think it’s also due to user demand

    A pure wallet would essentially just display different signing authorization screens without a specific use-case

    Cryptocurrency wallets on the other hand transfer funds, show balances, etc

    stephen tse | s.one @stse · Jul 4 how about separating wallets from authenticator? with one-time-password (otp) like google auth

    Sushi

    DeFi Kingdoms

    Tranquil Finance

    ViperSwap

    DefiLlama

    Epochs

    Crosslinks

    Stake to secure the network and earn reward

    Participate in open governance

    Receiving a HRC20/HRC721

    Videos

    Wallet Address
    Restore Wallet

    Crypto.com

    Binance US

    Ramp

    Transak

    Simplex

    CoinDCX

    WazirX

    @harmonyprotocol
    #ONE
    http://go.ramp.network/one
    here.
    this page
    bounty
    7. Confirm the transaction
    8. Use the Trezor hardware wallet device to confirm the transaction. Upon confirming, the transaction is successful.
    known issue on MetaMask
    Collecting rewards must be done in full. You are unable to collect a portion of your rewards.
    Signature Request in Math Wallet
    Successfully collecting your stake rewards.
    Undelegating Options - Specify an Amount or Set Maximum Amount
    Signing the Transaction
    Successful Undelegation

    Bridge tutorial

    1. Head over to layerzero.bridge.harmony.one

    2. Choose transfer direction

    3. Connect your Metamask account via Metamask button

    On wallet connection destination address is chosen automatically. You can specify another address on which you would like to receive your tokens.

    You need to be able to open your wallet in the network you sent your tokens to. Check that there are no network restrictions that prevents you from it. Also check if there is no limitations on a token type you can receive. Never send tokens to an exchange account!

    4. Select a token from the list. You can use the search field.

    When selected, token addresses for both networks will appear on the page. Note that token you receive never have the same address in destination network. You can check what token you get by following its address link. Please check if it's a desired token, and it has a liquidity in the target network.

    5. Enter the amount.

    When all fields are correctly filled in click on Continue to perform the bridge action.

    6. You'll see the notice. Please read it carefully.

    7. Read the message with fees very carefully on the next page. If you agree, click on Confirm.

    8. The bridge action will begin, and you will be asked multiple times to sign transactions using Metamask. Just click on Confirm for every action

    There are several steps in the bridge operation. Normally, it takes up to 20 min to finish the operation step.

    When the transaction is over, its hash appear on the corresponding step. You can follow the link for transaction details.

    9. If all went well, we have a successful bridge action.

    10. In order to see the tokens you might need to add the tokens to your wallet. There is a special button for it in the interface. You need to confirm adding in Metamask notification window.

    Alternately, you can use for adding tokens.

    NFTs

    Harmony is a fully Ethereum compatible blockchain ready to support all major NFT standards, including HRC721 and HRC1155.

    Several NFT platforms and campaigns have been launched on Harmony. The Harmony community has launched recently a NFT marketplace, daVinci Marketplace, in April 2021. See our other NFT highlights below:

    daVinci Marketplace

    daVinci is a NFT marketplace that supports the creation, buying and selling of NFTs minted on Harmony. You may access the marketplace here: https://davinci.gallery/

    Documentation and FAQs

    DaVinci social media: Telegram, Twitter, Discord

    (Quidd)

    Atari, Quidd and Harmony have teamed up to offer this exclusive limited edition Atari Centipede NFTs.

    The Centipede series, created by the legendary Dona Bailey, carry a special spirit and set the industry standard for decades.

    Beast Quest, Animoca Brands and Harmony Protocol have teamed up for this exclusive offer! Buy limited edition chests containing gems, VIP points & NFT collectible cards. Collect a set to win Harmony ONE tokens!

    LMA is a marketplace for the trading of unique non-fungible tokens (NFTs) art cards on Harmony Network.

    Everyone can purchase the unique art cards, and become the owner of that specific art card. For each purchase the price will increase automatically 100% and can be immediately purchase from other person.

    See: , ,

    Harmony and The Sandbox Partner to Enable Growth of Blockchain Gaming.

    We’re excited to announce a strategic partnership with one of blockchain gaming industry’s leading projects, . At Harmony, we believe in empowering gamers through true digital ownership of their game assets and creating new economic incentives through play-to-earn business model. We want to support and facilitate The Sandbox’s team mission to offering a gaming virtual world where players can play, create, own, trade, govern and monetize their gaming experience through the use of blockchain technology, NFTs and their native utility token $SAND powering their platform.

    Effective Proof-of-Stake

    Harmony is one of the first production mainnets to feature a fully sharded PoS architecture. Across the 4 shards in Harmony mainnet, blocks are produced every 2 seconds and cross-shard transactions are finalized in 2 block times.

    Harmony’s Effective Proof-of-Stake (EPoS) is the first staking mechanism in a sharded blockchain that achieves both security and decentralization. EPoS allows staking from hundreds of validators and the unique effective stake mechanism reduces the tendency of stake centralization. Meanwhile, stake delegation, reward compounding, double-sign slashing, and unavailability checking are also supported.

    Our token economics model incentivizes early stakers with higher rewards to bootstrap the network successfully. For those validators or delegators who would like to join , this guide will help you get started and learn about how everything works.

    Effective stake is a new measure introduced in EPoS in order to prevent stake centralization and still provide capitalistic fairness. For exactly how it achieves that, is the design rationale behind it.

    What token will I get after the bridge

    Use to find a token address you should have after the bridge.

    Here you can specify the network by pressing its button. If your token is on Binance or Ethereum, it can help you to avoid confusion. You can also set a filter by a token type if you know it.

    Search a token you plan to bridge. You can enter its address / symbol / name.

    Click on the paired token address, and it will lead you to the token page.

    There are tokens named the same in the different networks, but they always have different addresses. Compare token address and name to your token data to avoid a confusion.

    Adding Harmony

    Open MetaMask and click the list of networks at the top, then select "Add Network".

    You will be prompted for additional information. Use the table below to complete the step. Below you will see multiple options for RPC URL and Chain ID corresponding to mainnet vs testnet, and the various shards within each.

    Field
    Mainnet
    Testnet
    Devnet

    List of Transaction Error Messages

    Here is the list of failed transaction messages which can be checked by querying your transaction hash, checking the transaction hash on explorer or checking the blockchain pool transactions.

    Here is how with the hmy cli :

    DeFi

    Swap is a v3 Fork on Harmony. The decentralized exchange (DEX) gives users access to capital efficient liquidity pools.

    Uniswap v2 required all users to provide liquidity across the entire price curve from 0 to infinity, Uniswap v3 allows Liquidity Providers (LPs) to optionally concentrate capital in the price range they believe will generate the highest return.

    Sushi and Harmony are coming together to deepen our partnership and launch a full suite of Sushi products on Harmony.

    Specifically:

    1. $2 million in liquidity mining rewards for Sushi on Harmony

    Sushi

    How to Use Sushi on Harmony using the Harmony Bridge

    On June 24, 2021, we announced the , including the $4M in incentives for liquidity mining, Kashi, and also the $1M hackathon focused on onboarding software engineers from traditional finance to DeFi. Today, we’ll show you how to participate in the upcoming liquidity mining event on Harmony.

    In this post, we’ll show you:

    1. How to add the Harmony Network to your metamask

    CLI 1Wallet User Guide

    CLI (Command Line) Version of 1Wallet

    Go to and download the file that is appropriate to your operating system (1wallet-linux, 1wallet-macos, or 1wallet-win.exe).

    • I saved it in my downloads folder, but you can save it anywhere.

    • Open your Terminal (I'm a Mac user), and run the following commands:

    Now that you have installed your CLI 1Wallet, you can do several things including:

    Exchanges

    Powerful crypto trading platform for those who mean business.

    Huobi is the safest platform that makes it easy to buy & sell cryptocurrencies.

    Gate.io is one of the global top 10 cryptocurrency exchanges with authentic trading volume.

    Buy, Sell & Trade Bitcoin, Ethereum, Ripple, Litecoin and more cryptocurrencies in India.

    mcl
    bls
    harmony
    If you bridge a token from the network where it was issued, you receive a mapped token. Usually it has a prefix in the name that indicates a wrap.

    If you have a token on Harmony that is originated from Binance or Ethereum, you can bridge it back only to the network it came from. As a result you’ll get the origin token.

    Frequently bridged tokens:

    ONE

    If you bridge ONE from Harmony to Binance, your ONE will have a different address on Binance: 0x03fF0ff224f904be3118461335064bB48Df47938

    If you bridge ONE from Harmony to Ethereum, you receive 1ONE token with the address 0xD5cd84D6f044AbE314Ee7E414d37cae8773ef9D3

    If you bridge ONE from Binance or 1ONE from Ethereum, you get Native Harmony ONE on Harmony.

    BNB

    If you bridge BNB from Binance, you get bscBNB on Harmony.

    ETH

    If you bridge ETH from Ethereum, you get 1ETH in Harmony wallet.

    BUSD

    If you bridge BUSD from Ethereum, you get 1BUSD on Harmony.

    If you bridge BUSD from Binance, you get bscBUSD on Harmony.

    DAI

    DAI on Ethereum - 1DAI on Harmony

    USDC

    Ethereum USDC - 1USDC on Harmony

    USDT

    Ethereum USDT - 1USDT on Harmony

    this page

    transaction size is <tx size in Bytes>: oversized data

    A transaction cannot be more than 32KB to prevent DDOS attacks

    transaction value is <tx value>: negative value

    Transaction value is negative

    transaction gas is <tx gas-limit>: exceeds block gas limit

    Assumed to be hardcoded / config

    transaction sender is <tx from addr>: invalid sender

    Transaction sent from an invalid account

    transaction gas-price is <tx gas-price> ONE: transaction underpriced

    Too low transaction fee

    transaction nonce is <tx nonce>: nonce too low

    Occurs when the nonce associated with that transaction is too lower than the actual nonce

    insufficient funds for gas * price + value

    Usually when not enough holdings to pay for gas

    transaction gas is <tx gas-limit>: intrinsic gas too low

    Intrinsic gas is based on the size of the transaction including data

    transaction gas-price is <tx gas-price> ONE in full transaction pool: transaction underpriced

    Transactions can get dropped if tx pool is full and tx has lowest gas

    existing transaction price was not bumped enough: replacement transaction underpriced

    If a transaction attempts to replace another with less gas than the original, it will get dropped

    old transaction, nonce <tx nonce> is too low

    During promotion (from 'future' txs to pending txs in pool) the nonce is checked again

    unpayable transaction, out of gas or balance of <acc bal in ONE >cannot pay cost of <cost on ONE>

    During promotion (from 'future' txs to pending txs in pool) balance is checked again

    exceeds cap for queued transactions for account <one1... address>

    Each account has a limit in the number of txs it can put into the tx pool

    fairness-exceeding pending transaction

    If tx pool is full, txs from accounts with highest number of total transactions in pool will be dropped

    exceeds global cap for queued transactions

    Occurs when the tx can´t be queued because global cap for queued tx pool exceeds the max

    old transaction, nonce <tx nonce> is too low

    During demote (from pending txs in pool to 'future' txs) the nonce is checked again

    unpayable transaction, out of gas or balance of <acc bal in ONE > cannot pay cost of <cost in ONE>

    During demote (from pending txs in pool to 'future' txs) balance is checked again

    demoting pending transaction

    Tx was not added to the pool and move to queue of 'future' txs

    Message

    Notes

    failed messages are network and shard specifics, please use the shard you were sending the transaction from and change the --node value accordingly. Mainnet example on shard 1 would be : https://api.s1.t.hmny.io

    ./hmy failures plain --node="https://api.s0.t.hmny.io"
    ./hmy.sh -- failures plain --node="https://api.s0.t.hmny.io"

    Do NOT send bridged tokens directly to other blockchains or exchanges. This will not work and it might result in permanent loss of your tokens. Bridged tokens can only be used on Harmony network. The only way to send them out is by bridging them back.

    this guide
    Let’s call the bid price of the elected BLS keys the raw stake. The effective stake of an elected BLS key is a bounded value on its raw stake with a threshold around the median bidder’s raw stake (denoted as median_stake in the picture below). The upper threshold is 115% of the median_stake and the lower threshold is 85% of the median_stake. For a key with raw stake that’s out of bound of the threshold, its effective stake will be bounded by the corresponding threshold, otherwise, the effective stake is the same as the raw stake.

    The effective stake of each BLS key is determined at the last block of an epoch during the election process and will stay the same throughout the next epoch.

    Effective Stake is Bounded around Median Stake

    After the election and shard assignment, the BLS keys assigned in a shard become the committee of that shard. The voting power of an elected BLS key in a committee is the metrics used to measure the key’s weight in the consensus voting process. The total voting power of a shard committee is always 1.0 (or 100%). The consensus of a committee is only reached if more than 2/3 of the voting power is collected in the votes.

    Each BLS key in the committee has a certain voting power proportional to the share of its effective stake among the whole committee. For example, if the sum of the effective stake of all the keys in the committee is 10k ONE, a BLS key with effective stake of 1000 ONE will have voting power 0.1 (or 10%).

    For each of the blocks produced and confirmed within a shard, it should contain signatures from the keys with more than 2/3 of the total voting power of the shard committee. Each confirmed block will produce 7 ONE as block reward for the validators behind the committee. The 7 ONE is initially allocated to all the validators whose BLS key(s) signed on the block, proportionally to the voting power of the key(s) that signed.

    The allocated block reward for a validator will be further distributed to delegators proportionally to their stake after the commission fee is charged. For example, a validator with a commission rate of 25% got allocated 4 ONE for a block it signed. The validator staked 1000 ONE itself and it has 2 delegations each with 1000 ONE. The block reward distribution for this validator works as follows:

    1. The commission fee of 1 ONE (4 ONE * 25%) is cut from the original reward and credited to the validator.

    2. The rest of the reward of 3 ONE is then distributed to all the stakers (including both the validator and its delegators) proportionally based on their stake. Since the stakers (the validator and the two delegators) each staked/delegated 1000 ONE, they each receive 1 ONE in the reward distribution.

    If any BLS key(s) are detected signing conflicting blocks (i.e. blocks with the same height and view ID but with different block hashes), the validator will be slashed and forever banned from the network. When a validator is slashed, a certain percentage (i.e. slashing rate) of staked tokens from the validator and its delegators will be forfeited, of which half will be burnt and another half will be credited to the reporter of the double sign event.

    The slashing rate is calculated by simply summing all the voting power of the double signing keys with a minimum of 2%. For example, if 3 BLS keys with voting power of 3%, 3% and 4% double signed at the same time, 10% of all staked tokens will be slashed on the validators who hold the 3 BLS keys.

    The elected validators are obligated to validate blocks with their elected BLS keys. In every epoch, an elected validator should sign more than 2/3 of the signatures that its BLS keys are asked to sign.

    The signing performance is represented by a percentage value called uptime. A validator’s uptime is the ratio of the number of signatures its elected BLS keys signed over the total number of signatures the keys should sign. For example, a validator has 2 elected BLS keys and each of the keys is presented 100 blocks to sign. In the final tally, the first key signed 70 blocks and the second key signed 80 blocks. Overall, the validator’s uptime is (70+80) / (100*2) = 75%.

    At the end of each epoch, the validators with uptime of no more than 2/3 (66.66%) will have their status set to “Inactive” and be ruled out from the new election. For these inactive validators, they are required to manually set their status to “Active” by sending an EditValidator transaction in order to participate in future elections. We encourage validators to be proactive in maintaining a high uptime to ensure they remain elected and earn the most block reward possible.

    Effective Stake

    Harmony Open Staking
    here

    Shard Committee and Voting Power

    Block Reward

    Double Sign Slashing

    Uptime and Unavailability Penalty

    Network Name

    Harmony Mainnet

    Harmony Testnet

    Harmony Devnet

    New RPC URL

    https://api.harmony.one

    https://s1.api.harmony.one

    https://api.s0.b.hmny.io

    https://api.s1.b.hmny.io

    https://api.s0.ps.hmny.io https://api.s1.ps.hmny.io

    Chain ID

    (use number only)

    Shard 0: 1666600000

    Shard 1: 1666600001

    Shard 0: 1666700000 Shard 1: 1666700001

    Shard 0: 1666900000 Shard 1: 1666900001

    Currency symbol (optional)

    ONE

    ONE

    ONE

    Block Explorer URL (optional)

    The example below shows the configuration that needs to be done to connect to Harmony Mainnet on Shard 0:

    Click the Save button and your configuration should be done!

    Adding Harmony to MetaMask

    Fill the Endpoint Information

    Use the RPC URL and Chain ID of Shard 0 if you want to send/receive transactions from exchanges or do any staking transaction type.

    if you have any issue fetching data like chain-id, try to type the new RPC URL instead copy pasting it.

  • $2 million in rewards for Kashi borrowing/lending on Harmony

  • Onsen ONE<>ETH Yield Farming Pair

  • Sushi-specific hackathon challenges with $100,000 in prizes as part of our $1M hackathon

  • MochiSwap is a decentralized Multichain DEX DAO utilizing Harmony ONE, Binance Smart Chain along with a growing list of prospective Blockchains.

    MochiSwap is not chain centric, the principles stand with being Blockchain Agnostic and a core mission to bring DeFi and Decentralization to the entire world.

    Links: community, docs, farming

    Unifi Protocol is a group of non-custodial, interoperable, decentralized, and multi-chain smart contracts providing the building blocks for the next generation of DeFi development. Unifi provides a bridge to connect the existing economy of Ethereum-based DeFi products to growing DeFi markets on other blockchains.

    Links: community, medium, unifi report

    OpenSwap is a Defi Protocol to Empower Ethereum Users With subtly low tx fees. Built on Harmony BlockChain.

    Links: community

    Platform for ONE token holders to convert their tokens into other crypto and fiat pairs with atomic swaps.

    Jelly Swap enables peer to peer trades across different blockchains. It is an automated cross-chain exchange and is decentralized, permissionless and open-source. Everyone can participate, provide liquidity, and execute swaps. It offers fiat/crypto on & off ramps and has a unique market making model.

    Balancer is an asset management platform that acts as an automated portfolio manager, liquidity provider, and price sensor.

    Links: community, docs

    SwapCat is a decentralized Multichain DEX utilizing Harmony ONE and most other EVM-blockchains.

    SwapCat allows feeless fixed-price direct wallet-to-wallet trading of HRC20 assets.

    Swap

    Sushi

    Uniswap

    How to use the Harmony Bridge with Sushi
  • How to Yield Farm Sushi on Harmony

  • We’ve also included a simple infographic to use as a quick reference.

    How to Add the Harmony Network to your Metamask

    Step 1: Go to app.sushi.com

    Step 2: Connect your wallet

    Step 3: Click the button that says “Ethereum” in

    the top right-hand corner

    Step 4: Select the Harmony Network and if you don't see it, complete the steps below

    Step 5: Approve the switch in your wallet, and done!

    Follow the bridge tutorial with using the sushi token

    Step 1: Go to app.sushi.com

    Step 2: Switch your network to Harmony

    Step 3: Click the Yield tab to check which farms are available on the Harmony network that you would like to join.

    Step 4: Click the Pool tab

    Step 5: Select the tokens for a valid token pair you wish to add liquidity to *Note, when adding liquidity to a pair, both sides of the pair need to have exact monetary value.

    For example: [$100 1USDC / $100 ONE], would be [100 USDC / 1525 ONE] at time of writing

    Step 6: Add the amount of tokens you wish to add to the pool of the first token. The Sushi platform will automatically add the equal monetary value of liquidity to the second asset, given there is sufficient balance

    Step 7: Approve Sushi to access your tokens from your wallet

    Step 8: Click Supply, then Confirm Supply in the popup

    Step 9: Approve the transaction and relevant fees from your wallet, you will now receive your liquidity pair or LP tokens

    Step 10: Once the transaction approves, click the Yield tab and click the yield farming pair you wish to join, you should see your Wallet Balance now displays your received LP tokens

    Step 11: Input the amount of LP tokens you wish to add to the farm or click MAX

    Step 12: Click Approve

    Step 13: Allow Sushi to spend your SLP tokens from your wallet

    Step 14: Click Deposit

    Step 15: Confirm the transaction and the relevant fees from your wallet

    If you have any questions or problems, you can always contact the Harmony team at harmony.one/telegram. They have a super helpful and welcoming community and are happy to assist you.

    The rewards for Sushi staking are in Wrapped ONEs on Harmony. Please add this contract address as a token to your Metamask:

    0xcF664087a5bB0237a0BAd6742852ec6c8d69A27a

    You may use Sushi Swap itself to exchange between WONEs and ONEs.

    Full-stack partnership that Sushi has with Harmony

    How to Use the Harmony Bridge with Sushi

    How to Yield Farm Sushi on Harmony

    WONE Rewards

    The first step is to scan the QR code.

    Once you have done that, you can run the next command using the 6 digit authenticator code and a recovery address of your choice to create your 1Wallet.

    You should see a screen like this on your Terminal (yes, do you like my Matrix themed Terminal?):

    After that you can try to send a small amount of tokens to your newly created 1Wallet and in general test some of the other commands and functionalities.

    Let us know if you find any issues: https://github.com/polymorpher/one-wallet/issues

    cd downloads
    
    chmod +x ./1wallet
    
    ./1wallet
    https://github.com/polymorpher/one-wallet/releases/tag/v0.1-cli
    Commands:
      
    ./1wallet scan                            Build a new wallet and show its setup 
                                              QR code in terminal
    
    ./1wallet make <recovery-address> <code>  Deploy the wallet you just built to 
                                              blockchain and make it your "main" 
                                              wallet
    
    ./1wallet send <address> <amount> <code>  Send funds to another address
    
    ./1wallet main <wallet>                   Change "main" wallet
    
    ./1wallet list                            Show all wallets (address, name,
                                              balance)
    
    Options:
          --help      Show help                                           [boolean]
      -n, --network   The network you want to use. Can be mainnet, testnet, or any
                      valid URL                       [string] [default: "mainnet"]
      -r, --relayer   The relayer you want to use. Can be "beta" (hosted by ONE
                      Wallet) or any valid URL           [string] [default: "beta"]
      -p, --password  The password for accessing the Relayer. Default is
                      "onewallet" which is password for the "beta" relayer hosted
                      by ONE Wallet.                [string] [default: "onewallet"]
      -w, --wallet    The wallet you are going to use for transfer funds. By
                      default, the main wallet is used, which is the last wallet
                      you created                                          [string]
      -s, --store     Path of which your wallet data is stored. By default the data
                      is stored in a subdirectory "wallets" where this command line
                      tool is executed.               [string] [default: "wallets"]
          --version   Show version number                                 [boolean]
    ./1wallet scan
    ./1wallet make <recovery-address> <code>
    
    ./1wallet make one10jaac3q8qrd6fkun25t09q33tsrsz4uazctnj0 123456
    Kucoin is the most advanced and secure cryptocurrency exchange to buy and sell Bitcoin, Ethereum, Litecoin, TRON, USDT, NEO, XRP, KCS, and more.

    Bitmax is a Global Digital Asset Trading Platform founded by Wall Street quant trading professionals.

    Exchange By the Community, For the Community.

    The most advanced cryptocurrency exchange to buy and sell crypto.

    CoinDCX is the first hybrid crypto exchange. It's an all inclusive cryptocurrency ecosystem that offers professional trading experience to all types of traders. Trade 100+ cryptocurrencies like BTC, ETH, XRP and ONE! CoinDCX now supports ONE/INR, ONE/BTC, & ONE/USDT.

    Bitrue is an exchange featuring token trading and lending, while aiming to enable access to fair financial services around the globe

    Binance

    Huobi

    Gate

    WazirX

    Kucoin

    Animoca Beast Quest

    LMA Art Gallery

    Sandbox

    documentation
    telegram
    video
    The Sandbox
    Atari
    How to Restore a Multi-Coin Wallet
    How to Import a Wallet

    Create or Import Wallet

    When we mention the binary, we are referencing the ./hmy binary from the .

    When we mention the shell scripts, we are referencing the ./hmy.sh shell script from the

    New Wallet

    Creation of a new account is done as a function of a generated bip39 mnemonic with 256 bits of entropy. You must provide an account alias name.

    Using the Binary:

    ./hmy keys add <account-name> [--passphrase]

    Using the Shell Wrapper:

    ./hmy.sh -- keys add <account-name1> [--passphrase]

    Example:

    ./hmy keys add test-account --passphrase

    Write/store this seed phrase in a safe place. it is the only way to recover your account if you ever forget your password.

    This creates a keystore at the following directory:(hmy keys location)/account-name1/UTC--2019-09-16T21-25-35.297331000Z--678e7ea3dcb5f4e9724c0e761843572f10c49b73

    When creating keys this way, hmy will ask you to provide a passphrase.‌ Make sure you keep track of this passphrase for future use because the passphrase is used to decrypt the keystore when signing transactions. Also make sure you save the seed phrase, also called a mnemonic.

    If you don't provide a passphrase using the --passphrase flag, the default passphrase is an empty string "". The passphrase is used to decrypt the keystore when signing transactions.

    To know where your wallet file has been created, run the following command:

    Using the Binary:

    ./hmy keys location

    Using the Shell Wrapper:

    ./hmy.sh -- keys location

    You can check the list of wallets (local accounts) with the following command:

    Using the Binary:

    ./hmy keys list

    Using the Shell Wrapper:

    ./hmy.sh -- keys list

    Import Wallet

    Importing a Keystore

    ‌You might have an existing keystore made by Harmony's old wallet.sh program that ends with ".key" in the file name (example):

    one16qsd5ant9v94jrs89mruzx62h7ekcfxmduh2rx.key

    Or that starts with "UTC" in the file name (example):

    UTC--2020-01-15T01-02-06.606670000Z--9689a0711642bf08ea92ed98d552f0c1b8c8cefb

    Both these files can be imported into hmy using the command import-ks as shown below.

    ‌Keep in mind that you should know the passphrase associated with the imported keystore and pass it as a parameter as shown in the commands above. For keystores created by Harmony's wallet.sh, the default passphrase is an empty string; this matters for signing transactions.‌

    Sometimes you might have a secp256k1 private key, such as the one generated from the following command:

    You can import the key with an optional name and passphrase

    If no account name is provided, a random word concatenated with -imported will be used. If no passphrase is provided, the default passphrase will be used (which is blank). Note that the CLI currently only supports importing secp256k1 private keys.

    You can recover lost wallet keys by entering the mnemonic words you received (and hopefully saved) when creating it:

    Gnosis Safe

    The Gnosis Safe is a smart contract wallet with multi-signature functionality at its core. Gnosis Safe Application on Harmony:

    You can connect to Gnosis Safe using .

    1) Go to the Safe application on Harmony at and click on Connect Wallet.

    2) Chose your wallet.

    Select the MetaMask option in the connect wallet menu. Check that the correct MetaMask account is active and connected to the Harmony Network.

    Download & Setup

    Setup your Ledger device for ONE tokens

    Download and install the latest Ledger Live version onto your computer. Ledger Live is the app you use to manage your Ledger device. Please follow the official installation instruction .

    Open Ledger Live, select Manager. Turn on Developer Mode in Manager: Settings -> Experimental Features -> Developer Mode, as shown below:

    Ledger live provides app catalog for different types of apps, as shown below:

    To find the Harmony app, type harmony in the search bar, as shown below:

    Cookbook

    The easiest way to get detailed help is to use the cli itself. For example below is the cookbook which gives an overview of various commands.

    Adding Harmony

    Note: Harmony is installed on Rabby Wallet by default. The application automatically switches networks once you connect it to a Harmony dApp. However, older versions may not have Harmony added yet. Please follow the steps below to manually add the network.

    Open Rabby Wallet and click the list of networks at the top, then select "More".

    Then select "Add Custom Network"

    You will be prompted for additional information. Use the table below to complete the step. Below you will see multiple options for RPC URL and Chain ID corresponding to mainnet vs testnet, and the various shards within each.

    Transactions

    Block finality refers to the concept that a proposed block is finalized by the blockchain and can not be reverted or the cost of reversion is prohibitively high. Block finality is usually measured by how long it takes for the newly proposed blocks to be finalized. For example, in Ethereum, it takes more than 6 blocks or 1 minute to have reasonable confidence that the block is finalized and can not be reverted.

    Thanks to the nature of Harmony‘s FBFT consensus, blocks can be finalized as long as the 2/3 majority quorum is reached on the block. On Harmony mainnet, it now takes 2 seconds to finalize a newly proposed block and the transactions inside. Read more about our 2-second finality here:

    Harmony follows the same transaction fee model as Ethereum where users pay a certain amount of tokens to get their transactions processed and included in the blockchain. Since Harmony is fully EVM-compatible, users can translate directly the fee model from Ethereum and apply to Harmony. For example, a normal token transfer transaction cost 21000 gas. The gas price can be as low as 0.0000001 ONE (or 100 Gwei as in Ether) since Harmony have high TPS and the network is highly efficient and rarely clogged. This means a normal transfer cost only about 0.0021 ONE. In General, transactions in Harmony network cost around $0.00003 gas fee.

    The reason for Harmony to be able to afford such low fee is twofold. First, Harmony is Proof-of-Stake chain where the cost of running a node is much cheaper than PoW chains as no wasteful computation is needed. Second, Harmony is a highly scalable blockchain which currently provide thousands of transactions per seconds as throughput. This means users don't need to bid with high fee to get their transaction processed in time. We expect the low fee situation will stay as long as Harmony network is not fully utilized and even if that happens, we can solve the problem by extending the network with more shards to provide more transaction processing power.

    https://blog.harmony.one/harmony-2021-year-in-review-december-updates-chainlink-dayone-ecosystem-growthblog.harmony.one

    Note that the --passphrase flag only enables a password prompt after the command is entered, there are no other arguments necessary here (if you dont put --passphrase flag in the command it will assume no password needed and will not prompt you for one, which basically means that your wallet keyfile will not be password protected!).

    Using the Binary:

    Using the Shell Script:

    Examples:

    Importing a Private Key

    Using the Binary:

    Using the Shell Script:

    Example:

    Importing a Mnemonic Phrase

    Using the Binary:

    Using the Shell Script:

    Example:

    setup procedure
    setup procedure.

    By default, cookbook will show the mainnet shard 0 (https://api.s0.t.hmny.io) RPC endpoint. Use the parameter --node="<RPC>" so the example would show the s0 in the targeted network, example ./hmy cookbook --node="https://api.s1.os.hmny.io" would show s0 in OSTN

    ./hmy keys import-ks <absolute_path_to_keystore> --passphrase
    ./hmy.sh -- keys import-ks <absolute_path_to_keystore> --passphrase
    ./hmy keys import-ks /home/harmony/one16qsd5ant9v94jrs89mruzx62h7ekcfxmduh2rx.key --passphrase
    ./hmy keys import-ks /home/harmony/UTC--2020-01-15T01-02-06.606670000Z--9689a0711642bf08ea92ed98d552f0c1b8c8cefb --passphrase
    openssl ecparam -genkey -name secp256k1 -text -noout -outform DER | xxd -p -c 1000 | sed 's/41534e31204f49443a20736563703235366b310a30740201010420/PrivKey: /' | sed 's/a00706052b8104000aa144034200/\'$'\nPubKey: /'
    ./hmy keys import-private-key <secp256k1_private_key> [wallet_name] [--passphrase]
    ./hmy.sh -- keys import-private-key <secp256k1_private_key> [wallet_name] [--passphrase]
    ./hmy keys import-private-key b8798ca0a56ce16517ea37c6b1229cbb67cf0e022c423b044fe8f537830d8be5 my_wallet_name_here --passphrase
    ./hmy keys recover-from-mnemonic [wallet_name]
    ./hmy.sh -- keys recover-from-mnemonic [wallet_name]
    ./hmy keys recover-from-mnemonic nameofyourkey
    ./hmy cookbook --node="https://api.s0.t.hmny.io"
    
    #Cookbook of Usage
    
    #Note:
    
    #1) Every subcommand recognizes a '--help' flag
    #2) If a passphrase is used by a subcommand, one can enter their own passphrase interactively
    #   with the --passphrase option. Alternatively, one can pass their own passphrase via a file
    #   using the --passphrase-file option. If no passphrase option is selected, the default
    #   passphrase of '' is used.
    #3) These examples use Shard 0 of Open Staking Network as argument for --node
    
    #Examples:
    
    #1.  Check account balance on given chain
    ./hmy --node="https://api.s0.t.hmny.io" balances <SOME_ONE_ADDRESS>
    
    #2.  Check sent transaction
    ./hmy --node="https://api.s0.t.hmny.io" blockchain transaction-by-hash <SOME_TX_HASH>
    
    #3.  List local account keys
    ./hmy keys list
    
    #4.  Sending a transaction (waits 40 seconds for transaction confirmation)
    ./hmy --node="https://api.s0.t.hmny.io" transfer \
        --from <SOME_ONE_ADDRESS> --to <SOME_ONE_ADDRESS> \
        --from-shard 0 --to-shard 1 --amount 200 --passphrase
    
    #5.  Sending a batch of transactions as dictated from a file (the `--dry-run` options still apply)
    ./hmy --node="https://api.s0.t.hmny.io" transfer --file <PATH_TO_JSON_FILE>
    #Check README for details on json file format.
    
    #6.  Check a completed transaction receipt
    ./hmy --node="https://api.s0.t.hmny.io" blockchain transaction-receipt <SOME_TX_HASH>
    
    #7.  Import an account using the mnemonic. Prompts the user to give the mnemonic.
    ./hmy keys recover-from-mnemonic <ACCOUNT_NAME>
    
    #8.  Import an existing keystore file
    ./hmy keys import-ks <PATH_TO_KEYSTORE_JSON>
    
    #9.  Import a keystore file using a secp256k1 private key
    ./hmy keys import-private-key <secp256k1_PRIVATE_KEY>
    
    #10. Export a keystore file's secp256k1 private key
    ./hmy keys export-private-key <ACCOUNT_ADDRESS> --passphrase
    
    #11. Generate a BLS key then encrypt and save the private key to the specified location.
    ./hmy keys generate-bls-key --bls-file-path <PATH_FOR_BLS_KEY_FILE>
    
    #12. Create a new validator with a list of BLS keys
    ./hmy --node=https://api.s0.os.hmny.io staking create-validator --amount 10 --validator-addr <SOME_ONE_ADDRESS> \
        --bls-pubkeys <BLS_KEY_1>,<BLS_KEY_2>,<BLS_KEY_3> \
        --identity foo --details bar --name baz --max-change-rate 0.1 --max-rate 0.1 --max-total-delegation 10 \
        --min-self-delegation 10 --rate 0.1 --security-contact Leo  --website harmony.one --passphrase
    
    #13. Edit an existing validator
    ./hmy --node="https://api.s0.t.hmny.io" staking edit-validator \
        --validator-addr <SOME_ONE_ADDRESS> --identity foo --details bar \
        --name baz --security-contact EK --website harmony.one \
        --min-self-delegation 0 --max-total-delegation 10 --rate 0.1\
        --add-bls-key <SOME_BLS_KEY> --remove-bls-key <OTHER_BLS_KEY> --passphrase
    
    #14. Delegate an amount to a validator
    ./hmy --node="https://api.s0.t.hmny.io" staking delegate \
        --delegator-addr <SOME_ONE_ADDRESS> --validator-addr <VALIDATOR_ONE_ADDRESS> \
        --amount 10 --passphrase
    
    #15. Undelegate to a validator
    ./hmy --node="https://api.s0.t.hmny.io" staking undelegate \
        --delegator-addr <SOME_ONE_ADDRESS> --validator-addr <VALIDATOR_ONE_ADDRESS> \
        --amount 10 --passphrase
    
    #16. Collect block rewards as a delegator
    ./hmy --node="https://api.s0.t.hmny.io" staking collect-rewards \
        --delegator-addr <SOME_ONE_ADDRESS> --passphrase
    
    #17. Check elected validators
    ./hmy --node="https://api.s0.t.hmny.io" blockchain validator elected
    
    #18. Get current staking utility metrics
    ./hmy --node="https://api.s0.t.hmny.io" blockchain utility-metrics
    
    #19. Check in-memory record of failed staking transactions
    ./hmy --node="https://api.s0.t.hmny.io" failures staking
    
    #20. Check which shard your BLS public key would be assigned to as a validator
    ./hmy --node="https://api.s0.t.hmny.io" utility shard-for-bls 2d61379e44a772e5757e27ee2b3874254f56073e6bd226eb8b160371cc3c18b8c4977bd3dcb71fd57dc62bf0e143fd08
    Connecting Account

    1) Press Create new Safe.

    Create New Safe

    2) Name the safe. This will be stored locally. Press Start to continue.

    Name the Safe

    3) Add additional owners if you want. For each additional owner:

    1. Click Add another owner

    2. Give Owner a Name

    3. Enter Owner an Address

    4. Select how many owners will be required to confirm a transaction

    5. Press Review

    4) Submit your safe by clicking on Submit. You will need a very small amount of ONE tokens to confirm the transaction.

    Safe review

    5) Confirm the transaction on Metamask.

    6) If all steps were sucessfull your Safe should have been deployed. Just click on Continue.

    You can load the Safe on other devices, so everyone can sign transactions using the same safe, but using different accounts.

    1) On main page there is an option called Load Existing Safe. Click on this button as shown by the image below.

    Load Existing Safe

    2) Pick a name for your Safe and paste the Safe Address. The Safe Address can be found on the main page. If you are in doubt please check section Receive Tokens.

    Loading Existing Safe

    3) Review owners by clicking on Review.

    Review Owners

    4) Load Safe by clicking on Load.

    Load Safe

    If sucessfull, you should see your Safe loaded on main page.

    1) On the main page click on New Transaction.

    2) On next window click on Send funds. You can also send collectibles, but for this example we will be sending normal tokens.

    Send Funds

    3) On next window fill the recipient address you want to send your tokens to and the amount. After that click on Review.

    Review Transactions

    4) O next window click on Submit.

    5) A Metamask window will pop up for you to confirm the transaction. You should see your transaction confirmed on the next window. On our example we are using 2 of 3 signatures for the tokens to be sent out of the Safe.

    6) We need at least one more account to confirm the transaction on the safe. Just click on Confirm logged in with the required account.

    Click on Confirm

    7) Approve the transaction by clicking on Approve Transaction.

    Approve Transaction

    8) If all the parts have confirmed the transaction you should see Success on top.

    Once you have a Safe deployed, you can use the Safe address to receive tokens. Just click on Copy to clipboard.

    Copy to Clipboard

    Gnosis Safe on Harmony

    Connect Wallet

    Connecting with MetaMask

    https://multisig.harmony.one
    Metamask
    https://multisig.harmony.one

    Create Safe

    Load Existing Safe

    Send Tokens

    Receive Tokens

    There are two buttons associated with Harmony One app. The install button can be clicked to install Harmony One app to Ledger Nano. The app can be uninstalled by clicking the trash bin button.

    To use Harmony One app, please check your Ledger Nano device and click both buttons to open the app.

    To install Python 3.8.1 for windows, go to this website.

    At the end make sure you add the python binary to the path:

    Execute the commands below on the windows terminal:

    Click here to download the latest avaialable version. Make sure you download it using the raw format from Github like shown below:

    Move the ver1.6.0.hex file downloaded before tovenv\Scripts folder and execute the command below to install the app:

    Confirm the installation of the app on your Ledger.

    Confirm the installation of the app on your Ledger.

    Currently Harmony is available only on Ledger Nano S. Please use preferably the "Installing using Ledger Live" method, as this is the easiest way to get your Harmony App installed on Ledger.

    Installing using Ledger Live (RECOMMENDED)

    1. Turn on Developer

    Make sure to install the latest firmware on your device. This ensures compatibility with the Harmony app.

    2. Search for the App in the Catalog

    3. Install/Remove the App

    here
    python -m pip install --upgrade pip
    pip install virtualenv
    virtualenv venv
    cd venv
    cd Scripts
    Activate.bat
    pip install ledgerblue
    python -m ledgerblue.loadApp --appFlags 0x40 --path "44'/1023'" --curve secp256k1 --tlv --targetId 0x31100004 --targetVersion="1.6.0" --delete --fileName ver1.6.0.hex --appName One --appVersion 1.6.0 --dataSize 0 --icon 01ffffff00ffffff00ffffffffffffc7e1bbcdbbddbbcdbbc50bd8a3ddbbddbbddb3edc7e3ffffffff
    sudo apt update
    sudo apt install libudev1 libudev-dev libusb-1.0-0-dev python3-dev python3-pip python3-testresources git
    sudo pip3 install -U setuptools
    sudo pip3 install virtualenv
    virtualenv -p python3 venv
    source venv/bin/activate
    pip install ledgerblue
    git clone https://github.com/harmony-one/ledger-app-one
    cd ledger-app-one
    sudo ~/venv/bin/python -m ledgerblue.loadApp --appFlags 0x40 --path "44'/1023'" --curve secp256k1 --tlv --targetId 0x31100004 --targetVersion="1.6.0" --delete --fileName release/ver1.6.0.hex --appName One --appVersion 1.6.0 --dataSize $((0x`cat debug/app.map |grep _envram_data | tr -s ' ' | cut -f2 -d' '|cut -f2 -d'x'` - 0x`cat debug/app.map |grep _nvram_data | tr -s ' ' | cut -f2 -d' '|cut -f2 -d'x'`))  --icon 01ffffff00ffffff00ffffffffffffc7e1bbcdbbddbbcdbbc50bd8a3ddbbddbbddb3edc7e3ffffffff

    4. Using the App

    Installing Manually (Windows)

    These instructions are only for advanced users who want to install Ledger manually.

    1. Install Python

    This is the latest version as 18th Jan 2019 that was tested, newer version could work or not‌.ese instructions install version 1.6.0. If you want to install another version, change the parameters on step 3.

    2. Install Packages

    2. Download Latest Version

    3. Install the App

    These instructions install version 1.6.0. If you want to install another version, just download the corresponding version and change the parameters below accordingly.

    Installing Manually (Ubuntu Linux)

    These instructions are only for advanced users who want to install Ledger manually.

    1. Install Packages

    2. Downloading the App

    3. Installing the App

    These instructions install version 1.6.0. If you want to install another version, change the parameters below for any version available on the release folder.

    Alternatively, use the "Quick Add" option via Chainlist and search for "Harmony"
    Quick Add from Chainlist
    Field
    Mainnet
    Testnet
    Devnet

    Network Name

    Harmony Mainnet

    Harmony Testnet

    Harmony Devnet

    The example below shows the configuration that needs to be done to connect to Harmony Mainnet on Shard 0:

    Click the Save button and your configuration should be done!

    Adding Harmony to Rabby Wallet

    Fill the Endpoint Information

    Select "More"
    Select "Add Custom Network"

    Use the RPC URL and Chain ID of Shard 0 if you want to send/receive transactions from exchanges or do any staking transaction type.

    if you have any issue fetching data like chain-id, try to type the new RPC URL instead copy pasting it.

    The latest design is documented here: https://gitlab.com/mukn/harmony1-proposal/-/blob/main/README.md. The following design is deprecated.

    We will adopt the asynchronous cross-shard communication model just like we did for cross-shard ONE token transfer. Meaning any smart contract which needs to call another smart contract from another shard will have the sender contract transaction finalized first at initiating shard, then a receipt will be created including the call data, and finally the receipt will be sent and processed at the destination shard.

    A new Opcode “CALL2” will be added to the virtual machine which is used for a cross-shard smart contract call.

    CALL2’s input is similar to CALL but with an another shardID parameter:

    Unlike CALL which actually executes the contract code within the same shard, CALL2 won’t run any code but only lead to the creation of a receipt after the transaction is successfully confirmed in this block. The receipt structure can be like this:

    Specifically:

    • TxHash: the transaction hash of the original transaction sent from the real user

    • Sender: the address of the transaction sender

    • From: the address of the caller smart contract which initiated the cross-shard call

    • To: the address of the callee smart contract in another shard

    • ShardID: the shardID of the caller smart contract

    • ToShardID: the shardID of the caller smart contract

    • Input: the input data for the smart contract call, exactly like the payload of a normal intra-shard transaction that calls a smart contract

    • Amount: is the among of ONE that is sent along with the call to the callee smart contract

    • Gas: the gas that’s going to be paid to the destination shard.

    Once the corresponding block of the receipt is finalized, a proof data for the receipt will also be generated. This is exactly the same as cross-shard ONE token transfer:

    Once the receipt and proof are obtained, they will be sent from source shard to destination shard (CXReceipt.ToShardID) for processing.

    The destination shard process the cross-shard smart contract receipt by:

    1. Verify the receipt is valid using the proof data

    2. Use the CXReceipt.To as the callee smart contract address and CXReceipt.Input data as the contract call data for contract execution. CXReceipt.Amount and CXReceipt.Gas are also used the same way as normal contract calls.

    3. If this contract call produces additional cross-shard contract calls. Additional receipts will be generated and the same cross-shard call process will happen.

    1. What if the callee contract doesn’t exist in the destination shard?

      1. We could simply abort the cross-shard call but credit the gas to the destination shard. This way, we don’t need another cross-shard receipt to go back to the source shard to credit the gas.

      2. Or we could create a brand new contract. This requires the receipts include the contract bytecode which can be user specified or the same as the caller contract’s code (in case of HRC20 contract replication across shards)

    2. What if the gas sent in the receipt is not enough to pay for the transaction?

      1. Simply abort the contract call as a normal transaction “Out of Gas” situation.

    3. In any failure cases of the cross-shard contract call. The sent token in CXReceipt.Amount should be credited to?

      1. The sender address in the destination shard. This avoids having to send another cross-shard receipt to credit the token back to the sender shard.

    Transaction Finality

    Transaction Fees

    (caller ContractRef, addr common.Address, input []byte, gas uint64, value *big.Int, shardID uint32)
    // CXReceipt represents a receipt for cross-shard transaction
    type CXReceipt struct {
      TxHash    common.Hash // hash of the cross shard transaction in source shard
      Sender    common.Address
      From      common.Address
      To        common.Address
      ShardID   uint32
      ToShardID uint32
      Input     []byte
      Amount    *big.Int
      Gas       uint64
    }
    // CXReceiptsProof carrys the cross shard receipts and merkle proof
    type CXReceiptsProof struct {
      Receipts     CXReceipts
      MerkleProof  *CXMerkleProof
      Header       *block.Header
      CommitSig    []byte
      CommitBitmap []byte
    }

    Cross-Shard Smart Contract Transaction

    Design Questions:

    https://explorer.harmony.one/
    https://explorer.testnet.harmony.one/
    https://explorer.ps.hmny.io
    MochiSwap
    Unifi Protocol
    OpenSwap
    JellySwap
    SeeSwap
    SwapCat
    Bitmax
    ViteX
    HitBTC
    CoinDCX
    Bitrue
    Harmony’s Strategy and ArchitectureMedium

    Sending Transactions

    Perhaps the most important feature of the hmy CLI is the ability to create and send signed transactions to the Harmony blockchain.

    Check for finality of the transaction by using the transaction hash like so:

    Let's first check what chain-ids are available for us to use, we can do that easily with:

    Notice that the output is pretty printed JSON, most outputs of hmy are JSON

    @BinanceUS | Buy & Sell Crypto.@BinanceUS
    CoinDCX: Crypto Investment App | Trusted by 1.4 Cr+ UsersCoinDCX
    Buy Bitcoin, Cryptocurrency at India’s Largest Exchange | Trading Platform | WazirXwazirXindia
    https://medium.com/harmony-one/harmony-partners-with-simplex-allowing-users-to-buy-one-tokens-with-fiat-b74885d13dadmedium.com
    encoded and
    hmy
    defaults to showing it nicely indented. Sometimes though you might want to turn that off, you can do that for any command with the flag
    --no-pretty
    .

    By default, hmy assumes the testnet chain-id; override that with the --chain-id flag

    We'll use the transfer subcommand of hmy to send a transaction.

    Notice that simply invoking the transfer subcommand gave us an error message about certain flags not being set. We'll need to provide legitimate values for these flags for our transaction to proceed successfully. Reading off the flags in the error message from left to right, the semantic meanings are as follows:

    • amount: The quantity of Harmony One token to transfer from the senders to the receiver

    • from: The sender's one address

    • from-shard: Shard from which sender's balance will be drawn from

    • to: Receiver's ONE address

    • to-shard: Shard in which receiver will receive the amount sent by the sender

    • passphrase: your wallet passphrase, which is prompted when you hit enter (or you can use a txt file with password and add it: --passphrase file.txt)

    A sharded blockchain is a new kind of blockchain architecture where the network is partitioned into sub-networks called shards. Sharding is one of the distinguishing features of Harmony and it is key to solving the traditional scalability problems encountered in other blockchain protocols.

    Note: The same ONE address will have a different balance in each shard. Currently Harmony mainnet has four shards while testnet has three shards. Sending a transaction from one shard to another is called a "cross-shard transaction."

    Thus, a correct usage of transfer looks like:

    Try out your transaction with the flag --dry-run, this flag tells hmy to create, cryptographically sign the transaction but not actually send it off. Sender's balances are checked and the output is a JSON dump of the signed transaction.

    Signing and sending a transaction is very quick, about 2 seconds maximum. The actual sending of the transaction is done via an RPC (Remote Procedure Call), you'll notice that we did not explicitly say where to send the transaction to. This is because the default destination of the RPC call goes to http://localhost:9500, the default HTTP RPC server running when you start a local harmony blockchain. For real world usage though, you'll want a different location. You can control that with the --node flag (see the top of this page for an example).

    Once an RPC machine receives a transaction, it sends you back a transaction hash. This transaction hash is the key identifier used when querying the blockchain for transactions.

    We can pull down details of the finalized transaction with ./hmy blockchain transaction-receipt as well:

    You can tell hmy to wait until transaction confirmation by providing a positive integer value to flag --wait-for-confirm. For example, --wait-for-confirm=10 will try checking the receipt of the transaction for 10 seconds.

    ./hmy transfer --node="<endpoint-address>" \
     --from <ONE_address> --to <ONE_address> \
     --from-shard <shard> --to-shard <shard> \
     --amount <amount> --chain-id <chain-id> --passphrase
    ./hmy.sh -- transfer --node="<endpoint-address>" \
     --from <ONE_address> --to <ONE_address> \
     --from-shard <shard> --to-shard <shard> \
     --amount <amount> --chain-id <chain-id> --passphrase
    ./hmy --node="https://api.s0.t.hmny.io" \
     transfer --from one1yc06ghr2p8xnl2380kpfayweguuhxdtupkhqzw \
     --to one1q6gkzcap0uruuu8r6sldxuu47pd4ww9w9t7tg6 \    
     --from-shard 0 --to-shard 1 --amount 12.5 --chain-id mainnet --passphrase mypassword
    ./hmy blockchain transaction-receipt <transaction_id> --node="<endpoint-address>"
    ./hmy.sh -- blockchain transaction-receipt <transaction_id> --node="<endpoint-address>"
    ./hmy --node="https://api.s0.t.hmny.io" \
     blockchain transaction-receipt \
     0x599793f313ee17566f8d09728b9d043b8e26135ddce86beeee13f98767d452f7
    ./hmy blockchain known-chains
    ./hmy.sh -- blockchain known-chains
    ./hmy blockchain known-chains
    
    [
      "mainnet",
      "testnet",
      "devnet"
    ]

    Overview

    Sending a transaction

    Using the Binary:

    Using the Shell Wrapper:

    Example:

    Checking the transaction hash

    Using the Binary:

    Using the Shell Wrapper:

    Example:

    Detail

    ChainIDs

    Using the Binary:

    Using the Shell Wrapper:

    Example:

    ./hmy transfer
    Error: required flag(s) "amount", "from", "from-shard", "to", "to-shard" not set
    ./hmy transfer --node="<endpoint-address>" \
     --from <ONE_address> --to <ONE_address> \
     --from-shard <shard> --to-shard <shard> \
     --amount <amount> --chain-id <chain-id> --passphrase
    ./hmy.sh -- transfer --node="<endpoint-address>" \
     --from <ONE_address> --to <ONE_address> \
     --from-shard <shard> --to-shard <shard> \
     --amount <amount> --chain-id <chain-id> --passphrase
    ./hmy transfer --node="https://api.s0.t.hmny.io" \
     --from one1yc06ghr2p8xnl2380kpfayweguuhxdtupkhqzw \
     --to one1q6gkzcap0uruuu8r6sldxuu47pd4ww9w9t7tg6 \
     --from-shard 0 --to-shard 1 --amount 10 --chain-id mainnet
    {"transaction-receipt":"0x455f98a3aa11ef50ee5cc5ac8bbd79e04f2fe353180bb7e25fc6c921fc8fdc83"}
    ./hmy blockchain transaction-receipt --node="<endpoint-address>" <transaction-hash>
    ./hmy.sh -- blockchain transaction-receipt --node="<endpoint-address>" <transaction-hash>
    ./hmy blockchain transaction-receipt \
        --node="https://api.s0.t.hmny.io" \
        0x25dd32397b5a69146b2dc3bbdc8ef8aae271e9b12a36c6dff1eb8995cac9dcba
    {
      "id": "0",
      "jsonrpc": "2.0",
      "result": {
        "blockHash": "0x67eb5d671af76814d9ab326f9ec36c5b889b872e0c34e8cbe484aea20f0611ea",
        "blockNumber": "0x21017f",
        "contractAddress": null,
        "cumulativeGasUsed": "0x5208",
        "from": "one1sp4q22r7cc78742mzrufu6xwcekqxjgq78jk3m",
        "gasUsed": "0x5208",
        "logs": [],
        "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "shardID": 0,
        "status": "0x1",
        "to": "one129r9pj3sk0re76f7zs3qz92rggmdgjhtwge62k",
        "transactionHash": "0x25dd32397b5a69146b2dc3bbdc8ef8aae271e9b12a36c6dff1eb8995cac9dcba",
        "transactionIndex": "0x0"
      }
    }

    Our first transaction

    Using the Binary:

    Using the Shell Wrapper:

    Example:

    hmy assumes that the private keys needed for signing the transaction on behalf of the sender (one1yc06ghr2p8xnl2380kpfayweguuhxdtupkhqzw in this example) exist in the local keystore or in the hardware wallet if the --ledger flag was used.

    The sender's account must have enough of a balance on the from-shard to send a transaction. In our example,one1yc06ghr2p8xnl2380kpfayweguuhxdtupkhqzw must have an amount balance of at least 10 in shard 0.

    Result of the transaction

    Simply having a transaction hash does NOT imply that the transaction was successfully accepted by the blockchain. A transaction is successfully accepted once it has been added to the blockchain. In the case of cross-shard transactions (when the from-shard, to-shard values are different), this means each shard has added the transaction to their blockchain.

    Using the Binary:

    Using the Shell Wrapper:

    Example:

    If the transaction has not finalized then the "result" key in the JSON output will have value of null.

    You should set the value of --node to the same shard that sent the transaction, notice that the URL we used, https://api.s0.t.hmny.io contained s0, this means that this URL is targeting shard 0. For further information, see .

    New RPC URL

    https://api.harmony.one

    https://s1.api.harmony.one

    https://api.s0.b.hmny.io

    https://api.s1.b.hmny.io

    https://api.s0.ps.hmny.io https://api.s1.ps.hmny.io

    Chain ID

    (use number only)

    Shard 0: 1666600000

    Shard 1: 1666600001

    Shard 0: 1666700000 Shard 1: 1666700001

    Shard 0: 1666900000 Shard 1: 1666900001

    Currency symbol (optional)

    ONE

    ONE

    ONE

    Block Explorer URL (optional)

    https://explorer.harmony.one/

    https://explorer.testnet.harmony.one/

    https://explorer.ps.hmny.io

    Harmony’s New TokenomicsMedium
    https://twitter.com/RampNetwork/status/1410644146444963840?s=20twitter.com
    Crypto.com App: Download the Best BTC, ETH & CRO Trading App - Crypto.com USCrypto.com
    Logo
    SafePal Teaser.mp4Dropbox

    Sef Wallet

    Send. Swap. Connect. | Available at https://sefwallet.one

    Sef Wallet is a smart DeFi wallet built for Harmony blockchain. Always low fees, and fast transaction time.

    Sef Wallet is part of the & focusing on onchain with wallet security.

    ADVANCED SECURITY

    Querying the Blockchain
    Logo
    Logo
    Guardians for added protection
  • Spending limits

  • Open-source contracts

  • Independently audited

  • AUTHENTICATOR RECOVERY

    No more worrying about losing mnemonic keys, private keys, email or passwords to restore your wallet. Recovery is done with your authenticator codes on the blockchain with merkle proof.

    ASSETS MANAGEMENT

    • Supports HRC20 send/transfer

    • Local prices conversions to dozens of languages

    SWAP ON SUSHISWAP

    • Native support for sushiswap

    • Supports over dozens of of tokens

    CONNECT TO DAPPS

    • Connect any dapps with WalletConnect

    • Access to Defi features on Sushiswap.

    Please visit https://sefwallet.one with your mobile device to download the harmony mobile app.

    Harmony Smart Defi Wallet

    $20M Grants & Bounties on Wallet
    $300M+ on Bounties, grants, DAOs

    FAQ

    What is LayerZero bridge?

    LayerZero is a cross-chain bridge that allows exchange of crypto assets (e.g., fungible/non-fungible tokens, stablecoins) between Ethereum or Binance Smart Chain and Harmony blockchains.

    The Bridge is used to migrate assets from one chain to another. If you have assets on Ethereum or Binance Smart Chain, you can use the bridge to move them to Harmony blockchain and get corresponding assets on Harmony. LayerZero also allows redemption of the exchanged assets back at any time.

    LayerZero Bridge is accessible here.

    Is there a tutorial explaining how to use LayerZero?

    There is bridge process step-by-step explanation

    What account can I use to receive bridged tokens?

    You need to be able to open your wallet in the network you sent your tokens to. Check that there are no network restrictions that prevents you from it. Also check if there is no limitations on a token type you can receive. Never send tokens to an exchange account!

    Can I bridge tokens to the contract address?

    No, bridging to contract address directly is not supported. It might result in permanent loss of your tokens.

    Please refer to to find out.

    You will need identify the contract address of the asset your just bridged looking at and add it into metamask

    Oracle 1LINK

    Natives

    • 1ONE (Wrapped ONE on Ethereum) - no redeploy required

    • bscONE (Wrapped ONE on BSC) - no redeploy required

    • ETH

    Stablecoins

    • 1USDC

    • 1USDT

    • 1DAI

    Partners

    • 1AAG - no token redeploy

    • 1FRAX

    • 1FXS

    You can find the list the bridged assets

    Assets are mapped 1:1. For example, 10 BUSD on Ethereum after bridging will be available as 10 1BUSD on Harmony. Here, “1BUSD“ is the token symbol of the token on Harmony corresponding to “BUSD“ token symbol on Ethereum.

    Same 1:1 mapping holds true for Binance Smart Chain. However, the assets from two different parent chains (Ethereum or Binance Smart Chain) after bridging will be represented using different bridged assets on Harmony. For instance, 5 Binance Smart Chain BUSD after bridging will be available as 5 bscBUSD on Harmony. Here, “bscBUSD” is the token symbol of the token issued on Harmony corresponding to “BUSD” token symbol on Binance Smart Chain.

    And, the 1BUSD and bscBUSD on Harmony chain are not interchangeable, meaning one cannot bridge BUSD from Ethereum to Harmony and then withdraw it on Binance Smart Chain. Same for other tokens.

    There is no limit on the amount of tokens that can be bridged.

    Yes: you can bridge tokens back and receive back the same amount of the original token there. For example, you bridged USDC from Ethereum to Harmony and got 1USDC token on Harmony. At any time you can bridge 1USDC back to Ethereum and receive USDC token.

    No, Ethereum bridged tokens can only be sent back to Ethereum. Same applies for Binance bridged tokens.

    No, do NOT send bridged tokens directly to other blockchains or exchanges. This will not work and might result in permanent loss of your tokens. Bridged tokens can only be used on Harmony network. The only way to send them out is bridging them back.

    Yes. You can transfer the bridged tokens to other users, and they can redeem them back to their Ethereum or Binance accounts. This is possible because when you lock your token, it gets pooled into a bridge smart contract from which any redeem request can be serviced without tying the locked tokens and redemption to a specific user account.

    Once you use LayerZero to transfer your original tokens to Harmony, the original tokens get stored and locked in the LayerZero contracts: you do not own those tokens on Ethereum or Binance anymore. You receive the same amount of tokens on the Harmony blockchain.

    No: The supply of the original token never change as a result of using LayerZero: LayerZero bridge locks a certain amount of a token on Ethereum blockchain (essentially taking it out of circulation) and mints the exact same amount of tokens on the Harmony blockchain, that represents in all respects the original token (i.e. regenerating the locked supply). As a result, the circulating supply of the original token will stay the same: it's just split across two different blockchains instead of one.

    It depends on which blockchain you want transfer assets from. If it is from Harmony blockchain, you need ONE tokens, if it is from Ethereum you need ETH tokens, from Binance Smart Chain (BSC) BNB tokens and so on.

    Cost of the bridge operation consists of the LayerZero bridge fee and costs of transactions. You'll see the page with the fee information that you need to confirm before the operation. Transaction fee depends on the chain gas prices and are confirmed in Metamask before the transaction. LayerZero fees are calculated dynamically based on Oracle and Relayer prices for the destination chain. They are transferred in the same transaction as the bridges amount. Fees are paid in native tokens of the first chain, so if you transfer any token from Ethereum, you pay fees by ETH token, ONE for Harmony and BNB for Binance.

    You can find the operation details on your operation page. It's the page you see when you perform the operation on Every bridge operation is associated with a unique operation id, which is shown on the page. You can find links to transactions of the operation steps and the status of each step. Also, you can always find your operation in the Use "My transaction" option to see only operations for your connected Metamsk account.

    If your transaction is pending for too long, you can manage it via your wallet. We can’t make it faster or cancel it. If the transaction is on Harmony side, make sure you use for Harmony network.

    Normally it takes less than 20 minutes per each step of the bridge operation. Delays are also possible, but they won't affect your funds. If your operation is in progress for more than an hour, you can fill in the and include you problem description. Note that your request will be ignored if you send it earlier.

    Bridge does not swap tokens, it only provides wrapped tokens. For the token that you bridged, you have received wrapped token to your account. To find out which one, you can refer to .

    • Note that:

    • Bridge is not a swap, and you won't receive ONE if you weren't bridging ONE token.

    • A token address is never the same in the different networks, even when a symbol is the same.

    If you don't see that token in your account, and add it to your wallet to see the correct balance as shown If you have problems with finding or adding a token, please ask for help in community groups.

    • If you added a token and tokens aren’t shown, check that:

    • You added a token to the receiver wallet of your operation.

    • The receiver address of your operation is correct. If you found out that you made a mistake in the address, we can’t help you with that. You can reach your funds only if you have access to the wallet.

    If a correct balance isn’t shown after you added a token, and you have double-checked everything, fill in the and include you problem description. It’s required to include a token address you added and a wallet you added it to.

    Please fill in the and include you problem description.

    There can be many possible causes. Sometimes the reason is clear from the error message (for example, low balance, not enough tokens to cover gas). Often there is a problem with the wallet connection. Try these steps to solve it:

    • Make sure your browser and the wallet extension are updated to the latest version

    • Make sure that your browser doesn’t block pop-up windows.

    • Try to clear the cache and relogin.

    If you’ve checked your settings, but you still have errors, please share your problem in the #support or #bridge channel.

    Unfortunately, your tokens are permanently lost and not recoverable.

    If you can’t open your wallet in the network where your tokens were sent, we can’t assist. You can try to reach a support of the service that gave you this account.

    Unfortunately, we can't help in such case. We don't have access needed to transfer tokens between accounts.

    You can address your question to Harmony community in Discord or Telegram. Please beware of scammers. Remember, admins never DM you first. Please refer to our first.

    Querying the Blockchain

    hmy provides several subcommands under the blockchain subcommand which let you query the blockchain.

    The Harmony blockchain is a sharded blockchain, therefore some commands depend on which shard you target. The shard you target when querying is controlled by the --node flag. For example, if a transaction is made between shard 0 and shard 1, the transaction receipt must be queried from whichever shard sent the funds - in this case shard 0, so the --node flag would look like this:

    For other shards, please replace the s0 with the appropriate shard number - eg. s1 for shard 1, s2 for shard 2 etc.

    List of available commands

    By using ./hmy blockchain help command we can see that the following options are available:

    • block-by-number - get a harmony blockchain block by block number

    • current-nonce - current nonce of an account delegation information about delegations

    Here are some examples of the above commands that you will use frequently:

    transaction-by-hash

    Checking the hash of your transaction to see the transaction data and if the transaction has been completed

    Using the Binary:

    ./hmy blockchain transaction-by-hash <transaction-hash> --node="<endpoint-address>"

    Using the Shell Wrapper:

    ./hmy.sh -- blockchain transaction-by-hash <transaction-hash> --node="<endpoint-address>"

    Example:

    ./hmy blockchain transaction-by-hash 0x75d91100734edcd1497200cb438f0864d2ed4a44a88bf8c87855cb2b3cc54001 --node="https://api.s0.t.hmny.io"
    
    {
      "id": "0",
      "jsonrpc": "2.0",
      "result": {
        "blockHash": "0xf9c7e165d5636c7dd8a06bf2c53c364d7597028d7e10a3c5256462adf97b1f73",
        "blockNumber": "0xa35",
        "from": "one1mrrq665uarrmfur6hptevx9furph4293a37zme",
        "gas": "0x5208",
        "gasPrice": "0x3b9aca00",
        "hash": "0x75d91100734edcd1497200cb438f0864d2ed4a44a88bf8c87855cb2b3cc54001",
        "input": "0x",
        "nonce": "0xe",
        "r": "0x4a17d89f7b1818fe72d480a64fecfede1d73bd7242fcaabf907204a7022be806",
        "s": "0x557be1b9c378ecbae972e71ec6fc5d484abfe8cb7961ccd87724865c3a7020bc",
        "shardID": 0,
        "timestamp": "0x5e1cfcc1",
        "to": "one1mrrq665uarrmfur6hptevx9furph4293a37zme",
        "toShardID": 1,
        "transactionIndex": "0x0",
        "v": "0x2a",
        "value": "0xde0b6b3a7640000"
      }
    }

    transaction-receipt

    Get information about a finalized transaction:

    Checking the network status, last block, epoch, leaders, based on the shard number:

    The Definitive Guide to Harmony Open StakingMedium
    Logo
    Logo
    known-chains - print out the known chain-ids
  • latest-header - get the latest header

  • median-stake - median stake of top 320 validators with delegations applied stake (pre-epos processing)

  • protocol-version - the version of the Harmony Protocol

  • transaction-by-hash - get transaction by hash

  • transaction-receipt - get information about a finalized transaction validator information about validators

  • pool - get transaction pool information

  • Using the Binary:

    Using the Shell Wrapper:

    Example:

    latest-header command

    Using the Binary:

    Using the Shell Wrapper:

    Example:

    block-by-number

    Note the block-number provided must be in hex with a 0x prefix.

    For example if you call latest-header and get a result of 10657 you convert this to hex which is 29A1 and then use the value 0x29A1 for block-number. This can be done using

    printf '0x%x\n' 10617 #0X29a1

    Using the Binary:

    Using the Shell Wrapper:

    Example:

    ./hmy blockchain transaction-receipt <transaction-hash> --node="<endpoint-address>"
    ./hmy.sh -- blockchain transaction-receipt <transaction-hash> --node="<endpoint-address>"
    ./hmy blockchain transaction-receipt 0x599793f313ee17566f8d09728b9d043b8e26135ddce86beeee13f98767d452f7 --node="https://api.s0.t.hmny.io"
    
    {
      "id": "0",
      "jsonrpc": "2.0",
      "result": {
        "blockHash": "0x52171a8f3af94f639f1e6044679c4189c3cd088ffe7f1c216ce3089212373af9",
        "blockNumber": "0x6177",
        "contractAddress": null,
        "cumulativeGasUsed": "0x5208",
        "from": "0x261fa45c6a09cd3faa277d829e91d9473973357c",
        "gasUsed": "0x5208",
        "logs": [],
        "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "shardID": 0,
        "status": "0x1",
        "to": "0x06916163a17f07ce70e3d43ed37395f05b5738ae",
        "transactionHash": "0x599793f313ee17566f8d09728b9d043b8e26135ddce86beeee13f98767d452f7",
        "transactionIndex": "0x0"
      }
    }
    ./hmy blockchain latest-header --node="<endpoint-address>"
    ./hmy.sh -- blockchain latest-header --node="<endpoint-address>"
    ./hmy blockchain latest-header --node="https://api.s0.t.hmny.io"
    
    {
      "id": "0",
      "jsonrpc": "2.0",
      "result": {
        "blockHash": "0xae23db112d22062be6a0f065ecc3989d4e9559ad6a1f34fe4344d021907e8c2e",
        "blockNumber": 415749,
        "epoch": 5543,
        "lastCommitBitmap": "fffffffffffffffb0f00",
        "lastCommitSig": "06efa677bdd327d3d9602fd246c214edb35e447692dccc2219ef08ce2fa026b96f3826fcb5a2a3f724222ecef4af66029f3b5d677e54534519ad2a405ad3b336dd5145dcc083fc2330b9d0bb398affd1745cab274b5019f32cba0287bd5e5a17",
        "leader": "one18ahxsrk9g4h4gz5r8ema7nyw6g9zpun5hhp54d",
        "shardID": 0,
        "timestamp": "2019-12-11 12:18:21 +0000 UTC",
        "unixtime": 1576066701,
        "viewID": 415745
      }
    }
    ./hmy blockchain latest-header --node="https://api.s1.t.hmny.io"
    
    {
      "id": "0",
      "jsonrpc": "2.0",
      "result": {
        "blockHash": "0x65d528672301b1c086b4f2db89ce20f6977f7aeaa494073352e211ac29f55179",
        "blockNumber": 456065,
        "epoch": 5543,
        "lastCommitBitmap": "ffffffffffffffff0f00",
        "lastCommitSig": "c8e049810c1f649625259f684e99f4a9cfc51cf01b2dd032f884136c9922ebb8fe0929e366bbf8122e430402d04d4804362013302994d4924c2990bdffeacb4b79e075c1897947a7ec5be44eef6f1bd1e013b80008f28085c15e17aa49629a09",
        "leader": "one1vaqzxt50ltk9hq4d44lgxmj4pj2x533fsp2acx",
        "shardID": 1,
        "timestamp": "2019-12-11 12:21:52 +0000 UTC",
        "unixtime": 1576066912,
        "viewID": 456065
      }
    }
    ./hmy blockchain latest-header --node="https://api.s2.t.hmny.io"
    
    {
      "id": "0",
      "jsonrpc": "2.0",
      "result": {
        "blockHash": "0xd5775e720a9bcc5a88fd13aac27d72365f4724d6a513ecf39af53c1bb826823d",
        "blockNumber": 453475,
        "epoch": 5543,
        "lastCommitBitmap": "ffffffffffffffff0f4000",
        "lastCommitSig": "701bad22a95b7ee937446c3f614755d1729f19b5976f1230af6de65fd7ecc0d8b95795396a55d78994b5a8ecaed77d028721f76a58e9919ab01f4aba36a6f3a3dda3aaf39b313e5d623e73ca83d71fc1631ae964e1747826662652be85fada18",
        "leader": "one18vn4hpu8jpu8p9pql59m7p0x8dqrpsw0jzav9u",
        "shardID": 2,
        "timestamp": "2019-12-11 12:22:26 +0000 UTC",
        "unixtime": 1576066946,
        "viewID": 453508
      }
    }
    ./hmy blockchain latest-header --node="https://api.s3.t.hmny.io"
    
    {
      "id": "0",
      "jsonrpc": "2.0",
      "result": {
        "blockHash": "0xd5775e720a9bcc5a88fd13aac27d72365f4724d6a513ecf39af53c1bb826823d",
        "blockNumber": 453475,
        "epoch": 5543,
        "lastCommitBitmap": "ffffffffffffffff0f4000",
        "lastCommitSig": "701bad22a95b7ee937446c3f614755d1729f19b5976f1230af6de65fd7ecc0d8b95795396a55d78994b5a8ecaed77d028721f76a58e9919ab01f4aba36a6f3a3dda3aaf39b313e5d623e73ca83d71fc1631ae964e1747826662652be85fada18",
        "leader": "one188345hbsgdsgstw6eenjgxsgusgs",
        "shardID": 2,
        "timestamp": "2019-12-11 12:22:26 +0000 UTC",
        "unixtime": 1576066946,
        "viewID": 453508
      }
    }
    ./hmy blockchain block-by-number <block-number> --node="<endpoint-address>"
    ./hmy.sh -- blockchain block-by-number <block-number> --node="<endpoint-address>"
    ./hmy blockchain block-by-number 0x29A1 --node="https://api.s0.t.hmny.io"
    
    {
      "id": "0",
      "jsonrpc": "2.0",
      "result": {
        "difficulty": 0,
        "extraData": "0x",
        "gasLimit": "0x4c4b400",
        "gasUsed": "0x0",
        "hash": "0x5cb6e0752530cef5e25c52539feca22b8ad197cca60c04cf06f4ee05d6537096",
        "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
        "miner": "0x3f6e680ec5456f540a833e77df4c8ed20a20f274",
        "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "nonce": 0,
        "number": "0x29a1",
        "parentHash": "0x30d28fb69701f8348e0cd6a7abbacceb4286009fc43827dc243e79508da057d7",
        "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
        "size": "0x50c",
        "stakingTransactions": [],
        "stateRoot": "0x096fac171e818e54e611d3543fd43b1929a4468d17dcb8766d18eaf1e426749c",
        "timestamp": "0x5e755a56",
        "transactions": [],
        "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
        "uncles": []
      }
    }
    --node="https://api.s0.t.hmny.io"
    1ETH
  • bscONE (Wrapped ONE on BSC) - no redeploy required

  • BNB

  • bscBNB (Wrapped BnB on Harmony)

  • 1WBTC

  • 1BUSD
  • bscBUSD

  • 1SUSHI
  • xSUSHI

  • 1AAVE

  • The receiver wallet is connected to the correct network. For example, if you bridged tokens to Harmony, you need to be connected to Harmony mainnet.

  • You’ve added a token that you really received. Check the transaction data.

  • Tokens haven’t been transferred after the bridge.

  • Check if your wallet is set up correctly.
  • Try using another browser or/and wallet extension.

  • If you use a mobile version, try it on the desktop.

  • What token will I get after bridging?

    Bridge transfer completed but I can't see in metamask?

    What kind of assets can be bridged using LayerZero?

    How are assets mapped between blockchains?

    Can I bridge as many tokens as I want, or is there a limit?

    Can I send my bridged tokens back?

    Can I send the Ethereum bridged tokens to Binance?

    Can I send bridged tokens from Harmony blockchain to other blockchains or exchanges?

    Are bridged tokens transferable?

    What happens to my original tokens after I bridge them to Harmony?

    Does the token supply increase when using LayerZero?

    Which coins do I need to pay the transaction fees on the bridge?

    What’s the cost of using the bridge?

    How to find out what's with my bridge operation?

    Transaction pending for too long

    Operation in progress for too long

    Operation status is success, but I can’t find my tokens

    Bridge error, funds lost

    I can’t bridge because of an error

    By mistake sent tokens to an exchange wallet (e.g. Binance exchange)

    I sent tokens to a wallet that doesn’t support the network I used

    By mistake sent tokens to a wrong address or a token address

    I have a question about the LayerZero bridge

    this page
    https://bridge.harmony.one/tokens
    here
    the LayerZero bridge site.
    bridge operation explorer.
    recommended settings
    support form
    this page
    here.
    support form
    support form
    Discord
    FAQ
    Sushi and Harmony Announce Full Stack Partnership with $4M in IncentivesMedium
    here
    Logo
    2 Seconds Block Time on Harmony MainnetMedium
    Logo
    Logo
    Logo
    Logo