├── .github └── workflows │ └── spelling.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── README.md ├── babel.config.js ├── docs ├── develop │ ├── api │ │ ├── _category_.json │ │ ├── cosmos-grpc-rest.md │ │ ├── ethereum-json-rpc │ │ │ ├── _category_.json │ │ │ ├── index.md │ │ │ └── methods.md │ │ ├── index.md │ │ ├── networks.md │ │ ├── swagger.md │ │ └── tendermint.md │ ├── crosschain.md │ ├── explores.md │ ├── faucet.md │ ├── haqqwallet.md │ ├── ibc.md │ ├── index.mdx │ └── whitelisttoken.md ├── home │ └── README.mdx ├── learn │ ├── _getting-started.mdx │ ├── ecosystem │ │ ├── evergreen.md │ │ ├── index.mdx │ │ ├── shariah.md │ │ ├── shell.md │ │ ├── vesting.md │ │ └── wallet.mdx │ ├── faq.md │ ├── glossary.mdx │ ├── index.mdx │ └── token.md ├── network │ ├── concepts │ │ └── _accounts.md │ ├── configuration │ │ ├── _category_.json │ │ ├── disk-optimization.md │ │ ├── faq.md │ │ ├── kms.md │ │ ├── restake.md │ │ ├── security-best-practices.md │ │ ├── security-checklist.md │ │ └── security.md │ ├── index.mdx │ ├── module-accounts.md │ ├── modules │ │ ├── bank.md │ │ ├── coinomics.md │ │ ├── epochs.md │ │ ├── erc20.md │ │ ├── evm.md │ │ ├── feemarket.md │ │ ├── ibc.md │ │ ├── index.md │ │ ├── liquidvesting.md │ │ └── vesting.md │ ├── run-a-ibc-relayer.md │ ├── run-a-validator.md │ ├── run-node │ │ ├── index.md │ │ ├── mainnet-from-archive.md │ │ ├── mainnet-from-snapshot.md │ │ ├── mainnet-state-sync.md │ │ └── testnet.md │ └── upgrades │ │ ├── _category_.json │ │ ├── automated.md │ │ └── rollback.md └── user-guides │ ├── connect-your-wallet │ ├── Keplr.mdx │ ├── Ledger.mdx │ ├── Metamask.mdx │ ├── _category_.json │ └── index.mdx │ ├── crosschainswap.mdx │ ├── index.mdx │ └── nft.md ├── docusaurus.config.js ├── package.json ├── pnpm-lock.yaml ├── sidebars.js ├── src ├── components │ ├── big-card │ │ └── big-card.tsx │ ├── chain-config-value │ │ └── chain-config-value.tsx │ ├── highlighter │ │ └── highlighter.tsx │ ├── homepage-features │ │ └── homepage-features.tsx │ ├── icons │ │ ├── basics-icon.tsx │ │ ├── code-icon.tsx │ │ ├── core-concepts-icon.tsx │ │ ├── introduciton-icon.tsx │ │ └── rocket-icon.tsx │ ├── project-value │ │ └── project-value.tsx │ └── small-card │ │ └── small-card.tsx ├── css │ └── custom.css ├── pages │ └── index.tsx └── utils │ ├── chain-config.ts │ └── keplr-pr-prep.jsonc ├── static ├── .nojekyll ├── fonts │ ├── ClashDisplay-Medium.woff │ ├── ClashDisplay-Medium.woff2 │ ├── hk_guise_medium-webfont.woff │ ├── hk_guise_medium-webfont.woff2 │ ├── hk_guise_regular-webfont.woff │ └── hk_guise_regular-webfont.woff2 ├── googlefd4a4dd53d93f557.html ├── img │ ├── addresses.png │ ├── ecosystem.png │ ├── eipmessage.png │ ├── favicon.ico │ ├── haqq-logo-white.svg │ ├── haqq-logo.svg │ ├── hw_01.jpg │ ├── hw_02.jpg │ ├── hw_03.jpg │ ├── hw_04.jpg │ ├── kepler-import-ledger.png │ ├── keplr-create-new.png │ ├── keplr-homepage.png │ ├── keplr-import-existing.png │ ├── keplr-seed-phrase.png │ ├── keplr-select-chain.png │ ├── keplr-testnet-evmos.png │ ├── keplr_approve_chain.png │ ├── keplr_transaction.png │ ├── liquidity.png │ ├── metamask-import.png │ ├── metamask-network-settings.png │ ├── mm1.png │ ├── mm2.png │ ├── mm3.png │ ├── mm4.png │ ├── mm5.png │ ├── msgsend.png │ ├── reset-account.png │ ├── schedule.png │ ├── txsent.png │ ├── user_guides │ │ ├── address-conversion.png │ │ ├── crosschain-skip-go.png │ │ ├── explorer-mint-tx.png │ │ ├── explorer-nft.png │ │ ├── explorer-tx.png │ │ ├── haqqwallet-get-bech32.jpeg │ │ ├── open-zeppelin-finish.png │ │ ├── open-zeppelin-start.png │ │ ├── remix-confirm-tx.png │ │ ├── remix-deploy-setup.png │ │ ├── remix-mint-start.png │ │ ├── remix-mint.png │ │ ├── remix-solidity-compiler.png │ │ ├── remix-start.png │ │ ├── remix-token-uri.png │ │ ├── remix-tx-status.png │ │ ├── skip-approve.png │ │ ├── skip-confirm.png │ │ ├── skip-destination.png │ │ ├── skip-final.png │ │ └── skip-tx.png │ └── vesting.png └── robots.txt ├── tailwind.config.js ├── tsconfig.json └── vercel.json /.github/workflows/spelling.yml: -------------------------------------------------------------------------------- 1 | name: Check Spelling 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'main' 7 | pull_request: 8 | branches: 9 | - 'main' 10 | workflow_dispatch: 11 | 12 | jobs: 13 | spelling: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout code 17 | uses: actions/checkout@v4 18 | with: 19 | fetch-depth: 0 20 | 21 | - name: Check Spelling 22 | uses: streetsidesoftware/cspell-action@v6 23 | with: 24 | files: '{docs,static,src}/**/*.{md,mdx,js,ts,jsx,tsx,yml,yaml,json}' 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | /crawler 4 | 5 | # Production 6 | /build 7 | 8 | # Generated files 9 | .docusaurus 10 | .cache-loader 11 | 12 | # Misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | 23 | .pnp.* 24 | .yarn/* 25 | !.yarn/patches 26 | !.yarn/plugins 27 | !.yarn/releases 28 | !.yarn/sdks 29 | !.yarn/versions 30 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | strict-peer-dependencies=false 2 | auto-install-peers=true 3 | save-exact=true 4 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 22.12 -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | build/ 3 | .docusaurus/ 4 | .yarn/ 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "useTabs": false, 4 | "semi": true, 5 | "singleQuote": true, 6 | "trailingComma": "all", 7 | "bracketSpacing": true, 8 | "bracketSameLine": false, 9 | "arrowParens": "always" 10 | } 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Website 2 | 3 | This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. 4 | 5 | ### Installation 6 | 7 | ``` 8 | $ yarn 9 | ``` 10 | 11 | ### Local Development 12 | 13 | ``` 14 | $ yarn start 15 | ``` 16 | 17 | This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. 18 | 19 | ### Build 20 | 21 | ``` 22 | $ yarn build 23 | ``` 24 | 25 | This command generates static content into the `build` directory and can be served using any static contents hosting service. 26 | 27 | ### Deployment 28 | 29 | Using SSH: 30 | 31 | ``` 32 | $ USE_SSH=true yarn deploy 33 | ``` 34 | 35 | Not using SSH: 36 | 37 | ``` 38 | $ GIT_USER= yarn deploy 39 | ``` 40 | 41 | If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. 42 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /docs/develop/api/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "API", 3 | "position": 9 4 | } 5 | -------------------------------------------------------------------------------- /docs/develop/api/cosmos-grpc-rest.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # Cosmos gRPC & REST 6 | 7 | ## Cosmos gRPC 8 | 9 | HAQQ exposes gRPC endpoints for all the integrated Cosmos SDK modules. This makes it easier for 10 | wallets and block explorers to interact with the Proof-of-Stake logic and native Cosmos transactions and queries. 11 | 12 | ## Cosmos HTTP REST (gRPC-Gateway) 13 | 14 | [gRPC-Gateway](https://grpc-ecosystem.github.io/grpc-gateway/) reads a gRPC service definition and 15 | generates a reverse-proxy server which translates RESTful JSON API into gRPC. With gRPC-Gateway, 16 | users can use REST to interact with the Cosmos gRPC service. 17 | See the list of supported gRPC-Gateway API endpoints using Swagger [here](../api/index.md#clients). -------------------------------------------------------------------------------- /docs/develop/api/ethereum-json-rpc/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Ethereum JSON-RPC", 3 | "position": 2 4 | } 5 | -------------------------------------------------------------------------------- /docs/develop/api/index.md: -------------------------------------------------------------------------------- 1 | # API 2 | 3 | The following API's are recommended for development purposes. For maximum control and reliability it's recommended 4 | to run your own node. 5 | 6 | ## Networks 7 | 8 | Quickly connect your app or client to HAQQ mainnet and public testnets. Head over to [Networks](./networks.md) 9 | to find a list of publicly available endpoints that you can use to connect to the HAQQ Network. 10 | 11 | ## Clients 12 | 13 | The HAQQ Network supports different clients in order to support Cosmos and Ethereum transactions and queries. 14 | You can use Swagger as a REST interface for state queries and transactions: 15 | 16 | | | Description | Default Port | Swagger | 17 | |---------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|:------------:|---------------------------------------------------------------------| 18 | | **Cosmos [gRPC](./cosmos-grpc-rest.md#cosmos-grpc)** | Query or send HAQQ transactions using gRPC | `9090` | | 19 | | **Cosmos REST ([gRPC-Gateway](./cosmos-grpc-rest.md#cosmos-http-rest-grpc-gateway))** | Query or send HAQQ transactions using an HTTP RESTful API | `9091` | [Mainnet](https://rest.cosmos.haqq.network/swagger/) [Testnet](https://rest.cosmos.testedge2.haqq.network/swagger/) | 20 | | **Ethereum [JSON-RPC](./ethereum-json-rpc/index.md)** | Query Ethereum-formatted transactions and blocks or send Ethereum txs using JSON-RPC | `8545` | | 21 | | **Ethereum [Websocket](./ethereum-json-rpc/index.md#ethereum-websocket)** | Subscribe to Ethereum logs and events emitted in smart contracts. | `8586` | | 22 | | **CometBFT [RPC](./tendermint.md)** | Query transactions, blocks, consensus state, broadcast transactions, etc. | `26657` | [Localhost](https://docs.tendermint.com/v0.34/rpc/) | 23 | | **CometBFT [Websocket](./tendermint.md)** | Subscribe to CometBFT ABCI events | `26657` | | 24 | | **Command Line Interface (CLI)** | Query or send HAQQ transactions using your Terminal or Console. | N/A | | -------------------------------------------------------------------------------- /docs/develop/api/networks.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # Networks 6 | 7 | ## Public Available Endpoints 8 | 9 | Below is a list of publicly available endpoints that you can use to connect to the HAQQ mainnet and public testnets: 10 | 11 | 14 | 15 | :::note 16 | If you are searching for the protobuf interfaces, head over [here](https://buf.build/haqq-network). 17 | ::: 18 | 19 | ### MainNet 20 | 21 | | Endpoint | Category | Maintainer | 22 | |----------------------------------------------------------------------|-----------------|-----------------------------------| 23 | | [wss://rpc-ws.eth.haqq.network](wss://rpc-ws.eth.haqq.network) | `EVM Websocket` | [HAQQ](https://haqq.network) | 24 | | [https://rpc.eth.haqq.network](https://rpc.eth.haqq.network) | `EVM JSON-RPC` | [HAQQ](https://haqq.network) | 25 | | [https://rpc.tm.haqq.network](https://rpc.tm.haqq.network) | `CometBFT RPC` | [HAQQ](https://haqq.network) | 26 | | [https://grpc.cosmos.haqq.network](https://grpc.cosmos.haqq.network) | `gRPC Cosmos` | [HAQQ](https://haqq.network) | 27 | | [https://rest.cosmos.haqq.network](https://rest.cosmos.haqq.network) | `REST Cosmos` | [HAQQ](https://haqq.network) | 28 | | [wss://evm-ws.haqq.sh](wss://evm-ws.haqq.sh) | `EVM Websocket` | [Kioqq](https://github.com/kioqq) | 29 | | [https://evm.haqq.sh](https://evm.haqq.sh) | `EVM JSON-RPC` | [Kioqq](https://github.com/kioqq) | 30 | | [https://rpc.haqq.sh](https://rpc.haqq.sh) | `CometBFT RPC` | [Kioqq](https://github.com/kioqq) | 31 | | [https://sdk.haqq.sh](https://sdk.haqq.sh) | `Rest Cosmos` | [Kioqq](https://github.com/kioqq) | 32 | | grpc://grpc.haqq.sh:443 | `gRPC Cosmos` | [Kioqq](https://github.com/kioqq) | 33 | 34 | ### TestEdge-2 35 | 36 | | Endpoint | Category | Maintainer | 37 | |------------------------------------------------------------------------------------------|-----------------|-----------------------------------| 38 | | [https://rpc-ws.eth.testedge2.haqq.network](https://rpc-ws.eth.testedge2.haqq.network) | `EVM Websocket` | [HAQQ](https://haqq.network) | 39 | | [https://rpc.eth.testedge2.haqq.network](https://rpc.eth.testedge2.haqq.network) | `EVM JSON-RPC` | [HAQQ](https://haqq.network) | 40 | | [https://rpc.tm.testedge2.haqq.network](https://rpc.tm.testedge2.haqq.network) | `CometBFT RPC` | [HAQQ](https://haqq.network) | 41 | | [https://grpc.cosmos.testedge2.haqq.network](https://grpc.cosmos.testedge2.haqq.network) | `gRPC Cosmos` | [HAQQ](https://haqq.network) | 42 | | [https://rest.cosmos.testedge2.haqq.network](https://rest.cosmos.testedge2.haqq.network) | `REST Cosmos` | [HAQQ](https://haqq.network) | 43 | | [wss://te2-s1-evm-ws.haqq.sh](wss://te2-s1-evm-ws.haqq.sh) | `EVM Websocket` | [Kioqq](https://github.com/kioqq) | 44 | | [https://te2-s1-evm-rpc.haqq.sh](https://te2-s1-evm-rpc.haqq.sh) | `EVM JSON-RPC` | [Kioqq](https://github.com/kioqq) | 45 | | [https://te2-s1-tm.haqq.sh](https://te2-s1-tm.haqq.sh) | `CometBFT RPC` | [Kioqq](https://github.com/kioqq) | 46 | | grpc://te2-s1-grpc.haqq.sh:1337 | `gRPC Cosmos` | [Kioqq](https://github.com/kioqq) | 47 | -------------------------------------------------------------------------------- /docs/develop/api/swagger.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 5 3 | --- 4 | 5 | # Swagger 6 | HAQQ REST API Swagger available [here](https://rest.cosmos.haqq.network/swagger/). 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/develop/api/tendermint.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | # CometBFT RPC 6 | 7 | The CometBFT RPC allows you to query transactions, blocks, consensus state, broadcast transactions, etc. 8 | 9 | The latest CometBFT RPC documentations can be found [here](https://docs.cometbft.com/v0.37/rpc/). 10 | CometBFT supports the following RPC protocols: 11 | 12 | - URI over HTTP 13 | - JSON-RPC over HTTP 14 | - JSON-RPC over Websockets 15 | 16 | The docs will contain an interactive Swagger interface. 17 | 18 | ## URI/HTTP 19 | 20 | A GET request with arguments encoded as query parameters: 21 | 22 | ``` 23 | curl localhost:26657/block?height=5 24 | ``` 25 | 26 | ## RPC/HTTP 27 | 28 | JSONRPC requests can be POST'd to the root RPC endpoint via HTTP. See the list 29 | of supported CometBFT RPC endpoints using Swagger [here](../api/index.md#clients). 30 | 31 | ## RPC/Websocket 32 | 33 | ### Cosmos and CometBFT Events 34 | 35 | `Event`s are objects that contain information about the execution of the application 36 | and are triggered after a block is committed. They are mainly used by service providers 37 | like block explorers and wallet to track the execution of various messages and index transactions. 38 | You can get the full list of `event` categories and values [here](#list-of-cometbft-events). 39 | 40 | More on Events: 41 | 42 | - [Cosmos SDK Events](https://docs.cosmos.network/main/core/events.html) 43 | 44 | ### Subscribing to Events via Websocket 45 | 46 | CometBFT Core provides a [Websocket](https://docs.cometbft.com/v0.37/core/subscription) connection to subscribe 47 | or unsubscribe to CometBFT `Events`. To start a connection with the CometBFT websocket you need to define 48 | the address with the `--rpc.laddr` flag when starting the node (default `tcp://127.0.0.1:26657`): 49 | 50 | ```bash 51 | haqqd start --rpc.laddr="tcp://127.0.0.1:26657" 52 | ``` 53 | 54 | Then, start a websocket subscription with [ws](https://github.com/hashrocket/ws) 55 | 56 | ```bash 57 | # connect to tendermint websocket at port 8080 58 | ws ws://localhost:8080/websocket 59 | 60 | # subscribe to new CometBFT block headers 61 | > { "jsonrpc": "2.0", "method": "subscribe", "params": ["tm.event='NewBlockHeader'"], "id": 1 } 62 | ``` 63 | 64 | The `type` and `attribute` value of the `query` allow you to filter the specific `event` you are 65 | looking for. For example, an Ethereum transaction on HAQQ (`MsgEthereumTx`) triggers an `event` of type `ethermint` and 66 | has `sender` and `recipient` as `attributes`. Subscribing to this `event` would be done like so: 67 | 68 | ```json 69 | { 70 | "jsonrpc": "2.0", 71 | "method": "subscribe", 72 | "id": "0", 73 | "params": { 74 | "query": "tm.event='Tx' AND ethereum.recipient='hexAddress'" 75 | } 76 | } 77 | ``` 78 | 79 | where `hexAddress` is an Ethereum hex address (eg: `0x1122334455667788990011223344556677889900`). 80 | 81 | The generic syntax looks like this: 82 | 83 | ```json 84 | { 85 | "jsonrpc": "2.0", 86 | "method": "subscribe", 87 | "id": "0", 88 | "params": { 89 | "query": "tm.event='' AND eventType.eventAttribute=''" 90 | } 91 | } 92 | ``` 93 | 94 | ### List of CometBFT Events 95 | 96 | The main events you can subscribe to are: 97 | 98 | - `NewBlock`: Contains `events` triggered during `BeginBlock` and `EndBlock`. 99 | - `Tx`: Contains `events` triggered during `DeliverTx` (i.e. transaction processing). 100 | - `ValidatorSetUpdates`: Contains validator set updates for the block. 101 | 102 | :::tip 103 | 👉 The list of events types and values for each Cosmos SDK module can be found in the [Modules Specification](../../../network/modules/) section. 104 | Check the `Events` page to obtain the event list of each supported module on HAQQ Network. 105 | ::: 106 | 107 | List of all CometBFT event keys: 108 | 109 | | | Event Type | Categories | 110 | | ---------------------------------------------------- | ---------------- | ----------- | 111 | | Subscribe to a specific event | `"tm.event"` | `block` | 112 | | Subscribe to a specific transaction | `"tx.hash"` | `block` | 113 | | Subscribe to transactions at a specific block height | `"tx.height"` | `block` | 114 | | Index `BeginBlock` and `Endblock` events | `"block.height"` | `block` | 115 | | Subscribe to ABCI `BeginBlock` events | `"begin_block"` | `block` | 116 | | Subscribe to ABCI `EndBlock` events | `"end_block"` | `consensus` | 117 | 118 | Below is a list of values that you can use to subscribe for the `tm.event` type: 119 | 120 | | | Event Value | Categories | 121 | | ---------------------- | ----------------------- | ----------- | 122 | | New block | `"NewBlock"` | `block` | 123 | | New block header | `"NewBlockHeader"` | `block` | 124 | | New Byzantine Evidence | `"NewEvidence"` | `block` | 125 | | New transaction | `"Tx"` | `block` | 126 | | Validator set updated | `"ValidatorSetUpdates"` | `block` | 127 | | Block sync status | `"BlockSyncStatus"` | `consensus` | 128 | | lock | `"Lock"` | `consensus` | 129 | | New consensus round | `"NewRound"` | `consensus` | 130 | | Polka | `"Polka"` | `consensus` | 131 | | Relock | `"Relock"` | `consensus` | 132 | | State sync status | `"StateSyncStatus"` | `consensus` | 133 | | Timeout propose | `"TimeoutPropose"` | `consensus` | 134 | | Timeout wait | `"TimeoutWait"` | `consensus` | 135 | | Unlock | `"Unlock"` | `consensus` | 136 | | Block is valid | `"ValidBlock"` | `consensus` | 137 | | Consensus vote | `"Vote"` | `consensus` | 138 | 139 | ### Example 140 | 141 | ```bash 142 | ws ws://localhost:26657/websocket 143 | > { "jsonrpc": "2.0", "method": "subscribe", "params": ["tm.event='ValidatorSetUpdates'"], "id": 1 } 144 | ``` 145 | 146 | Example response: 147 | 148 | ```json 149 | { 150 | "jsonrpc": "2.0", 151 | "id": 0, 152 | "result": { 153 | "query": "tm.event='ValidatorSetUpdates'", 154 | "data": { 155 | "type": "tendermint/event/ValidatorSetUpdates", 156 | "value": { 157 | "validator_updates": [ 158 | { 159 | "address": "09EAD022FD25DE3A02E64B0FE9610B1417183EE4", 160 | "pub_key": { 161 | "type": "tendermint/PubKeyEd25519", 162 | "value": "ww0z4WaZ0Xg+YI10w43wTWbBmM3dpVza4mmSQYsd0ck=" 163 | }, 164 | "voting_power": "10", 165 | "proposer_priority": "0" 166 | } 167 | ] 168 | } 169 | } 170 | } 171 | } 172 | ``` 173 | 174 | :::tip 175 | **Note:** When querying Ethereum transactions versus Cosmos transactions, the transaction hashes are different. 176 | When querying Ethereum transactions, users need to use event query. 177 | Here's an example with the CLI: 178 | 179 | ```bash 180 | curl -X GET "http://localhost:26657/tx_search?query=ethereum_tx.ethereumTxHash%3D0x8d43464891fac6c113e809e14dff1a3e608eae124d629799e42ca0e36562d9d7&prove=false&page=1&per_page=30&order_by=asc" -H "accept: application/json" 181 | ``` 182 | 183 | ::: -------------------------------------------------------------------------------- /docs/develop/crosschain.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 10 3 | title: Cross-Chain Token Addresses 4 | --- 5 | 6 | # Cross-Chain Token Addresses 7 | 8 | ISLM has multiple representations across different networks. The primary bridge utilized by the team is the [Axelar blockchain](https://www.axelar.network). Below are the official token addresses on other networks. For more information, please visit [Axelar documentation](https://docs.axelar.dev/resources/contract-addresses/mainnet) 9 | 10 | ## Mainnet 11 | 12 | | Network | ID | Token Symbol | Address | 13 | |----------|------------|--------------|-------------------------------------------------------------------------------------------------------------------------------- | 14 | | Ethereum | ethereum | aISLM | [0xF10c41cA085FC8d9326a65408D14Dae28A3E69a5](https://etherscan.io/address/0xF10c41cA085FC8d9326a65408D14Dae28A3E69a5) | 15 | | Polygon | polygon | aISLM | [0x4E7A6031B7282431ff9cBC016dA2E7e50e0C54A4](https://polygonscan.com/address/0x4E7A6031B7282431ff9cBC016dA2E7e50e0C54A4) | 16 | | Arbitrum | arbitrum | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://arbiscan.io/address/0x2a98d978817949D45a5528013850772E762B7F12) | 17 | | Avalanche| avalanche | aISLM | [0xB5D8c52B65c24B020c51736D22F8bd961A281909](https://snowtrace.io/address/0xB5D8c52B65c24B020c51736D22F8bd961A281909) | 18 | | Base | base | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://basescan.org/address/0x2a98d978817949D45a5528013850772E762B7F12) | 19 | | BNB Chain| binance | aISLM | [0xB208C4451bc3DE576a836406bD785951b939503E](https://bscscan.com/address/0xB208C4451bc3DE576a836406bD785951b939503E) | 20 | | Blast | blast | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://blastscan.io/address/0x2a98d978817949D45a5528013850772E762B7F12) | 21 | | Celo | celo | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://celoscan.io//address/0x2a98d978817949D45a5528013850772E762B7F12) | 22 | | Fantom | fantom | aISLM | [0xB208C4451bc3DE576a836406bD785951b939503E](https://ftmscan.com/address/0xB208C4451bc3DE576a836406bD785951b939503E) | 23 | | Filecoin | filecoin | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://filfox.info/en/address/0x2a98d978817949D45a5528013850772E762B7F12) | 24 | | Filecoin | filecoin | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://filfox.info/en/address/0x2a98d978817949D45a5528013850772E762B7F12) | 25 | | Fraxtal | fraxtal | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://fraxscan.com/address/0x2a98d978817949D45a5528013850772E762B7F12) | 26 | | Kava | kava | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://kavascan.com/address/0x2a98d978817949D45a5528013850772E762B7F12) | 27 | | Linea | linea | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://lineascan.build/address/0x2a98d978817949D45a5528013850772E762B7F12) | 28 | | Mantle | mantle | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://explorer.mantle.xyz/address/0x2a98d978817949D45a5528013850772E762B7F12) | 29 | | Moonbeam | moonbeam | aISLM | [0xF10c41cA085FC8d9326a65408D14Dae28A3E69a5](https://moonscan.io/address/0xF10c41cA085FC8d9326a65408D14Dae28A3E69a5) | 30 | | Optimism | optimism | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://optimistic.etherscan.io/address0x2a98d978817949D45a5528013850772E762B7F12) | 31 | | Scroll | scroll | aISLM | [0x2a98d978817949D45a5528013850772E762B7F12](https://scrollscan.com/address/0x2a98d978817949D45a5528013850772E762B7F12) | 32 | -------------------------------------------------------------------------------- /docs/develop/explores.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 6 3 | title: Block Explorers 4 | --- 5 | 6 | # Block Explorers 7 | 8 | Read about the different types of block explorers on HAQQ Network. 9 | 10 | ## Introduction 11 | 12 | Blockchain explorers allow users to query the blockchain for data. Explorers are often compared to search engines for the blockchain. By using an explorer, users can search and track balances, transactions, contracts, and other data broadcasted to the blockchain. 13 | 14 | HAQQ offers two types block explorers: an EVM explorer and a Cosmos explorer. Each explorer queries data respective to their environment with the EVM explorers querying Ethereum-formatted data (blocks, transactions, accounts, smart contracts, etc) and the Cosmos explorers querying Cosmos-formatted data (Cosmos and IBC transactions, blocks, accounts, module data, etc). 15 | 16 | ## List of Block Explorers 17 | 18 | Below is a list of public block explorers that support Haqq Mainnet and Testnet: 19 | 20 | ### Mainnet 21 | 22 | | | Layer | URL | 23 | |------------|----------|---------------------------------------------------------| 24 | | Blockscout | `evm` | [explorer.haqq.network](https://explorer.haqq.network/) | 25 | | PingPub | `cosmos` | [ping.pub/haqq](https://ping.pub/haqq) | 26 | | NodesGuru | `cosmos` | [haqq.explorers.guru](https://haqq.explorers.guru/) | 27 | | StakeMe | `cosmos` | [haqq.exploreme.pro](https://haqq.exploreme.pro/) | 28 | 29 | ### TestEdge-2 30 | 31 | | | Layer | URL | 32 | |------------|----------|-----------------------------------------------------------------------------| 33 | | Blockscout | `evm` | [explorer.testedge2.haqq.network](https://explorer.testedge2.haqq.network/) | 34 | | PingPub | `cosmos` | [testnet.ping.pub/haqq](https://testnet.ping.pub/haqq) | 35 | | Manticore | `cosmos` | [testnet.manticore.team](https://testnet.manticore.team/haqq) | 36 | -------------------------------------------------------------------------------- /docs/develop/faucet.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 5 3 | title: Token Faucet 4 | --- 5 | 6 | # Faucet for TestEdge2 network 7 | 8 | Check how to obtain testnet tokens from the Haqq faucet. 9 | 10 | The Haqq TestEdge2 Faucet distributes small amounts of ISLM to anyone who can provide a valid testnet address for free. 11 | 12 | :::tip 13 | Follow the [Metamask](../../user-guides/connect-your-wallet/Metamask) guide for more info on how to setup your wallet account. 14 | ::: 15 | 16 | ## Request Tokens on Discord 17 | 18 | 19 | 20 | 1. Join our Discord at [https://discord.com/invite/islamiccoin](https://discord.com/invite/islamiccoin) 21 | 2. Verify your account. 22 | 3. Go to the HAQQERS category and click on the #faucet channel at [#faucet](https://discord.com/channels/989535240882114581/1075694966183043083). 23 | 4. Simply write `!faucet ` to receive 10 ISLM. 24 | 25 | ## Request Tokens on Web 26 | 27 | 28 | 29 | 1. Sign in to the MetaMask extension or use HAQQ Wallet via WalletConnect. 30 | 2. Visit the [TestEdge-2 Faucet](https://testedge2.haqq.network) to request tokens for the testnet. 31 | 3. Click on the MetaMask button in the connect wallet section or select WalletConnect and scan QR code via HAQQ Wallet 32 | 4. A popup window with your wallet account will appear. Choose the account you want to connect with the Faucet. Then, click on the Next button and the Connect button to establish the connection. 33 | 5. Click on the Login with Github button to authorize via your GitHub account. 34 | 6. Click on the Sign up with Github button to approve authorization. 35 | 7. Complete the reCAPTCHA test to confirm that you are not a robot. 36 | 8. Click on the Request Tokens button to receive 1000 ISLM. 37 | 38 | ## Rate limits 39 | 40 | ### Web 41 | 42 | To prevent the faucet account from draining the available funds, the Haqq TestEdge2 faucet imposes a maximum number of requests for a given period of time. By default, the faucet service accepts only one request per day per address. You can request ISLM from the faucet for each address only once every 24 hours. If you try to request multiple times within the 24-hour cooldown phase, no transaction will be initiated. Please try again in 24 hours. 43 | 44 | ### Discord / Telegram 45 | 46 | You can request ISLM from the faucet only once every hour. If you try to request multiple times within the one-hour cooldown period, no transaction will be initiated. Please try again in one hour. 47 | 48 | ## Amount 49 | 50 | For each request, the faucet transfers 1,000 ISLM on the `Web` and 10 ISLM on `Telegram` and `Discord` to the specified address. 51 | 52 | :::danger 53 | These are test coins on a test network and do not have any real value for regular users. They are designed for developers to test and develop their applications without using real money. Please note that these test coins are not transferable to the main network and cannot be exchanged for real money or other cryptocurrencies. They are solely for testing purposes on the test network. 54 | ::: 55 | -------------------------------------------------------------------------------- /docs/develop/haqqwallet.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 12 3 | title: Haqq Wallet 4 | --- 5 | 6 | # Haqq Wallet - DApps developer's guide 7 | 8 | This page is dedicated to HAQQ Wallet functionality aimed at integrating external DApps, it will be of interest to all developers planning to interact with HAQQ Wallet. 9 | 10 | ## Dynamic Link 11 | 12 | Dynamic Link are designed to perform specific actions in an application, such as displaying a new banner on the main screen after clicking on a link. 13 | Dynamic Link allow you to transfer a user to an HAQQ Wallet with a target action if it is installed, and to install an HAQQ Wallet if it is not already installed on the user. If HAQQ Wallet has not been installed on the user, the target action will be performed after installation and creation (or restoration) of the wallet. 14 | 15 | :::info Wallet signature 16 | Please note that wallet signature of transactions on external sites on HAQQ Mainnet for user security is available only by WhiteList. For testing use HAQQ Testedge network. 17 | 18 | To add your DApp to the WhiteList, please contact the HAQQ team. 19 | 20 | The functionality to add DApp to WhiteList via onChain voting on HAQQ network will be implemented soon, stay tuned for updates. 21 | ::: 22 | 23 | Format: https://haqq.page.link/?link=ENCODED_LINK&apn=APN_ID&isi=ISI_ID&ibi=IBI_ID 24 | 25 | :::info Current HAQQ Wallet ID 26 | APN_ID - app package name for Android, ISI_ID - app ID in App Store for iOS, IBI_ID - app package name for iOS 27 | * APN_ID = **com.haqq.wallet** 28 | * ISI_ID = **6443843352** 29 | * IBI_ID = **com.haqq.wallet** 30 | ::: 31 | 32 | ENCODED_LINK is an encoded URL with the required query parameters (web3_browser, browser, distinct_id) that are processed within the application. 33 | 34 | The basic structure of Dynamic Link for Firebase in HAQQ Wallet application looks like this: 35 | `https://haqq.page.link/?link=ENCODED_LINK&apn=com.haqq.wallet&isi=6443843352&ibi=com.haqq.wallet` 36 | 37 | ### ENCODED_LINK 38 | 39 | Current actions supported by HAQQ Wallet via Dynamic Link passed to ENCODED_LINK 40 | * browser - page opening in Web2 browser 41 | * web3_browser - page opening in Web3 browser 42 | * distinct_id - transfer of external client identifier: **for Analytics** 43 | * 44 | :::info Applications 45 | For most applications it is sufficient to use only **web3_browser** 46 | ::: 47 | 48 | ENCODED_LINK should use only escaped characters, you can get such a link with `encodeURIComponent`. 49 | 50 | #### Format 51 | 52 | `ENCODED_LINK = encodeURIComponent(https://haqq.network?{ACTION}=${PARAMETR})` 53 | 54 | * ACTION - required action one of browser, web3_browser, distinct_id 55 | * PARAMETR - passed parameter e.g. page/DApp link or ID 56 | 57 | example: 58 | * https://haqq.network?browser=siteLink 59 | * https://haqq.network?web3_browser=dAppLink 60 | * https://haqq.network?distinct_id=dID 61 | 62 | :::danger ENCODE 63 | Be sure to use encodeURIComponent or similar to escape special characters for Dynamic Link to work correctly 64 | Before encode: `https://haqq.network?browser=siteLink` 65 | After encode: `https%3A%2F%2Fhaqq.network%3Fbrowser%3DsiteLink` 66 | ::: 67 | 68 | #### Code example 69 | 70 | JS code example 71 | ```JS 72 | const siteLink = 'https://alpha.islm.ai'; 73 | const distinctId = '123456'; 74 | 75 | const browserLink = encodeURIComponent(`https://haqq.network?browser=${siteLink}`); 76 | const wer3BrowserLink = encodeURIComponent(`https://haqq.network?web3_browser=${siteLink}`); 77 | const distinctIdLink = encodeURIComponent(`https://haqq.network?distinct_id=${distinctId}`); 78 | 79 | const query = '&apn=com.haqq.wallet&isi=6443843352&ibi=com.haqq.wallet'; 80 | 81 | const dynamicLinkForBrowser = `https://haqq.page.link/?link=${browserLink}${query}`; 82 | const dynamicLinkForWeb3Browser = `https://haqq.page.link/?link=${wer3BrowserLink}${query}`; 83 | const dynamicLinkForDistinctId = `https://haqq.page.link/?link=${distinctIdLink}${query}`; 84 | 85 | console.log('browser', dynamicLinkForBrowser); 86 | console.log('web3_browser', dynamicLinkForWeb3Browser); 87 | console.log('distinctId', dynamicLinkForDistinctId); 88 | ``` 89 | 90 | Log example 91 | ``` 92 | [Log] browser 93 | "https://haqq.page.link/?link=https%3A%2F%2Fhaqq.network%3Fbrowser%3Dhttps%3A%2F%2Falpha.islm.ai&apn=com.haqq.wallet&isi=6443843352&ibi=com.haqq.wallet" 94 | [Log] web3_browser 95 | "https://haqq.page.link/?link=https%3A%2F%2Fhaqq.network%3Fweb3_browser%3Dhttps%3A%2F%2Falpha.islm.ai&apn=com.haqq.wallet&isi=6443843352&ibi=com.haqq.wallet" 96 | [Log] distinctId 97 | "https://haqq.page.link/?link=https%3A%2F%2Fhaqq.network%3Fdistinct_id%3D123456&apn=com.haqq.wallet&isi=6443843352&ibi=com.haqq.wallet" 98 | ``` 99 | 100 | #### React example 101 | Create a hook 102 | ```JS 103 | import {useMemo} from 'react'; 104 | 105 | export function useDeeplink(siteUrl = window.location.origin) { 106 | return useMemo(() => { 107 | const web3BrowserLink = encodeURIComponent( 108 | `https://haqq.network/wallet?web3_browser=${siteUrl}`, 109 | ); 110 | const query = '&apn=com.haqq.wallet&isi=6443843352&ibi=com.haqq.wallet'; 111 | return `https://haqq.page.link/?link=${web3BrowserLink}${query}`; 112 | }, [siteUrl]); 113 | } 114 | ``` 115 | 116 | Add into components 117 | ```JS 118 | const deeplink = useDeepLink() 119 | 120 | 126 | } 127 | ``` -------------------------------------------------------------------------------- /docs/develop/ibc.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 9 3 | title: Open IBC Channels 4 | --- 5 | 6 | # Open IBC Channels 7 | 8 | The [Inter-Blockchain Communication Protocol (IBC)](https://www.ibcprotocol.dev) is a protocol to handle authentication and transport of data between two blockchains 9 | 10 | You can read more about IBC - [here](/network/modules/ibc/) 11 | 12 | ## Mainnet - short form 13 | 14 | | Network | Channel from HAQQ | Network | Channel to HAQQ| 15 | | --- | -------- | -------- | -------- | 16 | | HAQQ | channel-0 | GRAVITY | channel-100 | 17 | | HAQQ | channel-1 | AXELAR | channel-113 | 18 | | HAQQ | channel-2 | OSMOSIS | channel-1575 | 19 | | HAQQ | channel-3 | COSMOSHUB | channel-632 | 20 | | HAQQ | channel-4 | NOBLE | channel-32 | 21 | | HAQQ | channel-6 | KAVA | channel-135 | 22 | 23 | 24 | ## Mainnet - FULL PATH 25 | 26 | | From Network | To Network | FULL PATH | 27 | | --- | --- | -------- | 28 | | HAQQ | GRAVITY | 07-tendermint-0 - > connection-0 - > channel-0 | 29 | | GRAVITY | HAQQ | 07-tendermint-192 - > connection-163 - > channel-100 | 30 | | | | | 31 | | HAQQ | AXELAR | 07-tendermint-1 - > connection-1 - > channel-1 | 32 | | AXELAR | HAQQ | 07-tendermint-162 - > connection-148 - > channel-113 | 33 | | | | | 34 | | HAQQ | OSMOSIS | 07-tendermint-3 - > connection-2 - > channel-2 35 | | OSMOSIS | HAQQ | 07-tendermint-2871 - > connection-2388 - > channel-1575 | 36 | | | | | 37 | | HAQQ | COSMOSHUB | 07-tendermint-2 - > connection-3 - > channel-3 | 38 | | COSMOSHUB | HAQQ | 07-tendermint-1153 - > connection-874 - > channel-632 | 39 | | | | | 40 | | HAQQ | NOBLE | 07-tendermint-4 - > connection-4 - > channel-4 | 41 | | NOBLE | HAQQ | 07-tendermint-58 - > connection-56 - > channel-32 | 42 | | | | | 43 | | HAQQ | KAVA | 07-tendermint-5 - > connection-7 - > channel-6 | 44 | | KAVA | HAQQ | 07-tendermint-149 - > connection-193 - > channel-135 | 45 | 46 | ## TestEdge2 - short form 47 | 48 | | Network | Channel from HAQQ | Network | Channel to HAQQ| 49 | | --- | -------- | -------- | -------- | 50 | | HAQQ TestEdge2 | channel-4 | AXELAR TESTNET LISBON | channel-304 | 51 | | HAQQ TestEdge2 | channel-0 | GRAVITY | channel-94 | 52 | 53 | 54 | ## TestEdge2 - FULL PATH 55 | 56 | | From Network | To Network | FULL PATH | 57 | | ------------ | ----------- | --------- | 58 | | HAQQ TestEdge2 | GRAVITY | 07-tendermint-1 - > connection-0 - > channel-0 | 59 | | GRAVITY | HAQQ TestEdge2 | 07-tendermint-181 - > connection-156 - > channel-94 | 60 | | | | | 61 | | HAQQ TestEdge2 | AXELAR TESTNET LISBON | 07-tendermint-13 - > connection-13 - > channel-4 | 62 | | AXELAR TESTNET LISBON | HAQQ TestEdge2 | 07-tendermint-602 - > connection-602 - > channel-304 | 63 | -------------------------------------------------------------------------------- /docs/develop/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 0 3 | --- 4 | 5 | # Overview 6 | 7 | This section of the documentation provides a comprehensive guide to start developing dApp, Smart Contracs, on a HAAQ network. 8 | It covers fundamental concepts such as the architecture of blockchain, smart contracts, consensus mechanisms, and the role of nodes in the network. 9 | The guide offers step-by-step instructions on setting up a blockchain development environment, writing and deploying smart contracts, and integrating blockchain applications with existing systems. 10 | 11 | 12 | Useful code examples, best practices, and troubleshooting tips are included to assist developers in creating robust and efficient blockchain-based applications. -------------------------------------------------------------------------------- /docs/develop/whitelisttoken.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 11 3 | title: White List Tokens 4 | --- 5 | 6 | # White List Tokens 7 | 8 | As long as the sharia oracle mechanism is not running on the network, on the network - HAQQ Wallet has a WhiteList of ERC20 tokens already added to our network via IBC. 9 | 10 | ## Mainnet 11 | 12 | | Name | Address | Type | CoinGecoID | 13 | | ------- | ------------------------------------------ | ---------------- | ----------------------- | 14 | | axlUSDC | [0x80b5a32E4F032B2a058b4F29EC95EEfEEB87aDcd](https://explorer.haqq.network/token/0x80b5a32E4F032B2a058b4F29EC95EEfEEB87aDcd) | IBC/ERC20 Token | bridged-usd-coin-axelar | 15 | | axlUSDT | [0xd567B3d7B8FE3C79a1AD8dA978812cfC4Fa05e75](https://explorer.haqq.network/token/0xd567B3d7B8FE3C79a1AD8dA978812cfC4Fa05e75) | IBC/ERC20 Token | bridged-tether-axelar | 16 | | AXL | [0x1D54EcB8583Ca25895c512A8308389fFD581F9c9](https://explorer.haqq.network/token/0x1D54EcB8583Ca25895c512A8308389fFD581F9c9) | IBC/ERC20 Token | axelar | 17 | | OSMO | [0xc03345448969Dd8C00e9E4A85d2d9722d093aF8E](https://explorer.haqq.network/token/0xc03345448969Dd8C00e9E4A85d2d9722d093aF8E) | IBC/ERC20 Token | osmosis | 18 | | ATOM | [0xFA3C22C069B9556A4B2f7EcE1Ee3B467909f4864](https://explorer.haqq.network/token/0xFA3C22C069B9556A4B2f7EcE1Ee3B467909f4864) | IBC/ERC20 Token | cosmos-hub | 19 | | axlWBTC | [0x5FD55A1B9FC24967C4dB09C513C3BA0DFa7FF687](https://explorer.haqq.network/token/0x5FD55A1B9FC24967C4dB09C513C3BA0DFa7FF687) | IBC/ERC20 Token | axlwbtc | 20 | | axlWETH | [0xecEEEfCEE421D8062EF8d6b4D814efe4dc898265](https://explorer.haqq.network/token/0xecEEEfCEE421D8062EF8d6b4D814efe4dc898265) | IBC/ERC20 Token | axelar-wrapped-ether | 21 | | axlDAI | [0xC5e00D3b04563950941f7137B5AfA3a534F0D6d6](https://explorer.haqq.network/token/0xC5e00D3b04563950941f7137B5AfA3a534F0D6d6) | IBC/ERC20 Token | dai | 22 | | USDC | [0x0CE35b0D42608Ca54Eb7bcc8044f7087C18E7717](https://explorer.haqq.network/token/0x0CE35b0D42608Ca54Eb7bcc8044f7087C18E7717) | IBC/ERC20 Token | usdc | 23 | | USDT | [0x5aD523d94Efb56C400941eb6F34393b84c75ba39](https://explorer.haqq.network/token/0x5aD523d94Efb56C400941eb6F34393b84c75ba39) | IBC/ERC20 Token | tether | 24 | | stISLM | [0x12fEFEAc0568503F7C0D934c149f29a42B05C48f](https://explorer.haqq.network/token/0x12fEFEAc0568503F7C0D934c149f29a42B05C48f) | IBC/ERC20 Token | stride-staked-islm | 25 | | DEEN | [0x4FEBDDe47Ab9a76200e57eFcC80b212a07b3e6cE](https://explorer.haqq.network/token/0x4FEBDDe47Ab9a76200e57eFcC80b212a07b3e6cE) | IBC/ERC20 Token | | 26 | 27 | ## Wrap 28 | | Name | Address | Type | CoinGecoID | 29 | | ------- | ------------------------------------------ | ---------------- | ----------------------- | 30 | | wISLM | [0xec8cc083787c6e5218d86f9ff5f28d4cc377ac54](https://explorer.haqq.network/token/0xec8cc083787c6e5218d86f9ff5f28d4cc377ac54) | ERC20 Token | islamic-coin | -------------------------------------------------------------------------------- /docs/home/README.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/docs/home/README.mdx -------------------------------------------------------------------------------- /docs/learn/_getting-started.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # Getting started 6 | 7 | Coming soon... -------------------------------------------------------------------------------- /docs/learn/ecosystem/evergreen.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # Evergreen DAO 6 | 7 | Evergreen DAO is introduced to fund projects benefiting the global Muslim community, grants to ecosystem maintainers, 8 | bug bounties, marketing activities and other initiatives which the community decides are helpful 9 | for the Haqq Network and/or the Muslim community. 10 | 11 | :::tip 12 | Learn more about Evergreen DAO in the section 7 of the Islamic Coin [Whitepaper](https://islamiccoin.net/whitepaper). 13 | ::: 14 | 15 | ## Governance 16 | 17 | ### The Haqq Community and Haqq Shariah Board govern Evergreen DAO 18 | 19 | Evergreen DAO governance is similar to a default Cosmos Governance with three differences: 20 | 21 | 1. The Haqq Shariah Board can approves every spending proposal 22 | 2. Users are financially incentivized to submit high-quality proposals which benefit 23 | the Muslim Community 24 | 3. Deposits never burn – they get transferred to the Evergreen DAO in the event of 25 | Voting Period or Deposit Period failure. 26 | 27 | ### Evergreen DAO will be based on the Cosmos Community Pool 28 | 29 | Spending initiatives can be submitted by any ISLM staker and go through a governance process which consists 30 | of the following periods: 31 | 32 | 1. Deposit Period 33 | 2. Voting Period 34 | 3. Shariah Approval Period 35 | 36 | If and when the proposal has passed the Voting Period, the proposal enters the Shariah Approval Period. 37 | During this period Haqq Association Shariah Board reviews a proposal and decides if it complies with Shariah Law. 38 | If the Shariah Board approves a proposal, it gets executed and coins are transferred to the destination defined in a proposal. 39 | If the Shariah Board rejects the proposal, coins stay in Evergreen DAO. 40 | If the Shariah Board doesn’t submit a decision in 21 days, a proposal gets automatically rejected, coins stay in Evergreen DAO. 41 | 42 | ### Deposit refund and seizure 43 | 44 | When a proposal finalized, the coins from the deposit are either refunded or go to Evergreen DAO 45 | (on the contrary to the default cosmos governance where coins are burned), according to the final tally of the proposal: 46 | 47 | - If the proposal is approved or if it's rejected but not vetoed during Voting Period, deposit will automatically 48 | be refunded to their respective depositor (transferred from the governance ModuleAccount) regardless 49 | of the Shariah Approval Period outcome. 50 | - If the proposal is vetoed by a supermajority during the Voting Period, deposit is transferred 51 | to the Evergreen DAO (Community Pool Module). 52 | - If the proposal closes during the Deposit Period (didn’t reach MinDeposit during MaxDepositPeriod), 53 | deposit is transferred to the Evergreen DAO 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /docs/learn/ecosystem/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | import Link from '@docusaurus/Link'; 6 | import { SmallCard } from '@site/src/components/small-card/small-card'; 7 | import { BasicsIcon } from '@site/src/components/icons/basics-icon'; 8 | import { CoreConceptsIcon } from '@site/src/components/icons/core-concepts-icon'; 9 | import { IntroducionIcon } from '@site/src/components/icons/introduciton-icon'; 10 | 11 | # Ecosystem 12 | 13 | HAQQ Network is a unique blockchain ecosystem that synergizes Islamic law, or Shariah, with the advanced technology 14 | of decentralized finance. This integration has opened up a plethora of applications and opportunities within the HAQQ Network, 15 | ensuring that all transactions and applications are in compliance with Sharia law. 16 | 17 |
18 |
19 |
20 | 24 | } 28 | /> 29 | 30 |
31 |
32 | 36 | } 40 | /> 41 | 42 |
43 |
44 |
45 |
46 | 50 | } 54 | /> 55 | 56 |
57 |
58 | 62 | } 67 | /> 68 | 69 |
70 |
71 | 75 | } 79 | /> 80 | 81 |
82 |
83 |
84 | 85 | - Learn more about HAQQ [ecosystem partners](https://haqq.network/ecosystem) 86 | -------------------------------------------------------------------------------- /docs/learn/ecosystem/shariah.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Shariah Oracle 3 | sidebar_position: 4 4 | --- 5 | 6 | # Shariah Oracle: A Unique Vetting Mechanism 7 | 8 | In the dynamic and evolving ecosystem of the HAQQ Network, all future developments and additions are subject 9 | to the approval of the Shariah Board, using a unique vetting mechanism called the Shariah Oracle. 10 | This ensures that any changes or additions to the HAQQ Network align with Shariah law, maintaining the network's 11 | integrity under Islamic law and fostering trust and reassurance for its users. 12 | 13 | ## Transparency in dApp Integrations 14 | 15 | Moreover, the HAQQ Network maintains complete transparency about the status of various dApp integrations within its ecosystem. 16 | Users can find a comprehensive list of integration statuses on the official HAQQ Network webpage, 17 | located at https://haqq.network/ecosystem. This feature underscores the network's commitment to openness and transparency, 18 | keeping users informed about ongoing developments and improvements and enabling them to make informed decisions. 19 | 20 | ## Conclusion 21 | 22 | The incorporation of blockchain technology with Shariah law is a promising step towards creating more inclusive 23 | and diverse blockchain environments. This approach not only serves the global Muslim community but also appeals 24 | to others who appreciate ethical and sustainable financial practices. 25 | -------------------------------------------------------------------------------- /docs/learn/ecosystem/shell.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Shell (dApp) 3 | sidebar_position: 2 4 | --- 5 | 6 | # Shell: The Multifunctional dApp 7 | 8 | ![ecosystem.png](/img/ecosystem.png) 9 | 10 | A primary application within the HAQQ Network is "shell" a decentralized application (dApp) designed to augment user experience within this network. Shell plays a multifaceted role by enabling users to monitor their balances, stake their coins, and engage in network governance by voting for proposals. With its intuitive and user-friendly interface, Shell significantly enhances network efficiency and user engagement. 11 | -------------------------------------------------------------------------------- /docs/learn/ecosystem/vesting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Vesting (dApp) 3 | sidebar_position: 5 4 | --- 5 | 6 | # Vesting: The vesting dApp 7 | [Go to the vesting dApp](https://vesting.haqq.network/) 8 | 9 | ![vesting.png](/img/vesting.png) 10 | 11 | Vesting DApp allows users to manage vesting and view their wallet details, including: 12 | 13 | * **Total Balance**: The complete overall balance of your wallet. 14 | * **Available Balance**: The amount that is free to use for spending and transfers. 15 | * **Locked Balance**: The total of coins locked in vesting and staking. 16 | 17 | ## Schedule functionality 18 | 19 | ![schedule.png](/img/schedule.png) 20 | 21 | If you have ongoing vesting schedules, the site displays the full vesting timeline, details about the next release period, and how many periods remain. 22 | 23 | ## Liquid vesting functionality 24 | 25 | ![liquidity.png](/img/liquidity.png) 26 | 27 | Within the HAQQ ecosystem, liquid vesting allows users to convert their locked or vested ISLM tokens into a liquid form, known as aLIQUIDX, with "X", an ordinal number indicating the specific instance of the vested tokens. This ERC-20 token facilitates transfers across various wallets, including Metamask and HAQQ Wallet, enhancing the peer-to-peer (p2p) market for vested ISLM tokens and enabling trading at a discount. This mechanism improves the liquidity of vested tokens, offering users early market value access to their investments before the vesting period concludes. 28 | 29 | Users can access this service through the vesting.haqq.network portal, where they can connect their EVM-compatible or HAQQ wallet. The portal provides an option to convert vested ISLM tokens into liquid ERC-20 tokens (aLIQUIDX) and back, simplifying the process for users to alternate between locked ISLM tokens and their liquid state, thereby enhancing liquidity and trading possibilities in the HAQQ ecosystem. 30 | Note that while liquid tokens are partially interchangeable, each conversion results in a new denomination of liquid tokens. 31 | -------------------------------------------------------------------------------- /docs/learn/ecosystem/wallet.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # HAQQ Wallet 6 | 7 | Enter the world of HAQQ Wallet, a digital wallet specifically designed for the global Muslim population 8 | of 1.8 billion and ethical finance enthusiasts. It's tailor-made to handle Islamic Coin ($ISLM) 9 | in a Shariah-compliant manner. Join us to experience the fusion of traditional finance and blockchain technology, 10 | all while upholding Islamic values. 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | ## Creating a Secure Wallet Has Never Been Easier 22 | 23 | HAQQ Wallet offers the perfect blend of web2 UX and web3 security, making it incredibly simple to create a secure wallet 24 | for your Islamic Coin. With HAQQ Wallet, you own your private keys, giving you complete control over your 25 | assets and ensuring absolute security. 26 | 27 | ## Storing, Sending, and Receiving Made Simple 28 | 29 | HAQQ Wallet enables you to effortlessly manage your digital assets. Whether you're storing, sending, 30 | or receiving Islamic Coin within the HAQQ network, our intuitive user interface ensures a seamless experience. 31 | 32 | ## Embrace the Future with Staking and DeFi 33 | 34 | With HAQQ Wallet, you can stake your Islamic Coin and earn rewards, contributing to the network's growth 35 | and sustainability. As a part of the HAQQ ecosystem, you'll have the opportunity to explore DeFi, 36 | earn passive income, and participate in exclusive raffles and giveaways. 37 | 38 | ## Seamless Trading and Transacting 39 | 40 | HAQQ Wallet empowers you to conduct secure transactions within the HAQQ Network. It allows you access 41 | to decentralized exchanges, enabling seamless transactions between ecosystems. At HAQQ Wallet, 42 | the security and protection of your assets are our top priority. 43 | 44 | ## Stay Informed and Ahead 45 | 46 | HAQQ Wallet keeps you informed about the latest news, updates, and developments within the HAQQ Network. 47 | Stay ahead of the curve and make informed decisions in the ever-evolving crypto landscape. 48 | 49 | ## Download Now and Experience the Future of Finance 50 | 51 | Download HAQQ Wallet now and unlock the full potential of the HAQQ Network. 52 | Step into the future of finance that prioritizes security, convenience, and Shariah-compliant innovation. 53 | Join a community of Muslim crypto enthusiasts and be part of the change. 54 | Experience the future of finance with HAQQ Wallet today. 55 | -------------------------------------------------------------------------------- /docs/learn/faq.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 7 3 | --- 4 | 5 | # Frequently Asked Questions 6 | 7 | ## Wallets 8 | 9 |
10 | 11 | Which wallet would you recommend for HAQQ? 12 | We recommend using the HAQQ Wallet for your HAQQ Network transactions. 13 | It`s a mobile wallet specifically designed to work seamlessly with the HAQQ Network, enhancing your experience and ensuring secure transactions. 14 | 15 | You can download the HAQQ Wallet from our official website: [HAQQ Wallet](https://haqq.network/wallet/) 16 | 17 | However, we understand the importance of flexibility and the varying needs of our users. Hence, if you prefer, you can also use [Metamask](https://metamask.io/) and [Keplr](https://www.keplr.app/) wallets with the HAQQ Network. We recommend making a choice based on your specific needs and comfort level with these platforms. As always, ensure the security of your digital assets by only using trusted wallets and keeping your private keys confidential. 18 | 19 |
20 | 21 |
22 | 23 | Can I use my Ledger device? 24 | 25 | Absolutely! Take a look at the [Ledger](../../user-guides/connect-your-wallet/Keplr) for more information. HAQQ Wallet, Metamask, 26 | and Keplr all work with Ledger. Ledger setup will be required before engaging with the dApps and products on HAQQ. 27 | 28 |
29 | 30 |
31 | 32 | For certain wallets, I see both bech32 and hex while others only show hex formatted addresses, which should 33 | I use? 34 | 35 | The HAQQ Network supports both formats: bech32 and hex. Other EVM peers and its ecosystem uses hex encoding while 36 | Cosmos-native uses bech32 formatted addresses. Keplr is unique and the EVM-compatible chains shows both formats. If you 37 | are sending tokens (via IBC), you will use bech32 formatted addresses unless 38 | the receiving chain support EVM (i.e. Ethermint-based chains). 39 | 40 |
41 | 42 | 43 | ## EVM compatibility. 44 | 45 |
46 | Is HAQQ compatible with EVM? 47 | 48 | HAQQ Network is fully compatible with the EVM version Paris. (Solidity 8.19). 49 | 50 | Unfortunately, now we do not support the functionality of the account is abstract. (EIP-4337). 51 |
52 | 53 |
54 | Can i deploy the contract written in solidity directly in the chain? 55 | 56 | **Yes, you can** - HAQQ Network is fully compatible with the EVM version Paris. (Solidity 8.19). 57 |
58 | 59 |
60 | What is the HD Path on the HAQQ network? 61 | HAQQ HD path is **m/44'/60'/0'/0.** HAQQ Netowrk use Coin type 60 to support Ethereum type accounts. 62 |
63 | 64 | ## Network details. 65 | 66 |
67 | What is the block size? 68 | 69 | Each block on HAQQ Network has a maxium block size is **40.000.000 GAS** 70 |
71 | 72 |
73 | What is the block time? 74 | 75 | On HAQQ Network the block time is within **5.6 - 6.2 seconds.** 76 |
77 | 78 |
79 | What is Time to Finality (TTF)? 80 | 81 | HAQQ has instant Time to Finality (TTF) ** -6 sec, 1 block.** Because as a consensus mechanism HAQQ is CometBFT (formerly Tendermint). 82 |
83 | -------------------------------------------------------------------------------- /docs/learn/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | import { ProjectValue } from '@site/src/components/project-value/project-value'; 6 | import { ChainConfigValue } from '@site/src/components/chain-config-value/chain-config-value'; 7 | 8 | # What is HAQQ 9 | 10 | ## Overview 11 | 12 | HAQQ Network is a scalable, high-throughput Proof-of-Stake blockchain that is fully compatible and 13 | interoperable with Ethereum. It's built using the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk/) which runs on top 14 | of [CometBFT](https://github.com/cometbft/cometbft) consensus engine. 15 | 16 | HAQQ allows for running vanilla Ethereum as a [Cosmos](https://cosmos.network/) 17 | application-specific blockchain. This allows developers to have all the desired features of 18 | Ethereum, while at the same time, benefit from CometBFT’s PoS implementation. Also, because it is 19 | built on top of the Cosmos SDK, it will be able to exchange value with the rest of the Cosmos 20 | Ecosystem through the Inter Blockchain Communication Protocol (IBC). 21 | 22 | ## Features 23 | 24 | Here’s a glance at some of the key features of HAQQ: 25 | 26 | - Web3 and EVM compatibility 27 | - High throughput via [CometBFT](https://github.com/cometbft/cometbft) 28 | - Horizontal scalability via [IBC](https://cosmos.network/ibc) 29 | - Fast transaction finality 30 | 31 | HAQQ enables these key features by: 32 | 33 | - Implementing CometBFT's Application Blockchain Interface ([ABCI](https://docs.cometbft.com/v0.37/spec/abci/)) to manage the blockchain 34 | - Leveraging [modules](https://docs.cosmos.network/master/building-modules/intro.html) and other mechanisms implemented by the [Cosmos SDK](https://docs.cosmos.network/). 35 | - Utilizing [`geth`](https://github.com/ethereum/go-ethereum) as a library to avoid code reuse and improve maintainability. 36 | - Exposing a fully compatible Web3 [JSON-RPC](../develop/api/ethereum-json-rpc) layer for interacting with existing Ethereum clients and tooling (eg, [Metamask](../user-guides/connect-your-wallet/Metamask)). 37 | 38 | The sum of these features allows developers to leverage existing Ethereum ecosystem tooling and 39 | software to seamlessly deploy smart contracts which interact with the rest of the Cosmos 40 | [ecosystem](https://cosmos.network/ecosystem)! 41 | 42 | ## Quick Facts Table 43 | 44 | | Property | Value | 45 | | ------------------ | -------------------------------------------------- | 46 | | HAQQ Mainnet ID | | 47 | | HAQQ TestEdge-2 ID | | 48 | | Block Explorers | [Block Explorers](../develop/explores/) | 49 | | Block Time | ~6 seconds | 50 | -------------------------------------------------------------------------------- /docs/learn/token.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # The ISLM token 6 | 7 | The Islamic Coin (ISLM) is the native currency of Haqq Network. It is used for paying transaction fees, governance and staking. 8 | 9 | ## Transaction Fees 10 | 11 | Transaction fees are paid by any user to post a transaction on the chain. The fee amount is determined by the computation 12 | and storage costs of the transaction. Minimum gas costs are determined by the proposer of a block in which 13 | the transaction is included. 14 | 15 | ## Governance 16 | 17 | Governance is the critical component of how HAQQ Network evolves. Active stakeholders of the network 18 | will be responsible for proposing, voting, and passing network upgrades. 19 | 20 | ## Staking 21 | 22 | Staking is the process of locking ISLM coins by bonding them to validators. 23 | Validators maintain the HAQQ Network. By bonding coins, ISLM holders delegate 24 | voting power to validators and become delegators, which gives them the right to earn rewards and participate in governance. 25 | 26 | ## Other Fees 27 | 28 | The ISLM token is required as fees for several tasks on chain to prevent spam and encourage 29 | considered usage of features. 30 | -------------------------------------------------------------------------------- /docs/network/concepts/_accounts.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/docs/network/concepts/_accounts.md -------------------------------------------------------------------------------- /docs/network/configuration/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Validator Configuration", 3 | "position": 5 4 | } 5 | -------------------------------------------------------------------------------- /docs/network/configuration/disk-optimization.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 6 3 | --- 4 | 5 | # Disk Usage Optimization 6 | 7 | :::note Customize the configuration settings to lower the disk requirements for your validator node 8 | ::: 9 | 10 | Blockchain database tends to grow over time, depending e.g. on block 11 | speed and transaction amount. For HAQQ, we are talking about close to 12 | 100GB of disk usage in first two weeks. 13 | 14 | There are few configurations that can be done to reduce the required 15 | disk usage quite significantly. Some of these changes take full effect 16 | only when you do the configuration and start syncing from start with 17 | them in use. 18 | 19 | ## Storage Configuration Options 20 | 21 | Set to true to discard ABCI responses from the state store, which can save a considerable amount of disk space. On `config.toml` setß 22 | ```toml 23 | [storage] 24 | discard_abci_responses = true 25 | ``` 26 | 27 | ## Indexing 28 | 29 | If you do not need to query transactions from the specific node, you can 30 | disable indexing. On `config.toml` set 31 | 32 | ```toml 33 | indexer = "null" 34 | ``` 35 | 36 | If you do this on already synced node, the collected index is not purged 37 | automatically, you need to delete it manually. The index is located 38 | under the database directory with name `data/tx_index.db/`. 39 | 40 | 41 | ## Consensus Configuration Options 42 | 43 | ```toml 44 | [consensus] 45 | skip_timeout_commit = true 46 | ``` 47 | 48 | ## State-sync snapshots 49 | 50 | I believe this was disabled by default on HAQQ, but listing it in any 51 | case here. On `app.toml` set 52 | 53 | ```toml 54 | snapshot-interval = 0 55 | ``` 56 | 57 | Note that if state-sync was enabled on the network and working properly, 58 | it would allow one to sync a new node in few minutes. But this node 59 | would not have the history. 60 | 61 | ## Configure pruning 62 | 63 | By default every 500th state, and the last zero states are kept. This 64 | consumes a lot of disk space on long run, and can be optimized with 65 | following custom configuration in `app.toml`: 66 | ```toml 67 | pruning = "everything" 68 | 69 | pruning-keep-recent = "0" 70 | pruning-interval = "0" 71 | min-retain-blocks = 400000 72 | ``` 73 | 74 | 75 | ## API 76 | To reduce the load, we recommend disabling all APIs in in `app.toml`: 77 | 78 | ```toml 79 | [api] 80 | enable = false 81 | 82 | [rosetta] 83 | enable = false 84 | 85 | [grpc] 86 | enable = false 87 | 88 | [grpc-web] 89 | enable = false 90 | ``` 91 | 92 | ## Logging 93 | 94 | By default the logging level is set to `info`, and this produces a lot of 95 | logs. This log level might be good when starting up to see that the 96 | node starts syncing properly. However, after you see the syncing is 97 | going smoothly, you can lower the log level to `warn` (or `error`). On 98 | `config.toml` set the following 99 | 100 | ```toml 101 | log_level = "warn" 102 | ``` 103 | 104 | Also ensure your log rotation is configured properly. 105 | 106 | ## Results 107 | 108 | Below is the disk usage after two weeks of HAQQ testnet. The default 109 | configuration results in disk usage of 90GB. 110 | 111 | ```bash 112 | 5.3G ./state.db 113 | 70G ./application.db 114 | 20K ./snapshots/metadata.db 115 | 24K ./snapshots 116 | 9.0G ./blockstore.db 117 | 20K ./evidence.db 118 | 1018M ./cs.wal 119 | 4.7G ./tx_index.db 120 | 90G . 121 | ``` 122 | 123 | This optimized configuration has reduced the disk usage to 17 GB. 124 | 125 | ```bash 126 | 17G . 127 | 1.1G ./cs.wal 128 | 946M ./application.db 129 | 20K ./evidence.db 130 | 9.1G ./blockstore.db 131 | 24K ./snapshots 132 | 20K ./snapshots/metadata.db 133 | 5.3G ./state.db 134 | ``` 135 | -------------------------------------------------------------------------------- /docs/network/configuration/restake.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 8 3 | --- 4 | 5 | # ReStake Config 6 | 7 | :::note 8 | Learn about ReStake on [restake.app](https://restake.app) and [github](https://github.com/eco-stake/restake) 9 | ::: 10 | 11 | ## About REStake 12 | 13 | > REStake allows delegators to grant permission for a validator to compound their rewards, and provides a script validators can run to find their granted delegators and send the compounding transactions automatically. 14 | > 15 | > REStake is also a convenient staking tool, allowing you to claim and compound your rewards individually or in bulk. This can save transaction fees and time, and many more features are planned. 16 | 17 | REStake allows users to automatically stack rewards received on stacking back to the validator - this allows users to invest in stacking as an asset with compound interest, and validators not only increase their attractiveness in the eyes of the user, but also to increase the number of stacked tokens on a regular basis 18 | 19 | ## Setup local 20 | :::info 21 | We recommend running ReStake on a separate machine not associated with the validator. 22 | ::: 23 | 24 | 25 | 26 | ### 1. Download the repository, and prepare environment variables. 27 | 28 | ```bash 29 | git clone https://github.com/eco-stake/restake 30 | cd restake 31 | cp .env.sample .env 32 | nano .env 33 | ``` 34 | 35 | :::warning 36 | Categorically **DO NOT** use the validator mnemonic for the ReStake operator 37 | ::: 38 | :::info 39 | We recommend creating a new mnemonic, and transferring a small balance in ISLM to it 40 | ::: 41 | 42 | In environment variables - instert your mnemonic - MNEMONIC=my hot wallet seed words here that has minimal funds 43 | 44 | Since the HAQQ network is still in experimental mode at the moment - you need to write your config, and specify the path to it in your environment variables. 45 | NETWORKS_OVERRIDE_PATH=src/networks.local.json 46 | 47 | 48 | An example of the contents of the .env file. 49 | ```environment 50 | MNEMONIC=my hot wallet seed words here that has minimal funds 51 | NETWORKS_OVERRIDE_PATH=src/networks.local.json 52 | ``` 53 | 54 | ### 2. Add HAQQ Config 55 | 56 | Open/Create networks.local.json 57 | ```bash 58 | cd src 59 | nano networks.local.json 60 | ``` 61 | 62 | Write your config: 63 | * ownerAddress - address your validator in haqqvaloper..... format. 64 | * healthCheck - your id from [healthchecks](https://healthchecks.io) 65 | * restUrl - haqq node rest url. 66 | ``` 67 | { 68 | "haqq": { 69 | "prettyName": "haqq", 70 | "restUrl": [ 71 | "https://sdk.haqq.sh" 72 | ], 73 | "ownerAddress": "haqqvaloper.....", 74 | "default": true, 75 | "gasPrice": "27500000000aISLM", 76 | "healthCheck": { 77 | "uuid": "e249642f-....-386457dbba2c" 78 | } 79 | } 80 | } 81 | ``` 82 | 83 | ### 3. Create container 84 | 85 | ```bash 86 | git pull 87 | docker compose run --rm app npm install 88 | docker compose build --no-cache 89 | ``` 90 | 91 | ### 4. Setup Cron 92 | 93 | ```bash 94 | crontab -e 95 | ``` 96 | 97 | Add new cron task 98 | ``` 99 | 0 */1 * * * /bin/bash -c "cd /...yourpath.../restake && docker compose run --rm app npm run autostake haqq" > ./restake.log 2>&1 100 | ``` 101 | 102 | ## Add your validator to ReStake App 103 | 104 | ### 1. Create your fork 105 | FORK - https://github.com/eco-stake/validator-registry 106 | 107 | ### 2. Add your validator 108 | 109 | ```bash 110 | cd validator-registry 111 | mkdir your_validator 112 | ``` 113 | 114 | ### 3. Create your chains.json 115 | 116 | ```bash 117 | nano chains.json 118 | ``` 119 | 120 | ``` 121 | { 122 | "$schema": "../chains.schema.json", 123 | "name": "Your validator name", 124 | "chains": [ 125 | { 126 | "name": "haqq", 127 | "address": "haqqvaloper.....", 128 | "restake": { 129 | "address": "haqq1....", 130 | "run_time": "every 1 hour", 131 | "minimum_reward": 1000000000000000000 132 | } 133 | } 134 | ] 135 | } 136 | ``` 137 | 138 | ### 4. Create your profile.json 139 | 140 | ```bash 141 | nano profile.json 142 | ``` 143 | 144 | ``` 145 | { 146 | "$schema": "../profile.schema.json", 147 | "name": "Your validator name", 148 | "identity": "YourID" 149 | } 150 | ``` 151 | 152 | ### 5. Create your services.json 153 | ```bash 154 | nano services.json 155 | ``` 156 | 157 | ``` 158 | { 159 | "$schema": "../services.schema.json", 160 | "name": "Your validator name", 161 | "services": [ 162 | { 163 | "title": "Your validator name", 164 | "description": "Join us.", 165 | "url": "https://" 166 | } 167 | ] 168 | } 169 | ``` -------------------------------------------------------------------------------- /docs/network/configuration/security.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # Validator Security 6 | 7 | :::note Learn about sentry nodes and HSMs to secure a validator 8 | ::: 9 | 10 | Each validator candidate is encouraged to run its operations independently, as diverse setups increase the resilience of the network. Validator candidates should commence their setup phase now in order to be on time for launch. 11 | 12 | ## Horcrux 13 | 14 | Horcrux is a [multi-party-computation (MPC)](https://en.wikipedia.org/wiki/Secure_multi-party_computation) signing service for Tendermint nodes 15 | 16 | > Take your validator infrastructure to the next level of security and availability: 17 | > 18 | > - Composed of a cluster of signer nodes in place of the [remote signer](https://docs.tendermint.com/v0.34/tools/remote-signer-validation.html), enabling High Availability (HA) for block signing through fault tolerance. 19 | > - Secure your validator private key by splitting it across multiple private signer nodes using threshold Ed25519 signatures 20 | > - Add security and availability without sacrificing block sign performance. 21 | 22 | See documentation [here](https://github.com/strangelove-ventures/horcrux/blob/main/docs/migrating.md) to learn how to upgrade your validator infrastructure with Horcrux. 23 | 24 | ## Hardware HSM 25 | 26 | It is mission critical that an attacker cannot steal a validator's key. If this is possible, it puts the entire stake delegated to the compromised validator at risk. Hardware security modules are an important strategy for mitigating this risk. 27 | 28 | HSM modules must support `ed25519` signatures for HAQQ. The [YubiHSM 2](https://www.yubico.com/products/hardware-security-module/) supports `ed25519` and can be used with this YubiKey [library](https://github.com/iqlusioninc/yubihsm.rs). 29 | 30 | :::danger 31 | 🚨 **IMPORTANT**: The YubiHSM can protect a private key but **cannot ensure** in a secure setting that it won't sign the same block twice. 32 | ::: 33 | 34 | ## Sentry Nodes (DDOS Protection) 35 | 36 | Validators are responsible for ensuring that the network can sustain denial of service attacks. 37 | 38 | One recommended way to mitigate these risks is for validators to carefully structure their network topology in a so-called sentry node architecture. 39 | 40 | Validator nodes should only connect to full-nodes they trust because they operate them themselves or are run by other validators they know socially. A validator node will typically run in a data center. Most data centers provide direct links the networks of major cloud providers. The validator can use those links to connect to sentry nodes in the cloud. This shifts the burden of denial-of-service from the validator's node directly to its sentry nodes, and may require new sentry nodes be spun up or activated to mitigate attacks on existing ones. 41 | 42 | Sentry nodes can be quickly spun up or change their IP addresses. Because the links to the sentry nodes are in private IP space, an internet based attacked cannot disturb them directly. This will ensure validator block proposals and votes always make it to the rest of the network. 43 | 44 | :::tip 45 | Read more about Sentry Nodes on the [forum](https://forum.cosmos.network/t/sentry-node-architecture-overview/454) 46 | ::: 47 | 48 | To setup your sentry node architecture you can follow the instructions below: 49 | 50 | Validators nodes should edit their `config.toml`: 51 | 52 | ```bash 53 | # Comma separated list of nodes to keep persistent connections to 54 | # Do not add private peers to this list if you don't want them advertised 55 | persistent_peers =[list of sentry nodes] 56 | 57 | # Set true to enable the peer-exchange reactor 58 | pex = false 59 | ``` 60 | 61 | Sentry Nodes should edit their config.toml: 62 | 63 | ```bash 64 | # Comma separated list of peer IDs to keep private (will not be gossiped to other peers) 65 | # Example ID: 3e16af0cead27979e1fc3dac57d03df3c7a77acc@3.87.179.235:26656 66 | 67 | private_peer_ids = "node_ids_of_private_peers" 68 | ``` 69 | 70 | ## Environment Variables 71 | 72 | By default, uppercase environment variables with the following prefixes will replace lowercase command-line flags: 73 | 74 | - `HAQQ` (for HAQQ flags) 75 | - `TM` (for Tendermint flags) 76 | - `BC` (for democli or basecli flags) 77 | 78 | For example, the environment variable `HAQQ_CHAIN_ID` will map to the command line flag `--chain-id`. Note that while explicit command-line flags will take precedence over environment variables, environment variables will take precedence over any of your configuration files. For this reason, it's imperative that you lock down your environment such that any critical parameters are defined as flags on the binary or prevent modification of any environment variables. 79 | -------------------------------------------------------------------------------- /docs/network/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 0 3 | --- 4 | 5 | # Architecture Overview 6 | 7 | HAQQ is a scalable Proof-of-Stake blockchain that is fully compatible and 8 | interoperable with the Ethereum Virtual Machine (EVM). It is built using the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk/) 9 | which runs on top of the [CometBFT](https://github.com/cometbft/cometbft) (a fork of [Tendermint Core](https://docs.tendermint.com/)) consensus engine, 10 | to accomplish fast finality, high transaction throughput and short block times (~2 seconds). 11 | 12 | This architecture allows users to perform both Cosmos and EVM formatted transactions, 13 | developers to scale EVM dApps cross-chain via [IBC](https://cosmos.network/ibc), 14 | and tokens and assets in the network to come from different independent sources. 15 | 16 | HAQQ enables these key features by: 17 | 18 | - Leveraging [modules](https://docs.cosmos.network/main/building-modules/intro.html) and other mechanisms implemented by the [Cosmos SDK](https://docs.cosmos.network/). 19 | - Implementing CometBFT's Application Blockchain Interface ([ABCI](https://docs.tendermint.com/master/spec/abci/)) to manage the blockchain. 20 | - Utilizing [`geth`](https://github.com/ethereum/go-ethereum) as a library to promote code reuse and improve maintainability. 21 | - Exposing a fully compatible Web3 [JSON-RPC](./../develop/api/ethereum-json-rpc/methods) layer for interacting with existing Ethereum clients and tooling (Metamask, Remix, Truffle, etc). 22 | 23 | The sum of these features allows developers to leverage existing Ethereum ecosystem tooling and 24 | software to seamlessly deploy smart contracts which interact with the rest of the Cosmos 25 | [ecosystem](https://cosmos.network/ecosystem). 26 | 27 | ## Cosmos SDK 28 | 29 | HAQQ enables the full composability and modularity of the [Cosmos SDK](https://docs.cosmos.network/). 30 | As a Cosmos chain, HAQQ is a sovereign blockchain with its own native token, 31 | that can connect to other chains through IBC. It includes standard modules from the Cosmos SDK, 32 | that work side to side with HAQQ-specific modules, built by the HAQQ core development team. 33 | 34 | ## CometBFT & ABCI 35 | 36 | [CometBFT](https://github.com/cometbft/cometbft) consists of two chief technical components: 37 | a blockchain consensus engine and a generic application interface. 38 | The consensus engine ensures that the same transactions 39 | are recorded on every machine in the same order. 40 | The application interface, called the [Application Blockchain Interface (ABCI)](https://docs.tendermint.com/master/spec/abci/), 41 | enables the transactions to be processed in any programming language. 42 | 43 | CometBFT has evolved to be a general-purpose blockchain consensus engine that 44 | can host arbitrary application states. Since it can replicate arbitrary 45 | applications, it can be used as a plug-and-play replacement for the consensus 46 | engines of other blockchains. HAQQ is an example of an ABCI application 47 | replacing Ethereum's PoW via CometBFT's consensus engine. 48 | 49 | Another example of a cryptocurrency application built on CometBFT is the Cosmos 50 | network. CometBFT can decompose the blockchain design by offering a very 51 | simple API (ie. the ABCI) between the application process and consensus process. 52 | 53 | ## EVM Compatibility 54 | 55 | HAQQ enables EVM compatibility by implementing various components 56 | that together support all the EVM state transitions 57 | while ensuring the same developer experience as Ethereum: 58 | 59 | - Ethereum's transaction format as a Cosmos SDK `Tx` and `Msg` interface 60 | - Ethereum's `secp256k1` curve for the Cosmos Keyring 61 | - `StateDB` interface for state updates and queries 62 | - [JSON-RPC](../develop/api/ethereum-json-rpc) client for interacting with the EVM 63 | 64 | 65 | -------------------------------------------------------------------------------- /docs/network/module-accounts.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # Module Accounts 6 | 7 | Some modules have their own module account. Think of this as a wallet that can only be controlled by that module. 8 | Below is a table of modules, their respective wallet addresses and permissions: 9 | 10 | ## List of Module Accounts 11 | 12 | | Name | Address | Permissions | 13 | |:-------------------------|:-------------------------------------------------------------------------------------------------------------------------|:-------------------| 14 | | `coinomics` | [haqq13lmzrazlsjzca7ugqtpwe6xyy3553ghlh5hupc](https://ping.pub/haqq/account/haqq13lmzrazlsjzca7ugqtpwe6xyy3553ghlh5hupc) | `minter` | 15 | | `distribution` | [haqq1jv65s3grqf6v6jl3dp4t6c9t9rk99cd89c30hf](https://ping.pub/haqq/account/haqq1jv65s3grqf6v6jl3dp4t6c9t9rk99cd89c30hf) | `none` | 16 | | `erc20` | [haqq1glht96kr2rseywuvhhay894qw7ekuc4qgrxfhs](https://ping.pub/haqq/account/haqq1glht96kr2rseywuvhhay894qw7ekuc4qgrxfhs) | `minter` `burner` | 17 | | `evm` | [haqq1vqu8rska6swzdmnhf90zuv0xmelej4lq04s827](https://ping.pub/haqq/account/haqq1vqu8rska6swzdmnhf90zuv0xmelej4lq04s827) | `minter` `burner` | 18 | | `fee_collector` | [haqq17xpfvakm2amg962yls6f84z3kell8c5lj7kn4t](https://ping.pub/haqq/account/haqq17xpfvakm2amg962yls6f84z3kell8c5lj7kn4t) | `none` | 19 | | `gov` | [haqq10d07y265gmmuvt4z0w9aw880jnsr700jc9xkg9](https://ping.pub/haqq/account/haqq10d07y265gmmuvt4z0w9aw880jnsr700jc9xkg9) | `burner` | 20 | | `bonded_tokens_pool` | [haqq1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3huuu8p](https://ping.pub/haqq/account/haqq1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3huuu8p) | `burner` `staking` | 21 | | `not_bonded_tokens_pool` | [haqq1tygms3xhhs3yv487phx3dw4a95jn7t7lruqd34](https://ping.pub/haqq/account/haqq1tygms3xhhs3yv487phx3dw4a95jn7t7lruqd34) | `burner` `staking` | 22 | | `transfer` | [haqq1yl6hdjhmkf37639730gffanpzndzdpmhvcr6f4](https://ping.pub/haqq/account/haqq1yl6hdjhmkf37639730gffanpzndzdpmhvcr6f4) | `minter` `burner` | 23 | | `liquidvesting` | [haqq102lq49sg6lmw2e0mw740tjldzq68v0yfylw05s](https://ping.pub/haqq/account/haqq102lq49sg6lmw2e0mw740tjldzq68v0yfylw05s) | `minter` `burner` | 24 | 25 | 26 | ## Account Permissions 27 | 28 | * The `burner` permission means this account has the permission to burn or destroy tokens. 29 | * The `minter` permission means this account has permission to mint or create new tokens. 30 | * The `staking` permission means this account has permission to stake tokens on behalf of its owner. -------------------------------------------------------------------------------- /docs/network/modules/bank.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | title: x/bank 4 | --- 5 | 6 | # Bank 7 | 8 | 9 | ## Abstract 10 | 11 | This document specifies the internal `x/bank` module of the HAQQ Network. 12 | 13 | :::tip 14 | The `x/bank` module is a custom wrapper around the native Cosmos SDK `x/bank` module. 15 | If you're not familiar with the core functionality of original module, please check this 16 | [document](https://docs.cosmos.network/main/modules/bank) as prerequisite reading. 17 | ::: 18 | 19 | Initially, this wrapper was made to comply with the tokenomics requirements described in the Islamic Coin 20 | [Whitepaper](https://islamiccoin.net/whitepaper). HAQQ bank keeper has a custom coins `burn` policy, that funds 21 | Evergreen DAO account instead of complete coins destruction in certain cases. 22 | 23 | The latest improvements of HAQQ bank make it an EVM-first module. It supports a trustless, on-chain bidirectional 24 | internal conversion of tokens between HAQQ EVM and Cosmos runtimes. Bank utilizes the `x/erc20` features 25 | to instantaneously convert users' native Cosmos `sdk.Coins` (in this document referred to as "Coin(s)") 26 | to ERC-20 (aka "Token(s)") during the transfers. That allows users' to see the same information about 27 | balances and make transfers without additional conversions using the preferred wallet apps (e.g. Keplr, MetaMask, etc). 28 | 29 | ## Module Architecture 30 | 31 | :::note 32 | If you're not familiar with the overall module structure from the SDK modules, please check this 33 | [document](https://docs.cosmos.network/main/building-modules/structure.html) as prerequisite reading. 34 | ::: 35 | 36 | ```shell 37 | bank/ 38 | ├── keeper 39 | │ ├── grpc_query.go # gRPC state query handlers 40 | │ ├── keeper.go # Store keeper with the custom Burn() function 41 | │ └── msg_server.go # Tx handlers (overrides functions Send, GetBalance, etc.) 42 | │ └── querier.go # Legacy state query handlers 43 | │ └── wrapped_keeper.go # Store keeper wrapper 44 | └── module.go # Module setup for the module manager & ABCI InitGenesis and ExportGenesis functionality 45 | ``` 46 | 47 | ## Concept 48 | 49 | ### Send ERC-20 Tokens 50 | 51 | Once a token pair proposal passes, users of native Cosmos wallets (e.g., Keplr) can see their accurate Tokens 52 | balance as if they were native Coins. 53 | Holders of native Cosmos coins and IBC vouchers on the HAQQ Network can transfer their Tokens on HAQQ EVM 54 | by creating a `MsgSend` or `MsgTransfer` Tx. 55 | 56 | :::tip 57 | Learn more about `x/erc20` module and token pair registration [here](erc20.md). 58 | ::: 59 | 60 | ### Internal Burn of Coins 61 | 62 | There are a few cases when Coins are subject to be burnt but are transferred to Evergreen DAO instead: 63 | 64 | - Staking: 65 | - slash validator for an infraction 66 | - slash redelegation 67 | - slash an unbonding delegation 68 | - Governance: 69 | - burn proposal deposits, if more than 1/3 of voters veto 70 | 71 | ## Improvements 72 | 73 | ### Get Balance(s) 74 | 75 | The `Balance` endpoint allows users to query account balance by address for a given denomination. 76 | The `AllBalances` endpoint allows users to query account balance by address for all denominations. 77 | 78 | Internal requests being executed to retrieve balance(s): 79 | 80 | - retrieve balance(s) of native coins on HAQQ Cosmos runtime 81 | - retrieve balance(s) of registered ERC-20 tokens on HAQQ EVM runtime 82 | 83 | ### MsgSend 84 | 85 | Send coins from one address to another. 86 | 87 | Internal state transitions during execution: 88 | 89 | - check if ERC-20 is enabled 90 | - check if the coins have registered token pairs 91 | - convert coins into tokens 92 | - execute ERC-20 transfer on HAQQ EVM runtime 93 | - send native coins on HAQQ Cosmos runtime 94 | 95 | ### MsgTransfer 96 | 97 | Send coins from one address to another via IBC. 98 | 99 | Internal state transitions during execution: 100 | 101 | - check if ERC-20 is enabled 102 | - check if the coins have registered token pairs 103 | - convert tokens into coins 104 | - execute IBC transfer on HAQQ Cosmos runtime 105 | -------------------------------------------------------------------------------- /docs/network/modules/ibc.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 7 3 | title: x/ibc 4 | --- 5 | 6 | # IBC Transfer 7 | 8 | ## Abstract 9 | 10 | This document specifies the internal `x/ibc/transfer` module of the HAQQ Network. 11 | 12 | :::tip 13 | The `x/ibc/transfer` module is a custom wrapper around the native IBC Transfer module. 14 | If you're not familiar with the [IBC protocol](https://www.ibcprotocol.dev) and its native implementation, please check this 15 | [document](https://ibc.cosmos.network/main/apps/transfer/overview) as prerequisite reading. 16 | ::: 17 | 18 | This wrapper allows IBC (ICS20) transfers for the registered ERC-20 tokens by automatic conversion between EVM 19 | and native Cosmos representations. It coupled with [x/erc20](erc20.md) and [x/evm](evm.md) modules. 20 | 21 | ## References 22 | 23 | - [IBC protocol](https://www.ibcprotocol.dev) 24 | - [IBC documentation](https://ibc.cosmos.network) 25 | - [Original ICS20 implementation](https://github.com/cosmos/ibc-go/blob/v6.2.1/modules/apps/transfer/) 26 | - [Original Transfer module documentation](https://ibc.cosmos.network/main/apps/transfer/overview) 27 | 28 | ## Module Architecture 29 | 30 | :::note 31 | If you're not familiar with the overall module structure from the SDK modules, please check this 32 | [document](https://docs.cosmos.network/main/building-modules/structure.html) as prerequisite reading. 33 | ::: 34 | 35 | ```shell 36 | ibc/transfer/ 37 | ├── keeper 38 | │ ├── keeper.go # Store keeper that handles the business logic of the module and has access to a specific subtree of the state tree. 39 | │ └── msg_server.go # Tx handlers 40 | ├── types 41 | │ └── interfaces.go # The interfaces describing the components of the required modules 42 | ├── ibc_module.go # ICS26 implementation (used for transfer stacks) 43 | └── module.go # Module setup for the module manager & ABCI InitGenesis and ExportGenesis functionality 44 | ``` 45 | -------------------------------------------------------------------------------- /docs/network/modules/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | title: Modules 4 | --- 5 | 6 | # List of Modules 7 | 8 | Here is a list of all production-grade modules that can be used on the HAQQ Network, along with their respective documentation: 9 | 10 | - [bank](/network/modules/bank) - Token transfer functionalities extended to natively support ERC-20 token transfers. 11 | - [coinomics](/network/modules/coinomics) - HAQQ Network tokenomics 12 | - [epochs](/network/modules/epochs) - Executes custom state transitions every period (aka epoch). 13 | - [erc20](/network/modules/erc20) - Trustless, on-chain bidirectional internal conversion of tokens between HAQQ EVM and Cosmos runtimes. 14 | - [evm](/network/modules/evm) - Smart Contract deployment and execution on Cosmos 15 | - [feemarket](/network/modules/feemarket) - Fee market implementation based on the EIP1559 specification. 16 | - [ibc](/network/modules/ibc) - Cross-chain token transfer functionalities extended to natively support ERC-20 tokens. 17 | - [vesting](/network/modules/vesting) - Vesting accounts with lockup and clawback capabilities. 18 | - [liquidvesting](/network/modules/liquidvesting) - Liquidate and redeem vesting tokens with the preservation of the vesting schedule. 19 | 20 | ## Cosmos SDK 21 | 22 | HAQQ Network uses the following Cosmos SDK modules: 23 | 24 | - [auth](https://docs.cosmos.network/main/modules/auth) - Authentication of accounts and transactions for Cosmos SDK applications. 25 | - [authz](https://docs.cosmos.network/main/modules/authz) - Authorization for accounts to perform actions on behalf of other accounts. 26 | - [capability](https://ibc.cosmos.network/main/ibc/capability-module) - Object capability implementation. 27 | - [distribution](https://docs.cosmos.network/main/modules/distribution) - Fee distribution, and staking token provision distribution. 28 | - [evidence](https://docs.cosmos.network/main/modules/evidence) - Evidence handling for double signing, misbehaviour, etc. 29 | - [feegrant](https://docs.cosmos.network/main/modules/feegrant) - Grant fee allowances for executing transactions. 30 | - [genutil](https://github.com/cosmos/cosmos-sdk/tree/main/x/genutil) - variaety of genesis utility functionalities for usage within a blockchain application 31 | - [gov](https://docs.cosmos.network/main/modules/gov) - On-chain proposals and voting. 32 | - [params](https://docs.cosmos.network/main/modules/params) - Globally available parameter store. 33 | - [slashing](https://docs.cosmos.network/main/modules/slashing) - Validator punishment mechanisms. 34 | - [staking](https://docs.cosmos.network/main/modules/staking) - Proof-of-Stake layer for public blockchains. 35 | - [upgrade](https://docs.cosmos.network/main/modules/upgrade) - Software upgrades handling and coordination. 36 | 37 | ## IBC 38 | 39 | HAQQ Network uses the following the IBC modules for the SDK: 40 | 41 | - [interchain-accounts](https://ibc.cosmos.network/main/apps/interchain-accounts/overview.html) 42 | - [transfer](https://ibc.cosmos.network/main/apps/transfer/overview.html) — Basic IBC transfers functionalities -------------------------------------------------------------------------------- /docs/network/run-a-ibc-relayer.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 9 3 | --- 4 | 5 | # IBC Relayer 6 | 7 | - [Tutorial IBC Relayer](https://tutorials.cosmos.network/academy/2-cosmos-concepts/13-relayer-intro.html) 8 | - [IBC Docs](https://ibc.cosmos.network/main/) 9 | 10 | An IBC (Inter-Blockchain Communication) Relayer is a crucial component in the Cosmos ecosystem, enabling the transfer of data and assets between different blockchain networks. It facilitates seamless communication by relaying messages across various independent chains, ensuring interoperability and connectivity. 11 | 12 | Hermes is an open-source Rust implementation of a relayer for the Inter-Blockchain Communication Protocol (IBC). Hermes is widely used in production by relayer operators. It offers excellent logging and debugging options, but compared to the Go relayer, it may require more detailed knowledge of IBC to use properly. It is the one we recommend you use. 13 | 14 | 15 | ## About Hermes 16 | 17 | An IBC relayer is an off-chain process responsible for relaying IBC datagrams between any two chains. It does so by scanning chain states, building transactions based on these states, and submitting the transactions to the chains involved in the network. 18 | 19 | The relayer is a central element in the IBC network architecture. This is because chain modules in this architecture do not directly send messages to each other over networking infrastructure but instead create and store the data to be retrieved and used by a relayer to build the IBC datagrams. 20 | 21 | We sometimes refer to Hermes as "IBC Relayer CLI" to make it clear that this is a relayer CLI (i.e., a binary) and distinguish it from the relayer core library (the crate called ibc-relayer). 22 | 23 | Hermes is actively developed and maintained by [Informal Systems](https://informal.systems) in the [informalsystems/hermes repository](https://github.com/informalsystems/hermes). 24 | 25 | # Run a IBC Relayer 26 | 27 | We recommend start from the basic instructions from Hermes - [here.](https://hermes.informal.systems) 28 | 29 | ## Install 30 | 31 | ### Setup 32 | 33 | For instructions on how to install Rust on your machine, please follow the official [Rust Installation Notes.](https://www.rust-lang.org/tools/install). The provided instructions will install the entire Rust toolchain, including rustc, cargo, and rustup, required to build the project. 34 | 35 | Hermes requires Rust 1.76.0. 36 | ```bash 37 | rustc --version 38 | ``` 39 | 40 | Also check `cargo` 41 | ```bash 42 | cargo version 43 | ``` 44 | 45 | ### Install 46 | ```bash 47 | cargo install ibc-relayer-cli --bin hermes --locked 48 | ``` 49 | 50 | If you have not installed Rust and Cargo via rustup.rs, you may need to add the $HOME/.cargo/bin directory to your PATH environment variable. For most shells, this can be done by adding the following line to your .bashrc or .zshrc configuration file: 51 | ```bash 52 | export PATH="$HOME/.cargo/bin:$PATH" 53 | ``` 54 | ### Check 55 | ```bash 56 | hermes version 57 | ``` 58 | Congratulations you've installed Hermes. 59 | 60 | ## Docker 61 | 62 | We have prepared a Docker file for building Hermes, the IBC relayer, to facilitate its setup and deployment. You can obtain the Docker file and the full Docker Compose project using the links below: 63 | * [Hermes Docker File](https://raw.githubusercontent.com/haqq-network/hermes-docker/master/hermes.Dockerfile) 64 | * [Hermes Docker Compose File](https://raw.githubusercontent.com/haqq-network/hermes-docker/master/docker-compose.yml) 65 | 66 | We also recommend using Docker Compose for managing your Hermes deployment. The full repository containing the Docker Compose project can be found here: [HAQQ Hermes Docker Project](https://github.com/haqq-network/hermes-docker) 67 | 68 | ## Config 69 | You can and should use the official documentation to configure it. The configuration from the example can be used as an [example.](https://raw.githubusercontent.com/haqq-network/hermes-docker/master/config.yaml) 70 | The key feature is `address_type derivation = 'ethermint'` and `ethermint.crypto.v1.ethsecp256k1.PubKey'` which need to be specified in the network settings, as in the example below. 71 | 72 | ```yaml 73 | [[chains]] 74 | id = "haqq_11235-1" 75 | type = "CosmosSdk" 76 | rpc_addr = "http://haqq_rpc_addr " 77 | grpc_addr = "http://haqq_grpc_addr" 78 | event_source = { mode = 'push', url = "ws://haqq_rpc_addr/websocket", batch_delay = '3000ms'} 79 | 80 | rpc_timeout = "10s" 81 | trusted_node = false 82 | account_prefix = "haqq" 83 | key_name = "" 84 | key_store_type = "Test" 85 | store_prefix = "ibc" 86 | default_gas = 500000 87 | max_gas = 1500000 88 | gas_price = { price = 27500000000, denom = "aISLM"} 89 | gas_multiplier = 1.5 90 | max_msg_num = 30 91 | max_tx_size = 180000 92 | max_grpc_decoding_size = 33554432 93 | clock_drift = "15s" 94 | max_block_time = "30s" 95 | trusting_period = "14days" 96 | ccv_consumer_chain = false 97 | trust_threshold = { numerator = '1', denominator = '3' } 98 | memo_prefix = "IBC from HAQQ Network" 99 | sequential_batch_tx = false 100 | 101 | [chains.packet_filter] 102 | policy = 'allow' 103 | list = [ 104 | ['ica*', '*'], 105 | ['transfer', 'channel-0'], 106 | ['transfer', 'channel-1'], 107 | ['transfer', 'channel-2'], 108 | ['transfer', 'channel-3'], 109 | ['transfer', 'channel-4'], 110 | ['transfer', 'channel-6'], 111 | ['transfer', 'channel-7'], 112 | ] 113 | 114 | [chains.packet_filter.min_fees] 115 | 116 | [chains.address_type] 117 | derivation = 'ethermint' 118 | proto_type = { pk_type = '/ethermint.crypto.v1.ethsecp256k1.PubKey' } 119 | ``` 120 | 121 | You can see the settings of other networks in the [GitHub example](https://raw.githubusercontent.com/haqq-network/hermes-docker/master/config.yaml) or in the documentation of other networks. 122 | 123 | ## Keys setup 124 | 125 | Pay special attention to the HD-Path for Networks haqq_11235-1 and kava_2222-10. When configuring an IBC Relayer, it's important to note that the networks haqq_11235-1 and kava_2222-10 use non-standard HD paths. Unlike the typical Cosmos HD path, these networks require specific paths for proper functionality. 126 | 127 | ```bash 128 | hermes keys add --chain haqq_11235-1 --mnemonic-file /root/.hermes/.mnemonic --hd-path "m/44'/60'/0'/0/0" 129 | hermes keys add --chain kava_2222-10 --mnemonic-file /root/.hermes/.mnemonic --hd-path "m/44'/459'/0'/0/0" 130 | hermes keys add --chain stride-1 --mnemonic-file /root/.hermes/.mnemonic 131 | hermes keys add --chain axelar-dojo-1 --mnemonic-file /root/.hermes/.mnemonic 132 | hermes keys add --chain osmosis-1 --mnemonic-file /root/.hermes/.mnemonic 133 | hermes keys add --chain noble-1 --mnemonic-file /root/.hermes/.mnemonic 134 | hermes keys add --chain cosmoshub-4 --mnemonic-file /root/.hermes/.mnemonic 135 | ``` 136 | 137 | ## Commands 138 | 139 | Note: you can get channels from the configuration or from the documentation [here.](../../develop/ibc/) 140 | 141 | 142 | Clear the channel with the following: 143 | 144 | ```bash 145 | hermes clear packets --chain haqq_11235-1 --channel channel-7 --port transfer 146 | ``` 147 | 148 | Get the channels with the following: 149 | ```bash 150 | hermes query channels --chain haqq_11235-1 151 | ``` -------------------------------------------------------------------------------- /docs/network/run-node/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | title: Run Node 4 | --- 5 | 6 | # Run Node 7 | 8 | ## Hardware 9 | 10 | Validators should set up a physical operation secured with restricted access. A good starting place, for example, would be co-locating in secure data centers. 11 | 12 | Validators should expect to equip their datacenter location with redundant power, connectivity, and storage backups. Expect to have several redundant networking boxes for fiber, firewall and switching and then small servers with redundant hard drive and failover. Hardware can be on the low end of datacenter gear to start out with. 13 | 14 | We anticipate that network requirements will be low initially. Bandwidth, CPU and memory requirements will rise as the network grows. Large hard drives are recommended for storing years of blockchain history. 15 | 16 | ## Supported OS 17 | 18 | We officially support macOS and Linux only in the following architectures: 19 | 20 | - `darwin/arm64` 21 | - `darwin/x86_64` 22 | - `linux/arm64` 23 | - `linux/amd64` 24 | 25 | ### Minimum Requirements 26 | 27 | To run mainnet or testnet validator nodes, you will need a machine with the following minimum hardware requirements: 28 | 29 | - **4** or more physical CPU cores 30 | - At least **500GB** of SSD disk storage, for a full node at least **2 TB**, we recommend more than **3TB** 31 | - At least **32GB** of memory (RAM) 32 | - At least **100mbps** network bandwidth 33 | 34 | As the usage of the blockchain grows, the server requirements may increase as well, so you should have a plan for 35 | updating your server as well. 36 | -------------------------------------------------------------------------------- /docs/network/run-node/mainnet-from-archive.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # Mainnet Full Node from Archive 6 | 7 | ## Overview 8 | 9 | The current HAQQ version of mainnet is [`v1.7.8`](https://github.com/haqq-network/haqq/releases/tag/v1.7.8). 10 | Sources of all scripts are here [`github`](https://github.com/haqq-network/mainnet) 11 | 12 | ## Quickstart 13 | 14 | _*Battle tested on [Ubuntu LTS 22.04](https://spinupwp.com/doc/what-does-lts-mean-ubuntu/#:~:text=The%20abbreviation%20stands%20for%20Long,extended%20period%20over%20regular%20releases)*_ 15 | 16 | 17 | ## Setup 18 | ### APT 19 | ```sh 20 | sudo apt update && sudo apt upgrade -y 21 | sudo apt install curl git make gcc liblz4-tool build-essential jq -y 22 | sudo apt install snapd -y && sudo snap install lz4 -y 23 | ``` 24 | 25 | Script repository 26 | 27 | ```sh 28 | git clone https://github.com/haqq-network/mainnet 29 | ``` 30 | 31 | 32 | ### Go 33 | Need version 1.21 34 | https://go.dev/doc/install 35 | 36 | Don't forget: 37 | ```sh 38 | ./mainnet/install_go.sh 39 | export PATH=$PATH:/usr/local/go/bin 40 | ``` 41 | 42 | Checking 43 | 44 | ``` 45 | go version 46 | ``` 47 | 48 | 49 | ### Install latest HAQQ node 50 | ```sh 51 | cd $HOME 52 | git clone -b v1.7.8 https://github.com/haqq-network/haqq 53 | cd haqq && make install 54 | ``` 55 | Checking 56 | 57 | ```sh 58 | haqqd -v 59 | ``` 60 | haqqd version "1.7.8" 3058d8f0485747aa5eacb352330d6bc1a867a838 61 | 62 | ### Сonfig HAQQ node 63 | 64 | ```sh 65 | CUSTOM_MONIKER="mainnet_seed_node" && \ 66 | haqqd config chain-id haqq_11235-1 && \ 67 | haqqd init $CUSTOM_MONIKER --chain-id haqq_11235-1 68 | 69 | # Prepare genesis file for mainet(haqq_11235-1) 70 | curl -OL https://raw.githubusercontent.com/haqq-network/mainnet/master/genesis.json && \ 71 | mv genesis.json $HOME/.haqqd/config/genesis.json 72 | 73 | # Prepare addrbook 74 | curl -OL https://raw.githubusercontent.com/haqq-network/mainnet/master/addrbook.json && \ 75 | mv addrbook.json $HOME/.haqqd/config/addrbook.json 76 | ``` 77 | 78 | 79 | ## Config for full node 80 | 81 | ```sh 82 | cd .haqqd/config 83 | ``` 84 | ## app.toml 85 | ``` 86 | pruning = "nothing" 87 | ``` 88 | ## config.toml 89 | ``` 90 | [statesync] 91 | enable = false 92 | ``` 93 | 94 | ## Download and install archive 95 | go to - https://storage.googleapis.com/haqq-archive-snapshots/ -and see the latest available snapshots. We take snapshots every 2 days. 96 | 97 | ``` 98 | 99 | haqq-archive-snapshots 100 | ... 101 | 102 | haqqd-2024-05-23-02-00-02.lz4 103 | ... 104 | haqqd-2024-05-27-02-00-01.lz4 105 | 1716804004002747 106 | 107 | 108 | ``` 109 | 110 | haqqd-2024-05-27-02-00-01.lz4 - last one from the example, and link to archive will be https://storage.googleapis.com/haqq-archive-snapshots/haqqd-2024-05-27-02-00-01.lz4 111 | 112 | 113 | ``` 114 | wget -O haqqd-2023-07-13-02-00-01.lz4 https://storage.googleapis.com/haqq-archive-snapshots/haqqd-2024-05-27-02-00-01.lz4 115 | 116 | haqqd tendermint unsafe-reset-all --home $HOME/.haqqd --keep-addr-book 117 | 118 | lz4 -c -d haqqd-2023-07-13-02-00-01.lz4 | tar -x -C $HOME/.haqqd 119 | ``` 120 | 121 | ### Checks 122 | 123 | ```sh 124 | haqqd start 125 | ``` 126 | 127 | 128 | ## Service setup 129 | 130 | 1. Install cosmovisor bin 131 | ```sh 132 | go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@latest 133 | ``` 134 | 135 | 2. Create cosmovisor folders 136 | ```sh 137 | mkdir $HOME/.haqqd/cosmovisor && \ 138 | mkdir -p $HOME/.haqqd/cosmovisor/genesis/bin && \ 139 | mkdir -p $HOME/.haqqd/cosmovisor/upgrades 140 | ``` 141 | 142 | 3. Copy node binary into Cosmovisor folder 143 | ```sh 144 | cp /root/go/bin/haqqd $HOME/.haqqd/cosmovisor/genesis/bin 145 | ``` 146 | 147 | 4. Create haqqd cosmovisor service 148 | ```sh 149 | nano /etc/systemd/system/haqqd.service 150 | ``` 151 | 152 | ```sh 153 | [Unit] 154 | Description="haqqd cosmovisor" 155 | After=network-online.target 156 | 157 | [Service] 158 | User=root 159 | ExecStart=/root/go/bin/cosmovisor run start 160 | Restart=always 161 | RestartSec=3 162 | LimitNOFILE=4096 163 | Environment="DAEMON_NAME=haqqd" 164 | Environment="DAEMON_HOME=/root/.haqqd" 165 | Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=true" 166 | Environment="DAEMON_RESTART_AFTER_UPGRADE=true" 167 | Environment="UNSAFE_SKIP_BACKUP=false" 168 | 169 | [Install] 170 | WantedBy=multi-user.target 171 | ``` 172 | 173 | 5. Enable and start service 174 | 175 | ```sh 176 | systemctl enable haqqd.service && \ 177 | systemctl start haqqd.service 178 | ``` 179 | 180 | 6. Check logs 181 | ```sh 182 | journalctl -fu haqqd 183 | ``` 184 | 185 | 186 | ## Helpful links 187 | 188 | - https://quicksync.io/networks/osmosis.html 189 | - https://polkachu.com/tendermint_snapshots/haqq 190 | -------------------------------------------------------------------------------- /docs/network/run-node/mainnet-from-snapshot.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # Mainnet from Snapshot 6 | 7 | ## Overview 8 | 9 | The current HAQQ version of mainnet is [`v1.7.8`](https://github.com/haqq-network/haqq/releases/tag/v1.7.8). 10 | Sources of all scripts are here [`github`](https://github.com/haqq-network/mainnet) 11 | 12 | ## Quickstart 13 | 14 | _*Battle tested on [Ubuntu LTS 22.04](https://spinupwp.com/doc/what-does-lts-mean-ubuntu/#:~:text=The%20abbreviation%20stands%20for%20Long,extended%20period%20over%20regular%20releases)*_ 15 | 16 | **You can follow these steps to set up your environment:** 17 | 18 | Install packages: 19 | 20 | ```sh 21 | sudo apt-get update && \ 22 | sudo apt-get install curl git make gcc liblz4-tool build-essential jq aria2 -y 23 | ``` 24 | 25 | **Preresquisites for compile from source** 26 | 27 | - `make` & `gcc` 28 | - `Go 1.21+` 29 | 30 | **Easy GO compiler and HAQQ Node installation** 31 | 32 | ```sh 33 | bash <(curl -s https://raw.githubusercontent.com/haqq-network/mainnet/master/install_go.sh) && \ 34 | source $HOME/.bash_profile && \ 35 | bash <(curl -s https://raw.githubusercontent.com/haqq-network/mainnet/master/install_haqq.sh) 36 | ``` 37 | 38 | **Do the same manually:** 39 | 40 | Download latest binary for your arch: 41 | https://github.com/haqq-network/haqq/releases/tag/v1.7.8 42 | 43 | Build from source: 44 | 45 | ```sh 46 | cd $HOME 47 | git clone -b v1.7.8 https://github.com/haqq-network/haqq 48 | cd haqq 49 | make install 50 | ``` 51 | 52 | Verify Binary Version: 53 | 54 | ```sh 55 | haqq@haqq-node:~# haqqd -v 56 | haqqd version "1.7.8" 3058d8f0485747aa5eacb352330d6bc1a867a838 57 | ``` 58 | 59 | **Initialize** 60 | 61 | Run script: 62 | 63 | ```sh 64 | export CUSTOM_MONIKER="mainnet_node" 65 | export HAQQD_DIR="$HOME/.haqqd" # default haqq home folder 66 | 67 | haqqd config chain-id haqq_11235-1 && \ 68 | haqqd init $CUSTOM_MONIKER --chain-id haqq_11235-1 69 | 70 | # Prepare genesis file for mainet(haqq_11235-1) 71 | curl -L https://raw.githubusercontent.com/haqq-network/mainnet/master/genesis.json -o $HAQQD_DIR/config/genesis.json 72 | 73 | # Prepare addrbook 74 | curl -L https://raw.githubusercontent.com/haqq-network/mainnet/master/addrbook.json -o $HAQQD_DIR/config/addrbook.json 75 | ``` 76 | 77 | After that need to download a haqq node snapshot from one of our providers: 78 | 79 | - [Polkachu](https://polkachu.com/tendermint_snapshots/haqq) 80 | - [Publicnode](https://publicnode.com/snapshots) 81 | 82 | Example download command via aria2(via polkachu): 83 | ```ruby 84 | aria2c https://snapshots.polkachu.com/snapshots/haqq/haqq_12345540.tar.lz4 85 | ``` 86 | 87 | And decompress to HAQQD_DIR and start node(archive name is just for example use actual name from provider) 88 | 89 | Example for Polkachu format: 90 | ```sh 91 | lz4 -c -d haqq_12345540.tar.lz4 | tar -x -C $HAQQD_DIR 92 | ``` 93 | Example for Publicnode format: 94 | ```sh 95 | lz4 -c -d haqq-pruned-12345957-12345967.tar.lz4 | tar -x -C $HAQQD_DIR 96 | ``` 97 | 98 | After decompress you can try to start the node: 99 | ```sh 100 | haqqd start 101 | ``` 102 | 103 | ## Upgrade to Validator Node 104 | 105 | You now have an active full node. What's the next step? You can upgrade your full node to become a Haqq Validator. The top 150 validators have the ability to propose new blocks to the Haqq Network. Continue onto the [Run a Validator](../run-a-validator.md). 106 | -------------------------------------------------------------------------------- /docs/network/run-node/mainnet-state-sync.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # Mainnet from State-Sync 6 | 7 | ## Overview 8 | 9 | The current HAQQ version of mainnet is [`v1.7.8`](https://github.com/haqq-network/haqq/releases/tag/v1.7.8). 10 | Sources of all scripts are here [`github`](https://github.com/haqq-network/mainnet) 11 | 12 | ## Quickstart 13 | 14 | _*Battle tested on [Ubuntu LTS 22.04](https://spinupwp.com/doc/what-does-lts-mean-ubuntu/#:~:text=The%20abbreviation%20stands%20for%20Long,extended%20period%20over%20regular%20releases)*_ 15 | 16 | **All-in-one (tested on Ubuntu LTS):** 17 | 18 | You can easily install all dependencies and the HAQQ node binary by using a single bash script. 19 | 20 | ```sh 21 | CUSTOM_MONIKER="haqq_node" && \ 22 | curl -OL https://raw.githubusercontent.com/haqq-network/mainnet/master/all_in_one.sh && \ 23 | sudo sh all_in_one.sh "$CUSTOM_MONIKER" 24 | ``` 25 | 26 | **You can do the same yourself** 27 | 28 | Install packages: 29 | 30 | ```sh 31 | sudo apt-get update && \ 32 | sudo apt-get install curl git make gcc liblz4-tool build-essential jq -y 33 | ``` 34 | 35 | **Preresquisites for compile from source** 36 | 37 | - `make` & `gcc` 38 | - `Go 1.21+` 39 | 40 | **Easy GO compiler and HAQQ node installation** 41 | 42 | ```sh 43 | bash <(curl -s https://raw.githubusercontent.com/haqq-network/mainnet/master/install_go.sh) && \ 44 | source $HOME/.bash_profile && \ 45 | bash <(curl -s https://raw.githubusercontent.com/haqq-network/mainnet/master/install_haqq.sh) 46 | ``` 47 | 48 | **Do the same manually:** 49 | 50 | Download latest binary for your arch: 51 | https://github.com/haqq-network/haqq/releases/tag/v1.7.8 52 | 53 | Build from source: 54 | 55 | ```sh 56 | cd $HOME 57 | git clone -b v1.7.8 https://github.com/haqq-network/haqq 58 | cd haqq 59 | make install 60 | ``` 61 | 62 | Verify binary version: 63 | 64 | ```sh 65 | haqq@haqq-node:~# haqqd -v 66 | haqqd version "1.7.8" 3058d8f0485747aa5eacb352330d6bc1a867a838 67 | ``` 68 | 69 | **Initialize and start HAQQ** 70 | 71 | Run script: 72 | 73 | ```sh 74 | curl -OL https://raw.githubusercontent.com/haqq-network/mainnet/master/init_start.sh && \ 75 | sh init_start.sh mainnet_node 76 | ``` 77 | 78 | _`mainnet_node`_ is argument value for custom moniker 79 | 80 | ## Upgrade to Validator Node 81 | 82 | You now have an active full node. What's the next step? You can upgrade your full node to become a Haqq Validator. The top 150 validators have the ability to propose new blocks to the Haqq Network. Continue onto the [Run a Validator](../run-a-validator.md). 83 | -------------------------------------------------------------------------------- /docs/network/run-node/testnet.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | # Testnet 6 | 7 | ## Overview 8 | 9 | The current HAQQ version of testedge2 is [`v1.7.5`](https://github.com/haqq-network/haqq/releases/tag/v1.7.5). 10 | 11 | Sources of all scripts are here [`github`](https://github.com/haqq-network/testnets/tree/main/TestEdge2) 12 | 13 | ## Quickstart 14 | 15 | _*Battle tested on [Ubuntu LTS 22.04](https://spinupwp.com/doc/what-does-lts-mean-ubuntu/#:~:text=The%20abbreviation%20stands%20for%20Long,extended%20period%20over%20regular%20releases)*_ 16 | 17 | Install packages: 18 | 19 | ```sh 20 | sudo apt-get install curl git make gcc liblz4-tool build-essential jq bzip2 -y 21 | ``` 22 | 23 | **You can try to find latest compiled binary for your arch**: 24 | 25 | https://github.com/haqq-network/haqq/releases/tag/v1.7.5 26 | 27 | **Preresquisites for compile from source** 28 | 29 | - `make` & `gcc` 30 | - `Go 1.21+` 31 | 32 | Easy Go compiler installation: 33 | ```sh 34 | bash <(curl -s https://raw.githubusercontent.com/haqq-network/mainnet/master/install_go.sh) && \ 35 | source $HOME/.bash_profile 36 | ``` 37 | 38 | 39 | Build from source: 40 | 41 | ```sh 42 | cd $HOME 43 | git clone -b v1.7.5 https://github.com/haqq-network/haqq 44 | cd haqq 45 | make install 46 | ``` 47 | 48 | Check binary version: 49 | 50 | ```sh 51 | haqq@haqq-node:~# haqqd -v 52 | haqqd version "1.7.5" 53 | ``` 54 | 55 | **Run pipline** 56 | 57 | - `init folders` 58 | - `download genesis file for testnet` 59 | - `download current addrbook` 60 | - `download and run state sync settings script` 61 | - `start` 62 | 63 | ```sh 64 | CUSTOM_MONIKER="haqq_node_testedge2" 65 | 66 | haqqd config chain-id haqq_54211-3 && \ 67 | haqqd init CUSTOM_MONIKER --chain-id haqq_54211-3 68 | 69 | # Prepare genesis file for TestEdge(haqq_54211-3) 70 | curl -OL https://raw.githubusercontent.com/haqq-network/testnets/main/TestEdge2/genesis.tar.bz2 &&\ 71 | bzip2 -d genesis.tar.bz2 && tar -xvf genesis.tar &&\ 72 | mv genesis.json $HOME/.haqqd/config/genesis.json 73 | 74 | # Prepare addrbook 75 | curl -OL https://raw.githubusercontent.com/haqq-network/testnets/main/TestEdge2/addrbook.json &&\ 76 | mv addrbook.json $HOME/.haqqd/config/addrbook.json 77 | 78 | # Configure State sync 79 | curl -OL https://raw.githubusercontent.com/haqq-network/testnets/main/TestEdge2/state_sync.sh &&\ 80 | sh state_sync.sh 81 | 82 | # Start Haqq 83 | haqqd start 84 | ``` 85 | 86 | ## Upgrade to Validator Node 87 | 88 | You now have an active full node. What's the next step? You can upgrade your full node to become a Haqq Validator. The top 150 validators have the ability to propose new blocks to the Haqq Network. Continue onto the [Run a Validator](../run-a-validator.md).. 89 | -------------------------------------------------------------------------------- /docs/network/upgrades/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Network upgrades", 3 | "position": 6 4 | } 5 | -------------------------------------------------------------------------------- /docs/network/upgrades/automated.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # Automated Upgrades 6 | 7 | We highly recommend validators use Cosmovisor to run their nodes. This will make low-downtime upgrades smoother, as validators don't have to manually upgrade binaries during the upgrade. Instead users can [pre-install](#manual-download) new binaries, and Cosmovisor will automatically update them based on on-chain Software Upgrade proposals. 8 | 9 | > [`cosmovisor`](https://docs.cosmos.network/main/tooling/cosmovisor) is a small process manager for Cosmos SDK application binaries that monitors the governance module for incoming chain upgrade proposals. If it sees a proposal that gets approved, cosmovisor can automatically download the new binary, stop the current binary, switch from the old binary to the new one, and finally restart the node with the new binary. 10 | 11 | ## Prerequisites 12 | 13 | - [Install Cosmovisor](https://docs.cosmos.network/main/tooling/cosmovisor#installation) 14 | 15 | ## 1. Setup Cosmovisor 16 | 17 | Set up the Cosmovisor environment variables. We recommend setting these in your `.profile` so it is automatically set in every session. 18 | 19 | ```bash 20 | echo "# Setup Cosmovisor" >> ~/.profile 21 | echo "export DAEMON_NAME=haqqd" >> ~/.profile 22 | echo "export DAEMON_HOME=$HOME/.haqqd" >> ~/.profile 23 | source ~/.profile 24 | ``` 25 | 26 | After this, you must make the necessary folders for `cosmosvisor` in your `DAEMON_HOME` directory (`~/.haqqd`) and copy over the current binary. 27 | 28 | ```bash 29 | mkdir -p ~/.haqqd/cosmovisor 30 | mkdir -p ~/.haqqd/cosmovisor/genesis 31 | mkdir -p ~/.haqqd/cosmovisor/genesis/bin 32 | mkdir -p ~/.haqqd/cosmovisor/upgrades 33 | 34 | cp $GOPATH/bin/haqqd ~/.haqqd/cosmovisor/genesis/bin 35 | ``` 36 | 37 | To check that you did this correctly, ensure your versions of `cosmovisor` and `haqqd` are the same: 38 | 39 | ```bash 40 | cosmovisor run version 41 | haqqd version 42 | ``` 43 | 44 | ## 2. Download the HAQQ release 45 | 46 | ### Manual Download 47 | 48 | Cosmovisor will continually poll the `$DAEMON_HOME/data/upgrade-info.json` for new upgrade instructions. When an upgrade is [released](https://github.com/haqq-network/haqq/releases), node operators need to: 49 | 50 | 1. Download (**NOT INSTALL**) the binary for the new release 51 | 2. Place it under `$DAEMON_HOME/cosmovisor/upgrades//bin`, where `` is the URI-encoded name of the upgrade as specified in the Software Upgrade Plan. 52 | 53 | **Example**: for a `Plan` with name `v1.7.0` with the following `upgrade-info.json`: 54 | 55 | ```json 56 | { 57 | "binaries": { 58 | "darwin/arm64": "https://github.com/haqq-network/haqq/releases/download/v1.7.0/haqq_1.7.0_Darwin_arm64.tar.gz", 59 | "darwin/x86_64": "https://github.com/haqq-network/haqq/releases/download/v1.7.0/haqq_1.7.0_Darwin_x86_64.tar.gz", 60 | "linux/arm64": "https://github.com/haqq-network/haqq/releases/download/v1.7.0/haqq_1.7.0_Linux_arm64.tar.gz", 61 | "linux/amd64": "https://github.com/haqq-network/haqq/releases/download/v1.7.0/haqq_1.7.0_Linux_amd64.tar.gz" 62 | } 63 | } 64 | ``` 65 | 66 | Your `cosmovisor/` directory should look like this: 67 | 68 | ```shell 69 | cosmovisor/ 70 | ├── current/ # either genesis or upgrades/ 71 | ├── genesis 72 | │ └── bin 73 | │ └── haqqd 74 | └── upgrades 75 | └── v3.0.0 76 | ├── bin 77 | │ └── haqqd 78 | └── upgrade-info.json 79 | ``` 80 | 81 | ### Automatic Download 82 | 83 | :::warning 84 | **NOTE**: Auto-download doesn't verify in advance if a binary is available. If there will be any issue with downloading a binary, `cosmovisor` will stop and won't restart an the chain (which could lead it to a halt). 85 | ::: 86 | 87 | It is possible to have Cosmovisor [automatically download](https://docs.cosmos.network/main/tooling/cosmovisor#auto-download) the new binary. Validators can use the automatic download option to prevent unnecessary downtime during the upgrade process. This option will automatically restart the chain with the upgrade binary once the chain has halted at the proposed `upgrade-height`. The major benefit of this option is that validators can prepare the upgrade binary in advance and then relax at the time of the upgrade. 88 | 89 | To set the auto-download use set the following environment variable: 90 | 91 | ```bash 92 | echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=true" >> ~/.profile 93 | ``` 94 | 95 | ## 3. Start your node 96 | 97 | Now that everything is setup and ready to go, you can start your node. 98 | 99 | ```bash 100 | cosmovisor run start 101 | ``` 102 | 103 | You will need some way to keep the process always running. If you're on linux, you can do this by creating a service. 104 | 105 | ```bash 106 | sudo tee /etc/systemd/system/haqqd.service > /dev/null < 36 | make install 37 | ## verify version 38 | haqqd version --long 39 | ``` 40 | 41 | 4. Finally, start the node. 42 | 43 | ```bash 44 | haqqd start 45 | ``` 46 | -------------------------------------------------------------------------------- /docs/user-guides/connect-your-wallet/Keplr.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | import { ProjectValue } from '@site/src/components/project-value/project-value'; 6 | import { 7 | chainConfig, 8 | handler, 9 | MainnetConfig, 10 | TestnetConfig, 11 | } from '@site/src/utils/chain-config'; 12 | 13 | # Keplr 14 | 15 | Connect your Keplr wallet with . 16 | 17 | - [Install Keplr](https://www.keplr.app/) 18 | 19 | ![keplr-homepage.png](/img/keplr-homepage.png) 20 | 21 | :::note 22 | The Keplr extension is officially supported on Chromium-based browsers (i.e. Edge, Chrome, and Brave) and Firefox. 23 | ::: 24 | 25 | The [Keplr](https://www.keplr.app/) browser extension is a wallet for accessing applications in the Cosmos ecosystem and 26 | managing user identities. It can be used to connect to mainnet and testnet and claim 27 | rewards, send and stake tokens, interact with governance, and more. 28 | 29 | ## Set Up Keplr 30 | 31 | :::note 32 | Further information about the process of setting up Keplr can be found in the official 33 | [Keplr Documentation](https://keplr.crunch.help/getting-started) or in this [Medium article](https://medium.com/chainapsis/how-to-use-keplr-wallet-40afc80907f6). 34 | ::: 35 | 36 | Open the Keplr extension on your browser. If you are setting up Keplr for the first time, you can either 37 | [create a new account](#create-a-new-account) or [import an existing account](#import-an-existing-account). 38 | 39 | ## Connect Keplr to HAQQ 40 | 41 | Once you are signed in to the Keplr extension, you can connect the wallet with the HAQQ network. The HAQQ mainnet network 42 | is already built into Keplr and look for the `HAQQ` network by clicking on the extension and scrolling to select the network. 43 | 44 | :::note 45 | if you already have a configured wallet, you can click on one of the two buttons below to add the network you need 46 | 47 |
48 | 54 | 55 | 61 |
62 | ::: 63 | 64 | ### Create a New Account 65 | 66 | There are several ways to create a new account: 67 | 68 | - via a [mnemonic/seed phrase](#create-a-wallet-with-a-seed-phrase) 69 | - via [one-click login](#create-an-account-with-one-click-google-oauth-login) 70 | 71 | #### Create a Wallet with a Seed Phrase 72 | 73 | ![keplr-create-new.png](/img/keplr-create-new.png) 74 | 75 | 1. In the initial pop-up window, choose **Create New Wallet** 76 | 77 | 2. In the next window, choose **Create new recovery phrase** 78 | 79 | 3. Choose to have a seed/mnemonic phrase of 12 or 24 words, copy, save the phrase and click **Next** 80 | 81 | - You can change the derivation path by clicking on **Advanced**, but this is optional (learn more in the 82 | [Keplr FAQ](https://faq.keplr.app/)) 83 | 84 | 4. Verify your seed/mnemonic phrase by filling the form word fields according to their numbers 85 | 86 | 5. Enter a name for your account (you can change later) 87 | 88 | 6. Set a strong password, repeat it and press **Next** 89 | 90 | 7. In last window, our network is not included in the list of integrated networks within the wallet. In the meantime, you can select the networks that you find useful for yourself from the list of available networks and click **Save** 91 | 92 | :::note Note 93 | Currently, our network is not included in the list of integrated networks within the wallet. 94 | However, please note that we are actively working towards integration and aim to be included as soon as possible. 95 | ::: 96 | 97 | ![keplr-select-chain.png](/img/keplr-select-chain.png) 98 | 99 | #### Create an Account with One-Click (Google OAuth) Login 100 | 101 | :::note 102 | It is suggested to create an account via mnemonic phrase or utilize a Ledger and not use the `Sign in with Google`. 103 | ::: 104 | 105 | 1. Choose the option **Sign in with Google** 106 | 2. Now enter the email/phone number associated with your Google account, the password, and click **Next** 107 | 3. If you have not used Keplr before, set a **strong** password for the Keplr extension, and click **Confirm** 108 | 109 | ### Import an Existing Account 110 | 111 | There are several ways to import an existing account: 112 | 113 | - via a [mnemonic/seed phrase/private key](#import-an-account-with-a-seed-phrase) 114 | - via [ledger](#import-an-account-with-a-ledger) 115 | 116 | #### Import an Account with a Seed Phrase 117 | 118 | 1. In the initial pop-up window, choose **Import Existing Account** 119 | 120 | - If you have used Keplr before, click on the **Import an existing wallet**, and select **Use recovery phrase or private key** 121 | ![keplr-import-existing.png](/img/keplr-import-existing.png) 122 | 123 | 2. Enter your mnemonic/seed phrase/private key in the appropriate slot, separating the words with spaces and taking 124 | care to check they are spelled correctly 125 | ![keplr-seed-phrase.png](/img/keplr-seed-phrase.png) 126 | 3. Make sure you have imported the account with the correct derivation path, viewable by clicking on **Advanced** 127 | 128 | - Normally, the derivation path should be `m/44'/…’/0/0/0`, but if you see that importing the account via 129 | mnemonic on Keplr, the Cosmos Mainnet address displayed is different than yours, it is possible the derivation 130 | path ends with 1 (or another number) instead of 0 131 | - If this is the case, you just have to start the process over, and replace the last 0 with 1 132 | - Learn more in the [Keplr FAQ](https://faq.keplr.app/) 133 | 134 | 4. If you have not used Keplr before, set a **strong** password for the Keplr extension, and click **Confirm** 135 | 136 | #### Import an Account with a Ledger 137 | 138 | ![kepler-import-ledger.png](/img/kepler-import-ledger.png) 139 | 140 | 1. In the initial pop-up window, choose **Import Ledger** 141 | 142 | - If you have used Keplr before, click on the silhouette in the upper-right corner, then the blue box labeled 143 | **Add Account**, and select **Import Ledger** 144 | - Be sure you have both the Cosmos and Ethereum Ledger apps downloaded on your Ledger device 145 | 146 | 2. To complete the connection with your Ledger device, follow the steps described in the pop-up that appears (a detailed 147 | tutorial can be found [here](https://medium.com/chainapsis/how-to-use-ledger-nano-hardware-wallet-with-keplr-9ea7f07826c2)) 148 | or another article from a [validator](https://medium.com/coinmonks/how-to-set-up-ledger-wallet-evmos-using-keplr-c438cf8c5321). 149 | 3. If you have not used Keplr before, set a **strong** password for the Keplr extension, and click **Confirm** 150 | 4. Switch to the Ethereum app on the Ledger, then select “HAQQ” from the Keplr chain registry to connect the public key 151 | 152 | - All signing from Keplr will use the Ledger Ethereum app, with either [EIP-712 transactions](https://eips.ethereum.org/EIPS/eip-712) 153 | or standard [Ethereum transactions](https://ethereum.org/en/developers/docs/transactions/). 154 | 155 | ## Changing RPC/REST on Keplr Wallet 156 | 157 | There are times when the wallet's connected RPC or REST is not working and requires an update. Check the 158 | [networks list](../../../develop/api/networks) for endpoints to use. To change the configuration, follow these steps: 159 | 160 | 1. Click on the Keplr Wallet Extension 161 | 2. Go to `Settings` and go to `Endpoints` 162 | 3. Make sure you are on the `HAQQ Testnet` network from the dropdown. Testnet networks will likely be towards the bottom 163 | of the list. 164 | 4. Update either the `RPC` or `REST` or both inputs and click `Confirm` 165 | 166 | 184 | -------------------------------------------------------------------------------- /docs/user-guides/connect-your-wallet/Ledger.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | slug: 'ledger' 4 | --- 5 | 6 | # Ledger 7 | 8 | Ledger offers a hardware wallet to hold user's private keys. 9 | 10 | ## Checklist 11 | 12 | - ✅ [Ledger device](https://shop.ledger.com/) 13 | - ✅ [Ledger Live](https://www.ledger.com/ledger-live) installed 14 | - ✅ [Metamask](https://metamask.io) installed 15 | - ✅ Ethereum Ledger app installed 16 | - ✅ Latest Versions (Firmware and Ethereum app) 17 | 18 | ## Introduction 19 | 20 | [Ledger](https://www.ledger.com/)'s hardware wallets are cryptocurrency wallets that are used to store private keys offline. 21 | 22 | > “Hardware wallets are a form of offline storage. A hardware wallet is a cryptocurrency wallet that stores the user's private keys (a critical piece of information used to authorize outgoing transactions on the blockchain network) in a secure hardware device.” 23 | > [Investopedia](https://www.investopedia.com/terms/l/ledger-wallet.asp) 24 | 25 | ## Installation 26 | 27 | ## Ethereum Ledger App 28 | 29 | If you want to connect to HAQQ mainnet and HAQQ testnet, you can use the Ethereum Ledger app on Ledger Live by setting the chain ID. 30 | 31 | First, you will need to install the Ethereum Ledger app by following the instructions below: 32 | 33 | 1. Open up Ledger Live app on your Desktop 34 | 2. Select **Manager** from the menu 35 | 3. Connect and unlock your device (this must be done before installation) 36 | 4. In the **App catalog** search for `Ethereum (ETH)` and click **Install**. Your Ledger device will show **Processing** and once the installation is complete, the app will appear on your Ledger device 37 | 38 | In the Ledger Live app, you should see the Ethereum app listed under the **Apps installed** tab on the **Manager** page. After the app has been successfully installed, you can close out of Ledger Live. 39 | 40 | ### Chain IDs 41 | 42 | In the table below you can find a list of Chain IDs to use with the Ethereum Ledger app. 43 | 44 | | Network | EIP155 chain ID | 45 | | ------------ | --------------- | 46 | | HAQQ Mainnet | `11235` | 47 | | HAQQ Testnet | `54211` | 48 | 49 | ## Import your Ledger Account 50 | 51 | ### Metamask 52 | 53 | Now that you've installed the app on Ledger Live, you can connect your Ledger to your computer and unlock it with your PIN-code and open the Ethereum app. 54 | 55 | :::note Note 56 | Follow our [Metamask Guide](../Metamask) to add the HAQQ Mainnet and Testnet to your Settings 57 | ::: 58 | 59 | Now you can import your Ledger account to MetaMask by using the following steps: 60 | 61 | 1. Click on connect hardware wallet 62 | 63 | ![mm1.png](/img/mm1.png) 64 | 65 | 2. Select Ledger hardware wallet 66 | 67 | ![mm2.png](/img/mm2.png) 68 | 69 | 3. Select your connected Ledger Device 70 | 71 | ![mm4.png](/img/mm4.png) 72 | 73 | 4. Import the hex addresses that you want to use 74 | 75 | ![mm3.png](/img/mm3.png) 76 | 77 | ### Keplr 78 | 79 | Reference the [Keplr Wallet](../Keplr) to setup Ledger support. 80 | 81 | ### HAQQ CLI 82 | 83 | To use your Ledger with the HAQQ CLI, first connect your device to your computer, unlock it using your PIN, and open the Ethereum app. 84 | 85 | Then, connect your Ledger to the CLI with `keys add` command, and select a name for your device: 86 | 87 | ``` 88 | haqqd keys add NAME --ledger 89 | ``` 90 | 91 | **Example:** 92 | 93 | ``` 94 | haqqd keys add myledger --ledger 95 | 96 | - address: haqq1hnmrdr0jc2ve3ycxft0gcjjtrdkncpmmkeamf9 97 | name: myledger 98 | pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A19Ty8NGmXQj/oQ+LubST9eDIhEACmWXW6gdU8h60eXI"}' 99 | type: ledger 100 | ``` 101 | 102 | To sign any transaction, simply append `--from myledger` to the end of the command to indicate that the Ledger account should be used to authenticate the message: 103 | 104 | **Example:** 105 | 106 | ``` 107 | haqqd tx bank send myledger haqq1hnmrdr0jc2ve3ycxft0gcjjtrdkncpmmkeamf9 100000aislm --fees 2000aislm --from myledger 108 | ``` 109 | 110 | Now, you can use your Ledger as you would normally interact with the CLI. 111 | 112 | ## EIP712 signing 113 | 114 | In order to sign Cosmos transactions (staking, voting on proposals, IBC transfers), with Ledger hardware wallets, we implemented EIP712. 115 | 116 | EIP712 means that the signer will generate a signature for something like a JSON representation of the Cosmos transaction and that signature will be included in the Cosmos transaction itself. 117 | 118 | ### Ledger signing 119 | 120 | If you have a Ledger connected to Metamask, you need to use it to sign the message. 121 | 122 | The Ledger device will display the domain hash and message hash before asking you to sign the transaction. 123 | 124 | ![hw_01.jpg](/img/hw_01.jpg) 125 | 126 | ![hw_02.jpg](/img/hw_02.jpg) 127 | 128 | ![hw_03.jpg](/img/hw_03.jpg) 129 | 130 | ![hw_04.jpg](/img/hw_04.jpg) 131 | 132 | **Broadcast the transaction** 133 | 134 | After signing the message, that signature needs to be added to the cosmos transaction and broadcasted to the network. 135 | 136 | This step should be done automatically by the same service that generated the message, in this case, [app.haqq.network](http://app.haqq.network) will broadcast the transaction for you. 137 | 138 | ![txsent.png](/img/txsent.png) 139 | 140 | ### Common errors 141 | 142 | - Make sure that the Ethereum Ledger app is installed. The Cosmos Ledger app is not supported on the HAQQ chain at the moment (see [FAQ](#faqs)). 143 | - Make sure you have created at least one Ethereum address on the Ledger Ethereum app. 144 | - Make sure the Ledger device is unlocked and with the Ledger Ethereum app opened before starting the importing process. 145 | 146 | ### Known issues 147 | 148 | - The denomination displayed as `ETH` when importing the wallet because we are using the Ethereum app. 149 | - If you have Metamask correctly configured, the balance on the extension will be displayed as `HAQQ`, but on the Ledger device it will be displayed as `ETH`. 150 | 151 | :::warning 152 | **IMPORTANT:** Make sure you are on the correct network before signing any transaction! 153 | ::: 154 | 155 | ## FAQs 156 | 157 |
158 | 159 | 160 | How can I generate Cosmos `secp256k1` keys with Ledger? 161 | 162 | 163 | Cosmos `secp256k1` keys are not supported on HAQQ with Ledger. Only Ethereum keys (`eth_secp256k1`) can be generated with Ledger. 164 | 165 |
166 | 167 |
168 | 169 | 170 | My Ledger has trouble connecting or signing on the CLI 171 | 172 | 173 | The Ledger's connection to the CLI can fail for a number of reasons. Make sure to close any other apps using the Ledger (such as Ledger Live or Metamask), unlock the Ledger, and open the Ethereum app. If this does not work, simply disconnecting and reconnecting the device often solves the issue. 174 | 175 |
176 | 177 |
178 | 179 | 180 | I can’t use Metamask or Keplr with the Cosmos Ledger app 181 | 182 | 183 | Since HAQQ only support Ethereum keys and uses the same HD (hierarchival determination) wallet derivation path as Ethereum, the Cosmos Ledger app doesn’t work to sign cosmos transactions. Using Keplr with the Cosmos Ledger app will only work with derivation path `m/44'/118'/0'/0` (Cosmos) and not `m/44'/60'/0'/0` (Ethereum). On your Ledger hardware device, you can always switch to Ethereum to reconnect to the Keplr HAQQ network. 184 | 185 |
186 | -------------------------------------------------------------------------------- /docs/user-guides/connect-your-wallet/Metamask.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | import { ProjectValue } from '@site/src/components/project-value/project-value'; 6 | import { Highlighter } from '@site/src/components/highlighter/highlighter'; 7 | import Link from '@docusaurus/Link'; 8 | 9 | # MetaMask 10 | 11 | To interact with the HAQQ blockchain, you can use MetaMask, a popular wallet 12 | browser extension that launched with Ethereum. Once connected to HAQQ, you can use Metamask 13 | to manage your HAQQ accounts and interact with dApps on HAQQ. 14 | 15 | ## Connect to Mainnet 16 | 17 | If you don't have MetaMask installed, go to the [MetaMask 18 | website](https://metamask.io/download/) and install the extension for your 19 | browser. Once installed, click the button below to connect your Metamask wallet 20 | with HAQQ Mainnet using Chainlist. 21 | 22 | 28 | 29 | Chainlist helps you connect to the HAQQ Blockchain. It provides an overview of 30 | RPC nodes that you can connect to. The purpose of RPC nodes is to allow 31 | applications and users to communicate with a Blockchain network. RPC nodes 32 | listen for requests, respond with the necessary data, or execute the requested 33 | transaction. 34 | 35 | Click `Add to Metamask` to connect to the standard provider or choose 36 | from a list of RPC Server providers by clicking `Connect Wallet` next to the 37 | address. 38 | 39 | Once you've connected to an RPC Server, you're ready to go and can start using 40 | HAQQ. If you run into any issues, you can switch your RPC endpoint, and you 41 | should be good to go. 42 | 43 | ## Connect to Testnet 44 | 45 | You might want to connect your wallet to the HAQQ Testnet to interact with 46 | dApps that haven't launched on Mainnet yet. Click the button below to connect 47 | your Metamask wallet with HAQQ Testnet using Chainlist: 48 | 49 | 55 | 56 | 76 | 77 | ## Importing Accounts 78 | 79 | If you own the private key to an account, you can import it to Metamask to use 80 | the account on HAQQ. Go to `My Accounts` (top right circle) and select `Import 81 | Account`. You should see an image like the following one: 82 | 83 | ![metamask manual import account page](/img/metamask-import.png) 84 | 85 | :::note Note 86 | If it takes some time to load the balance of the account, change the 87 | network to
(or any other than or ) 88 | and then switch back to . 89 | ::: 90 | 91 | ## Download Account State 92 | 93 | To see your Metamask logs, click the top right circle and go to `Settings` > 94 | `Advanced` > `State Logs`. If you search through the JSON file for the account 95 | address you'll find the transaction history. 96 | 97 | ## Reset Account 98 | 99 | If you used your Metamask account for a legacy testnet/mainnet upgrade, you will 100 | need to reset your account in order to use it with the new network. This will 101 | clear your account's transaction history, but it won't change the balances in 102 | your accounts or require you to re-enter your Secret Recovery Phrase. 103 | 104 | :::warning 105 | Make sure you download your 106 | to persist public account addresses and transactions before clearing your wallet accounts. 107 | ::: 108 | 109 | Go to `Settings` > `Advanced` and click the `Clear activity tab data` button as shown 110 | below: 111 | 112 | ![Metamask Account Reset](/img/reset-account.png) 113 | -------------------------------------------------------------------------------- /docs/user-guides/connect-your-wallet/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Connect Your Wallet", 3 | "position": 2 4 | } 5 | -------------------------------------------------------------------------------- /docs/user-guides/connect-your-wallet/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | title: Wallet Overview 4 | slug: '/wallet' 5 | --- 6 | 7 | # Wallet Overview 8 | 9 | HAQQ Network supports both Cosmos and ERC-20 coins. There are several wallets that work with the network. Some of these wallets support Ledger connectivity. Consult the table below for more information. We recommend official HAQQ Wallet, Metamask and Keplr wallets. These three wallets also work with the Ledger. For more information about Ledger, proceed to [here](../connect-your-wallet/ledger). 10 | 11 | | Wallet | Supported | Ledger | Detail | 12 | |--------------------------------------------|-----------|--------|-------------------------------------------------------------------------| 13 | | [HAQQ Wallet](https://haqq.network/wallet) | ✅ | ✅ | Mobile iOS & Android. Our own mobile wallet | 14 | | [Metamask](https://metamask.io/) | ✅ | ✅ | Mobile & Browsers. Supports ERC-20 tokens, and registered Cosmos coins on EVM layer | 15 | | [Keplr](https://www.keplr.app/) | ✅ | ✅ | Mobile & Browsers. Supports Cosmos coins, and registered ERC20 on the Cosmos layer ERC-20 | 16 | | [Ledger](https://www.ledger.com/) | ✅ | ✅ | Desktop & Mobile. Supported on Metamask, Keplr, and CLI | 17 | | [Leap](https://www.leapwallet.io) | ✅ | ✅ | Desktop browsers. Supports Cosmos coins, and registered ERC20 on the Cosmos layer ERC-20 | 18 | | [Haqabi Wallet](https://haqabi.com/) | ✅ | ❌ | Mobile iOS & Android. Support Haqq network by default without any additional settings | 19 | -------------------------------------------------------------------------------- /docs/user-guides/crosschainswap.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | title: Cross-chain Swap/Send 4 | --- 5 | 6 | # Cross-chain Swap/Send via Skip 7 | 8 | ## Introduction 9 | 10 | This short tutorial will guide you through the process of cross-network swapping or token transferring on the HAQQ Network using Keplr and the Skip API. 11 | 12 | :::note Information from the Haqq Team 13 | The Haqq team is actively working on integrating cross-chain swap/send functionality into the HAQQ Wallet. Stay tuned for updates. 14 | ::: 15 | 16 | :::note About Skip 17 | Skip Go API is an end-to-end interoperability platform enabling developers to create seamless cross-chain experiences for users by integrating a variety of underlying DEXes and cross-chain messaging protocols, including IBC, CCTP, Hyperlane, and Axelar. Skip’s mission is to make cross-chain interoperability easy for both developers and their users! 18 | ::: 19 | 20 | Skip products, such as the Skip API, are used by various projects, including Noble Chain - [Noble Express Transfer](https://express.noble.xyz/transfer). In this tutorial, we will use the official Skip interface - [Skip GO](https://go.skip.build). 21 | ![crosschain-skip-go](/img/user_guides/crosschain-skip-go.png) 22 | 23 | ## Preparation 24 | 25 | :::danger 26 | Recipient addresses MUST be your personal wallets, not the addresses of exchanges! 27 | ::: 28 | 29 | 1. [Install Keplr](/user-guides/connect-your-wallet/Keplr/) and add both the Noble and HAQQ networks. 30 | 2. Obtain a wallet address in Bech32 format on the HAQQ network. 31 | 3. Obtain a wallet address on the Noble network. 32 | 33 | :::tip Obtaining a Bech32 Address in HAQQ Wallet 34 | In the HAQQ Wallet, you can retrieve your wallet address in both EVM and Bech32 formats (the latter is used in Cosmos networks). To do this, click the three dots next to your wallet address and select "Copy Bech32 Address." 35 |
36 | ![haqqwallet-get-bech32](/img/user_guides/haqqwallet-get-bech32.jpeg) 37 |
38 | ::: 39 | 40 | :::tip Obtaining a Bech32 Address on HAQQ via EVM Address 41 | If you have the recipient's address in EVM format on the HAQQ Network, you can convert it to a Bech32 address using the web app for vesting. Visit this URL: https://shell.haqq.network/utils/address-conversion insert your EVM address and copy the bech32 address starting with "haqq1...." 42 |
43 | ![address-conversion](/img/user_guides/address-conversion.png) 44 |
45 | ::: 46 | 47 | ## Transfer Process 48 | 49 | 1. Go to https://go.skip.build/. 50 | 2. Select the network you want to send from, for example, Ethereum. 51 | 3. Select the token you want to send, for example, USDC. 52 | 4. Select the destination network - HAQQ Network. 53 | 5. Select the token you want to receive, for example, axlUSDC. 54 | 6. Click on "Swap" 55 | 7. Review the tokens and networks. If everything looks correct, click "Set Destination Address." 56 | 8. Set the recipient address on the HAQQ Network using Keplr or manually paste the Bech32 address. 57 | :::note The sender and recipient addresses must not be the same. 58 | ::: 59 |
60 | skip-destination 61 |
62 | 63 | 9. Review the operation one more time. If everything is correct, click "Confirm swap." 64 | 10. Skip will request permission to deduct the amount you wish to transfer. Verify the amount and confirm the operation. 65 | ![skip-approve](/img/user_guides/skip-approve.png) 66 | 67 | 12. After 10-15 seconds, Skip will request the transfer transaction. Confirm it. 68 | 69 |
70 | skip-tx 71 |
72 | 73 | 13. Next, you will see a screen indicating the EVM bridging finality time, which is approximately 16 minutes. 74 |
75 | skip-confirm 76 |
77 | 78 | 14. At this point, you can safely leave the page. Your tokens will be credited to your wallet on the HAQQ Network in about 16 minutes. 79 | 15. The current transfer status will be displayed on the page. 80 | 16. Once the transfer is complete, the successful status and transaction details will be shown. 81 |
82 | skip-final 83 |
84 | 85 | 86 | -------------------------------------------------------------------------------- /docs/user-guides/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | import { ProjectValue } from '@site/src/components/project-value/project-value'; 6 | 7 | # Overview 8 | 9 | :::note Learn about validating on 10 | ::: 11 | 12 | ## Introduction 13 | 14 | HAQQ Network is based on [CometBFT](https://github.com/cometbft/cometbft), which relies on a set of validators that are responsible for committing new blocks in the blockchain. These validators participate in the consensus protocol by broadcasting votes which contain cryptographic signatures signed by each validator's private key. 15 | 16 | Validator candidates can bond their own staking tokens and have the tokens "delegated", or staked, to them by token holders. The **** is 's native token. At its onset, will launch with 150 validators. The validators are determined by who has the most stake delegated to them — the top 150 validator candidates with the most stake will become validators. 17 | 18 | Validators and their delegators will earn s as block provisions and tokens as transaction fees through execution of the consensus protocol. Initially, transaction fees will be paid in Photons but in the future, any token in the Cosmos ecosystem will be valid as fee tender if it is whitelisted by governance. Note that validators can set commission on the fees their delegators receive as additional incentive. 19 | 20 | If validators double sign, are frequently offline or do not participate in governance, their staked s (including s of users that delegated to them) can be slashed. The penalty depends on the severity of the violation. 21 | 22 | ## Get Involved 23 | 24 | Set up a dedicated validator's website, social profile (eg: Twitter) and signal your intention to become a validator on Discord. This is important since delegators will want to have information about the entity they are delegating their ISLMs to. 25 | 26 | ## Seek Legal Advice 27 | 28 | Seek legal advice if you intend to run a validator. 29 | 30 | ## Community 31 | 32 | Discuss the finer details of being a validator on our community chat: 33 | 34 | - [HAQQ Network Discord](https://discord.gg/CDtXuQG3Vd) 35 | - [Islamic Coin Discord](https://discord.gg/aZMm8pekhZ) -------------------------------------------------------------------------------- /docusaurus.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | // Note: type annotations allow type checking and IDEs autocompletion 3 | 4 | const lightCodeTheme = require('prism-react-renderer').themes.github; 5 | const darkCodeTheme = require('prism-react-renderer').themes.vsDark; 6 | 7 | function defineSection(section, options = {}) { 8 | return [ 9 | '@docusaurus/plugin-content-docs', 10 | /** @type {import('@docusaurus/plugin-content-docs').Options} */ 11 | ({ 12 | path: `docs/${section}`, 13 | routeBasePath: section, 14 | id: section, 15 | sidebarPath: require.resolve('./sidebars.js'), 16 | breadcrumbs: true, 17 | editUrl: 'https://github.com/haqq-network/docs/tree/master/', 18 | ...options, 19 | }), 20 | ]; 21 | } 22 | 23 | const SECTIONS = [ 24 | defineSection('learn'), 25 | defineSection('develop'), 26 | defineSection('user-guides'), 27 | defineSection('network'), 28 | ]; 29 | 30 | /** @type {import('@docusaurus/types').Config} */ 31 | const config = { 32 | title: 'HAQQ Documentation', 33 | tagline: 34 | 'HAQQ is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality.', 35 | url: 'https://docs.haqq.network', 36 | baseUrl: '/', 37 | onBrokenLinks: 'throw', 38 | onBrokenMarkdownLinks: 'throw', 39 | favicon: 'img/favicon.ico', 40 | trailingSlash: true, 41 | 42 | // Even if you don't use internalization, you can use this field to set useful 43 | // metadata like html lang. For example, if your site is Chinese, you may want 44 | // to replace "en" with "zh-Hans". 45 | i18n: { 46 | defaultLocale: 'en', 47 | locales: ['en'], 48 | }, 49 | 50 | customFields: { 51 | project: { 52 | name: 'HAQQ Network', 53 | short_name: 'HAQQ', 54 | denom: 'ISLM', 55 | ticker: 'ISLM', 56 | binary: 'haqqd', 57 | testnet_denom: 'ISLM', 58 | testnet_ticker: 'ISLM', 59 | rpc_url: 'https://rpc.eth.haqq.network', 60 | rpc_url_testnet: 'https://rpc.eth.testedge2.haqq.network', 61 | rpc_url_local: 'http://localhost:8545/', 62 | chain_id: '11235', 63 | testnet_chain_id: '54211', 64 | // version_number: '2', 65 | // testnet_version_number: '4', 66 | // testnet_evm_explorer_url: 'https://evm.evmos.dev', 67 | // evm_explorer_url: 'https://escan.live', 68 | // testnet_cosmos_explorer_url: 'https://testnet.mintscan.io/evmos-testnet', 69 | // cosmos_explorer_url: 'https://www.mintscan.io/evmos', 70 | latest_version: 'v1.8.2', 71 | mainnet_version: 'v1.8.2', 72 | testnet_version: 'v1.8.2', 73 | block_explorer_url: 'https://explorer.haqq.network', 74 | eth_name: 'Main Ethereum Network', 75 | unbonding_period: '21 days', 76 | active_set: '150', 77 | }, 78 | }, 79 | 80 | presets: [ 81 | [ 82 | 'classic', 83 | /** @type {import('@docusaurus/preset-classic').Options} */ 84 | ({ 85 | // NOTE: Docs enabled separate in plugins section 86 | docs: { 87 | path: 'docs/home', 88 | // routeBasePath: '/', 89 | sidebarPath: require.resolve('./sidebars.js'), 90 | breadcrumbs: true, 91 | }, 92 | blog: false, 93 | theme: { 94 | customCss: require.resolve('./src/css/custom.css'), 95 | }, 96 | sitemap: { 97 | lastmod: 'datetime', 98 | changefreq: 'weekly', 99 | priority: 0.5, 100 | }, 101 | }), 102 | ], 103 | ], 104 | plugins: [ 105 | ...SECTIONS, 106 | [ 107 | 'posthog-docusaurus', 108 | { 109 | apiKey: 'phc_S8yvZufvPSBgyfXwjP2nIzndGES4HV8i0yOxMecUkLE', 110 | appUrl: 'https://eu.posthog.com', 111 | enableInDevelopment: false, 112 | }, 113 | ], 114 | async function tailwindPlugin() { 115 | return { 116 | name: 'docusaurus-tailwindcss', 117 | configurePostCss(postcssOptions) { 118 | postcssOptions.plugins.push(require('tailwindcss')); 119 | postcssOptions.plugins.push(require('autoprefixer')); 120 | return postcssOptions; 121 | }, 122 | }; 123 | }, 124 | ], 125 | 126 | themeConfig: 127 | /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ 128 | ({ 129 | metadata: [ 130 | { 131 | name: 'keywords', 132 | content: 133 | 'HAQQ, blockchain, ethereum, proof of stake, validator, documentation, islamic blockchain', 134 | }, 135 | { 136 | name: 'description', 137 | content: 138 | 'HAQQ is a scalable and interoperable Ethereum blockchain, built on Proof-of-Stake with fast-finality. Explore our comprehensive documentation.', 139 | }, 140 | { 141 | property: 'og:title', 142 | content: 143 | 'HAQQ Network Documentation - Ethereum Compatible Blockchain Platform', 144 | }, 145 | { 146 | property: 'og:description', 147 | content: 148 | 'HAQQ is a scalable and interoperable Ethereum blockchain, built on Proof-of-Stake with fast-finality. Explore our comprehensive documentation.', 149 | }, 150 | { 151 | name: 'sitemap', 152 | content: '/sitemap.xml', 153 | }, 154 | ], 155 | // Replace with your project's social card 156 | // image: 'img/haqq-social-card.jpg', 157 | navbar: { 158 | title: '', 159 | logo: { 160 | alt: 'HAQQ Network', 161 | src: 'img/haqq-logo.svg', 162 | srcDark: 'img/haqq-logo-white.svg', 163 | }, 164 | items: [ 165 | { 166 | href: '/learn', 167 | position: 'left', 168 | label: 'Learn', 169 | }, 170 | { 171 | href: '/network', 172 | position: 'left', 173 | label: 'Network', 174 | }, 175 | { 176 | href: '/develop', 177 | position: 'left', 178 | label: 'Develop', 179 | }, 180 | { 181 | href: '/user-guides', 182 | position: 'left', 183 | label: 'User Guides', 184 | }, 185 | { 186 | href: 'https://github.com/haqq-network/haqq', 187 | label: 'GitHub', 188 | position: 'right', 189 | }, 190 | ], 191 | }, 192 | footer: { 193 | links: [ 194 | { 195 | title: 'Docs', 196 | items: [ 197 | { 198 | href: '/learn', 199 | 200 | label: 'Learn', 201 | }, 202 | { 203 | href: '/network', 204 | 205 | label: 'Network', 206 | }, 207 | { 208 | href: '/develop', 209 | 210 | label: 'Develop', 211 | }, 212 | { 213 | href: '/user-guides', 214 | 215 | label: 'User Guides', 216 | }, 217 | ], 218 | }, 219 | { 220 | title: 'Community', 221 | items: [ 222 | { 223 | label: 'HAQQ Network Discord', 224 | href: 'https://discord.gg/CDtXuQG3Vd', 225 | }, 226 | { 227 | label: 'Islamic Coin Discord', 228 | href: 'https://discord.gg/islamiccoin', 229 | }, 230 | { 231 | label: 'Twitter', 232 | href: 'https://twitter.com/The_HaqqNetwork', 233 | }, 234 | { 235 | href: 'https://github.com/haqq-network/haqq', 236 | label: 'GitHub', 237 | }, 238 | ], 239 | }, 240 | ], 241 | copyright: `Copyright © ${new Date().getFullYear()} HAQQ Network`, 242 | }, 243 | prism: { 244 | theme: lightCodeTheme, 245 | darkTheme: darkCodeTheme, 246 | additionalLanguages: [ 247 | 'powershell', 248 | 'shell-session', 249 | 'bash', 250 | 'solidity', 251 | 'typescript', 252 | 'toml', 253 | 'yaml', 254 | 'json', 255 | ], 256 | }, 257 | algolia: { 258 | appId: 'T5OEVED57K', 259 | apiKey: '33a0821aee656a275399c5151aa06a9e', 260 | indexName: 'docusaurus', 261 | contextualSearch: true, 262 | searchParameters: {}, 263 | }, 264 | }), 265 | }; 266 | 267 | module.exports = config; 268 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "haqq-docs", 3 | "version": "0.0.1", 4 | "private": true, 5 | "repository": "git@github.com:haqq-network/docs.git", 6 | "author": "Jihad HadjHusein ", 7 | "license": "MIT", 8 | "scripts": { 9 | "docusaurus": "docusaurus", 10 | "start": "docusaurus start", 11 | "build": "docusaurus build", 12 | "swizzle": "docusaurus swizzle", 13 | "deploy": "docusaurus deploy", 14 | "clear": "docusaurus clear", 15 | "serve": "docusaurus serve", 16 | "write-translations": "docusaurus write-translations", 17 | "write-heading-ids": "docusaurus write-heading-ids", 18 | "format": "pnpm prettier --write '**/*.{ts,js,tsx,jsx,cjs,mjs,css,json,md,mdx,html,yaml,yml}'" 19 | }, 20 | "dependencies": { 21 | "@docusaurus/core": "3.7.0", 22 | "@docusaurus/plugin-sitemap": "3.7.0", 23 | "@docusaurus/preset-classic": "3.7.0", 24 | "@mdx-js/react": "3.1.0", 25 | "clsx": "2.1.1", 26 | "posthog-docusaurus": "2.0.2", 27 | "prism-react-renderer": "2.4.1", 28 | "react": "18.3.1", 29 | "react-dom": "18.3.1", 30 | "sweetalert2": "11.15.10" 31 | }, 32 | "devDependencies": { 33 | "@docusaurus/module-type-aliases": "3.7.0", 34 | "@docusaurus/tsconfig": "3.7.0", 35 | "@docusaurus/types": "3.7.0", 36 | "@tailwindcss/typography": "0.5.16", 37 | "@types/prettier": "3.0.0", 38 | "autoprefixer": "10.4.20", 39 | "browserslist": "4.24.4", 40 | "postcss": "8.5.1", 41 | "prettier": "3.4.2", 42 | "tailwindcss": "3.4.17", 43 | "typescript": "5.7.3" 44 | }, 45 | "browserslist": { 46 | "production": [ 47 | ">0.5%", 48 | "not dead", 49 | "not op_mini all" 50 | ], 51 | "development": [ 52 | "last 1 chrome version", 53 | "last 1 firefox version", 54 | "last 1 safari version" 55 | ] 56 | }, 57 | "engines": { 58 | "node": ">=22.12" 59 | }, 60 | "packageManager": "pnpm@9.15.4+sha512.b2dc20e2fc72b3e18848459b37359a32064663e5627a51e4c74b2c29dd8e8e0491483c3abb40789cfd578bf362fb6ba8261b05f0387d76792ed6e23ea3b1b6a0" 61 | } 62 | -------------------------------------------------------------------------------- /sidebars.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Creating a sidebar enables you to: 3 | - create an ordered group of docs 4 | - render a sidebar for each doc of that group 5 | - provide next/previous navigation 6 | 7 | The sidebars can be generated from the filesystem, or explicitly defined here. 8 | 9 | Create as many sidebars as you want. 10 | */ 11 | 12 | // @ts-check 13 | 14 | /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ 15 | const sidebars = { 16 | // By default, Docusaurus generates a sidebar from the docs folder structure 17 | tutorialSidebar: [{ type: 'autogenerated', dirName: '.' }], 18 | 19 | // But you can create a sidebar manually 20 | /* 21 | tutorialSidebar: [ 22 | 'intro', 23 | 'hello', 24 | { 25 | type: 'category', 26 | label: 'Tutorial', 27 | items: ['tutorial-basics/create-a-document'], 28 | }, 29 | ], 30 | */ 31 | }; 32 | 33 | module.exports = sidebars; 34 | -------------------------------------------------------------------------------- /src/components/big-card/big-card.tsx: -------------------------------------------------------------------------------- 1 | import React, { ReactNode } from 'react'; 2 | import clsx from 'clsx'; 3 | 4 | export function BigCard({ 5 | title, 6 | description, 7 | className, 8 | icon, 9 | }: { 10 | icon: ReactNode; 11 | title: string; 12 | description: string; 13 | className?: string; 14 | }) { 15 | return ( 16 |
28 |
29 |
30 | {icon} 31 |
32 |
33 |
34 | {title} 35 |
36 |
{description}
37 |
38 |
39 |
40 | ); 41 | } 42 | -------------------------------------------------------------------------------- /src/components/chain-config-value/chain-config-value.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 3 | import { MainnetConfig, TestnetConfig } from '@site/src/utils/chain-config'; 4 | 5 | export function ChainConfigValue({ chain, keyword }: { chain: string, keyword: string }) { 6 | switch (chain) { 7 | case 'main': 8 | return MainnetConfig[keyword] ? {MainnetConfig[keyword]} : null; 9 | case 'test': 10 | return TestnetConfig[keyword] ? {TestnetConfig[keyword]} : null; 11 | default: 12 | return null; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/components/highlighter/highlighter.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { ProjectValue } from '../project-value/project-value'; 3 | 4 | export const Highlighter = ({ pretext = '', keyword, postText = '' }) => { 5 | return ( 6 | 7 | {pretext} 8 | 9 | {postText} 10 | 11 | ); 12 | }; 13 | -------------------------------------------------------------------------------- /src/components/homepage-features/homepage-features.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { BigCard } from '../big-card/big-card'; 3 | import { RocketIcon } from '../icons/rocket-icon'; 4 | import { CodeIcon } from '../icons/code-icon'; 5 | import Link from '@docusaurus/Link'; 6 | import { SmallCard } from '../small-card/small-card'; 7 | import { BasicsIcon } from '../icons/basics-icon'; 8 | import { CoreConceptsIcon } from '../icons/core-concepts-icon'; 9 | import { IntroducionIcon } from '../icons/introduciton-icon'; 10 | 11 | export default function HomepageFeatures() { 12 | return ( 13 |
14 |
15 |
16 |
17 |

HAQQ Documentation

18 |

19 | HAQQ is a scalable and interoperable Ethereum, built on 20 | Proof-of-Stake with fast-finality. 21 |

22 |
23 | 24 |
25 |
26 | Getting Started 27 |
28 |

29 | Read all about HAQQ or dive straight into the code with guides. 30 |

31 | 32 |
33 |
34 | 40 | } 44 | /> 45 | 46 |
47 |
48 | 54 | } 58 | /> 59 | 60 |
61 |
62 |
63 | 64 |
65 |
66 | Explore HAQQ 67 |
68 |

69 | Get familiar with HAQQ and explore its main concepts. 70 |

71 | 72 |
73 |
74 | 78 | } 82 | /> 83 | 84 |
85 |
86 | 90 | } 94 | /> 95 | 96 |
97 |
98 | 102 | } 106 | /> 107 | 108 |
109 |
110 | 114 | } 118 | /> 119 | 120 |
121 |
122 | 126 | } 130 | /> 131 | 132 |
133 |
134 |
135 |
136 |
137 |
138 | ); 139 | } 140 | -------------------------------------------------------------------------------- /src/components/icons/basics-icon.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export function BasicsIcon() { 4 | return ( 5 | 14 | 18 | 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /src/components/icons/code-icon.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export function CodeIcon({ className }: { className?: string }) { 4 | return ( 5 | 13 | 22 | 30 | 36 | 40 | 45 | 46 | 54 | 55 | 56 | 57 | 65 | 66 | 67 | 68 | 76 | 77 | 78 | 79 | 87 | 88 | 89 | 90 | 98 | 99 | 100 | 101 | 102 | 103 | ); 104 | } 105 | -------------------------------------------------------------------------------- /src/components/icons/core-concepts-icon.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export function CoreConceptsIcon() { 4 | return ( 5 | 14 | 18 | 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /src/components/icons/introduciton-icon.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export function IntroducionIcon() { 4 | return ( 5 | 14 | {' '} 15 | 21 | 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /src/components/icons/rocket-icon.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export function RocketIcon({ className }: { className?: string }) { 4 | return ( 5 | 13 | 19 | 25 | 31 | 37 | 43 | 50 | 57 | 58 | 66 | 67 | 68 | 69 | 77 | 78 | 79 | 80 | 88 | 89 | 90 | 91 | 99 | 100 | 101 | 102 | 110 | 111 | 112 | 113 | 121 | 122 | 123 | 124 | 132 | 133 | 134 | 135 | 136 | 137 | ); 138 | } 139 | -------------------------------------------------------------------------------- /src/components/project-value/project-value.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 3 | 4 | export function ProjectValue({ keyword }: { keyword: string }) { 5 | const { siteConfig } = useDocusaurusContext(); 6 | const { 7 | customFields: { project }, 8 | } = siteConfig; 9 | 10 | return project[keyword] ? {project[keyword]} : null; 11 | } 12 | -------------------------------------------------------------------------------- /src/components/small-card/small-card.tsx: -------------------------------------------------------------------------------- 1 | import React, { ReactNode } from 'react'; 2 | import styles from './small-card.module.css'; 3 | import clsx from 'clsx'; 4 | 5 | interface SmallCardProps { 6 | icon: ReactNode; 7 | title: string; 8 | description: string; 9 | className?: string; 10 | } 11 | 12 | export function SmallCard({ title, description, icon }: SmallCardProps) { 13 | return ( 14 |
15 |
16 |
{icon}
17 |
18 |
{title}
19 |
{description}
20 |
21 |
22 |
23 | ); 24 | } 25 | -------------------------------------------------------------------------------- /src/css/custom.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @font-face { 6 | font-family: 'Clash Display'; 7 | src: url('/fonts/ClashDisplay-Medium.woff2') format('woff2'), 8 | url('/fonts/ClashDisplay-Medium.woff') format('woff'); 9 | font-weight: 500; 10 | font-style: normal; 11 | } 12 | 13 | @font-face { 14 | font-family: 'HK Guise'; 15 | src: url('/fonts/hk_guise_medium-webfont.woff2') format('woff2'), 16 | url('/fonts/hk_guise_medium-webfont.woff') format('woff'); 17 | font-weight: 500; 18 | font-style: normal; 19 | } 20 | 21 | @font-face { 22 | font-family: 'HK Guise'; 23 | src: url('/fonts/hk_guise_regular-webfont.woff2') format('woff2'), 24 | url('/fonts/hk_guise_regular-webfont.woff') format('woff'); 25 | font-weight: 400; 26 | font-style: normal; 27 | } 28 | 29 | :root { 30 | /* Base fonts with fallbacks */ 31 | --font-apple: -apple-system, 'BlinkMacSystemFont'; 32 | --font-fallback: 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 33 | 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 34 | --font-emoji: 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; 35 | --font-family-base: var(--font-apple), var(--font-fallback), var(--font-emoji); 36 | 37 | --guise-font: 'HK Guise', var(--font-family-base); 38 | --clash-font: 'Clash Display', var(--font-family-base); 39 | 40 | --ifm-color-primary: #ec5728; 41 | --ifm-color-primary-dark: #e44614; 42 | --ifm-color-primary-darker: #d84213; 43 | --ifm-color-primary-darkest: #b23610; 44 | --ifm-color-primary-light: #ed6135; 45 | --ifm-color-primary-lighter: #ee6b41; 46 | --ifm-color-primary-lightest: #ef754e; 47 | --ifm-background-color: #ffffff; 48 | --ifm-background-surface-color: var(--ifm-background-color); 49 | --ifm-navbar-background-color: var(--ifm-background-color); 50 | --ifm-footer-background-color: var(--ifm-background-color); 51 | --ifm-toc-border-color: #0d0d0e3d; 52 | --ifm-heading-font-family: var(--clash-font); 53 | } 54 | 55 | /* For readability concerns, you should choose a lighter palette in dark mode. */ 56 | html[data-theme='dark'] { 57 | --ifm-color-primary: #ec5728; 58 | --ifm-color-primary-dark: #eb4d1b; 59 | --ifm-color-primary-darker: #e44614; 60 | --ifm-color-primary-darkest: #d84213; 61 | --ifm-color-primary-light: #ee6b41; 62 | --ifm-color-primary-lighter: #ef754e; 63 | --ifm-color-primary-lightest: #f39274; 64 | --ifm-background-color: #0d0d0e; 65 | --ifm-toc-border-color: #ffffff3d; 66 | } 67 | 68 | body { 69 | @apply font-sans will-change-auto; 70 | } 71 | 72 | svg { 73 | display: inline-block; 74 | vertical-align: initial; 75 | } 76 | 77 | .container { 78 | @apply !max-w-6xl mx-auto; 79 | } 80 | 81 | .container-fluid { 82 | @apply max-w-none w-full; 83 | } 84 | 85 | .markdown { 86 | @apply prose max-w-none prose-headings:text-haqq-black prose-strong:text-haqq-black text-haqq-black prose-a:text-inherit prose-headings:font-serif; 87 | @apply prose-table:table-auto prose-td:px-4 prose-td:py-2 prose-th:py-2 prose-th:px-4 prose-code:text-inherit; 88 | @apply prose-pre:bg-[#0000000d] prose-headings:font-[500]; 89 | @apply prose-blockquote:text-haqq-black; 90 | @apply prose-code:before:hidden prose-code:after:hidden; 91 | } 92 | 93 | html[data-theme='dark'] .markdown { 94 | @apply text-white prose-headings:text-white prose-strong:text-white; 95 | @apply prose-blockquote:text-white; 96 | } 97 | 98 | .theme-doc-breadcrumbs { 99 | @apply !mb-10; 100 | } 101 | 102 | .navbar { 103 | @apply border-b border-t border-[#0D0D0E3D]; 104 | @apply shadow-none; 105 | } 106 | 107 | .footer { 108 | @apply border-t border-[#0D0D0E3D] px-0; 109 | } 110 | 111 | .footer__title { 112 | @apply font-serif text-lg; 113 | } 114 | .pagination-nav__label { 115 | @apply font-serif mt-3; 116 | } 117 | .pagination-nav__label::before { 118 | @apply mr-1; 119 | } 120 | .pagination-nav__label::after { 121 | @apply ml-1; 122 | } 123 | 124 | html[data-theme='dark'] .footer, 125 | html[data-theme='dark'] .navbar { 126 | @apply border-[#FFFFFF3D]; 127 | } 128 | 129 | a { 130 | transition: none; 131 | @apply transition-colors duration-100 ease-out; 132 | } 133 | 134 | .menu__link { 135 | @apply py-3; 136 | } 137 | 138 | .big-card { 139 | @apply border-[1px] border-[#eaeaea] hover:border-haqq-orange text-haqq-black; 140 | } 141 | html[data-theme='dark'] .big-card { 142 | @apply !text-white border-[#292929] hover:border-haqq-orange; 143 | } 144 | 145 | .hero__title { 146 | @apply font-serif font-[500] my-6; 147 | } 148 | 149 | .footer__copyright { 150 | @apply text-sm; 151 | } 152 | 153 | @media (min-width: 1440px) { 154 | .container { 155 | max-width: var(--ifm-container-width-xl) !important; 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /src/pages/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 3 | import Layout from '@theme/Layout'; 4 | import HomepageFeatures from '../components/homepage-features/homepage-features'; 5 | 6 | export default function Home() { 7 | const { siteConfig } = useDocusaurusContext(); 8 | 9 | return ( 10 | 11 |
12 | 13 |
14 |
15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /src/utils/chain-config.ts: -------------------------------------------------------------------------------- 1 | import Swal from 'sweetalert2'; 2 | 3 | const MAINNET_ID = 'haqq_11235-1'; 4 | const TESTNET_ID = 'haqq_54211-3'; 5 | const HAQQ_COIN_DENOM = 'ISLM'; 6 | const HAQQ_COIN_MINIMAL_DENOM = 'aISLM'; 7 | 8 | type HAQQChainIds = typeof MAINNET_ID | typeof TESTNET_ID; 9 | 10 | interface ChainConfig { 11 | chainId: HAQQChainIds; 12 | chainName: string; 13 | rpc: string; 14 | rest: string; 15 | features: string[]; 16 | stakeCurrency: { 17 | coinDenom: string; 18 | coinMinimalDenom: string; 19 | coinDecimals: number; 20 | }; 21 | bech32Config: { 22 | bech32PrefixAccAddr: string; 23 | bech32PrefixAccPub: string; 24 | bech32PrefixValAddr: string; 25 | bech32PrefixValPub: string; 26 | bech32PrefixConsAddr: string; 27 | bech32PrefixConsPub: string; 28 | }; 29 | currencies: Currency[]; 30 | feeCurrencies: FeeCurrency[]; 31 | bip44: { 32 | coinType: number; 33 | }; 34 | } 35 | 36 | interface Currency { 37 | coinDenom: string; 38 | coinMinimalDenom: string; 39 | coinDecimals: number; 40 | } 41 | 42 | interface FeeCurrency extends Currency { 43 | gasPriceStep: { 44 | low: number; 45 | average: number; 46 | high: number; 47 | }; 48 | } 49 | 50 | export const MainnetConfig: ChainConfig = { 51 | chainId: MAINNET_ID, 52 | chainName: 'HAQQ Mainnet', 53 | rpc: 'https://rpc.tm.haqq.network', 54 | rest: 'https://rest.cosmos.haqq.network', 55 | features: ['ibc-transfer', 'ibc-go', 'eth-address-gen', 'eth-key-sign'], 56 | stakeCurrency: { 57 | coinDenom: HAQQ_COIN_DENOM, 58 | coinMinimalDenom: HAQQ_COIN_MINIMAL_DENOM, 59 | coinDecimals: 18, 60 | }, 61 | bech32Config: { 62 | bech32PrefixAccAddr: 'haqq', 63 | bech32PrefixAccPub: 'haqq' + 'pub', 64 | bech32PrefixValAddr: 'haqq' + 'valoper', 65 | bech32PrefixValPub: 'haqq' + 'valoperpub', 66 | bech32PrefixConsAddr: 'haqq' + 'valcons', 67 | bech32PrefixConsPub: 'haqq' + 'valconspub', 68 | }, 69 | currencies: [ 70 | { 71 | coinDenom: HAQQ_COIN_DENOM, 72 | coinMinimalDenom: HAQQ_COIN_MINIMAL_DENOM, 73 | coinDecimals: 18, 74 | }, 75 | ], 76 | feeCurrencies: [ 77 | { 78 | coinDenom: HAQQ_COIN_DENOM, 79 | coinMinimalDenom: HAQQ_COIN_MINIMAL_DENOM, 80 | coinDecimals: 18, 81 | gasPriceStep: { 82 | low: 20000000000, 83 | average: 25000000000, 84 | high: 40000000000, 85 | }, 86 | }, 87 | ], 88 | bip44: { 89 | coinType: 60, 90 | }, 91 | }; 92 | 93 | export const TestnetConfig: ChainConfig = { 94 | chainId: TESTNET_ID, 95 | chainName: 'HAQQ Testnet', 96 | rpc: 'https://rpc.tm.testedge2.haqq.network', 97 | rest: 'https://rest.cosmos.testedge2.haqq.network', 98 | features: ['ibc-transfer', 'ibc-go', 'eth-address-gen', 'eth-key-sign'], 99 | stakeCurrency: { 100 | coinDenom: HAQQ_COIN_DENOM, 101 | coinMinimalDenom: HAQQ_COIN_MINIMAL_DENOM, 102 | coinDecimals: 18, 103 | }, 104 | bech32Config: { 105 | bech32PrefixAccAddr: 'haqq', 106 | bech32PrefixAccPub: 'haqq' + 'pub', 107 | bech32PrefixValAddr: 'haqq' + 'valoper', 108 | bech32PrefixValPub: 'haqq' + 'valoperpub', 109 | bech32PrefixConsAddr: 'haqq' + 'valcons', 110 | bech32PrefixConsPub: 'haqq' + 'valconspub', 111 | }, 112 | currencies: [ 113 | { 114 | coinDenom: HAQQ_COIN_DENOM, 115 | coinMinimalDenom: HAQQ_COIN_MINIMAL_DENOM, 116 | coinDecimals: 18, 117 | }, 118 | ], 119 | feeCurrencies: [ 120 | { 121 | coinDenom: HAQQ_COIN_DENOM, 122 | coinMinimalDenom: HAQQ_COIN_MINIMAL_DENOM, 123 | coinDecimals: 18, 124 | gasPriceStep: { 125 | low: 20000000000, 126 | average: 25000000000, 127 | high: 40000000000, 128 | }, 129 | }, 130 | ], 131 | bip44: { 132 | coinType: 60, 133 | }, 134 | }; 135 | 136 | export const handler = async (config: ChainConfig) => { 137 | if ((window as any).keplr) { 138 | try { 139 | await (window as any).keplr.enable(config.chainId); 140 | Swal.fire({ 141 | title: 'Note', 142 | text: `Testnet ${config.chainId} has already added`, 143 | icon: 'info', 144 | confirmButtonText: 'Awesome', 145 | }); 146 | } catch (e) { 147 | try { 148 | await (window as any).keplr.experimentalSuggestChain(config); 149 | await (window as any).keplr.enable(config.chainId); 150 | } catch (e2) { 151 | Swal.fire({ 152 | title: 'Error', 153 | text: e2?.message, 154 | icon: 'error', 155 | confirmButtonText: 'Ok', 156 | }); 157 | } 158 | } 159 | } else { 160 | Swal.fire({ 161 | title: 'Error', 162 | text: 'Keplr Wallet Extension could not be found. Please check browser compatibility or try again later.', 163 | icon: 'error', 164 | confirmButtonText: 'Ok', 165 | }); 166 | } 167 | }; 168 | -------------------------------------------------------------------------------- /src/utils/keplr-pr-prep.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "chainId": "haqq_11235-1", 3 | "chainName": "HAQQ Network", 4 | // "chainSymbolImageUrl": "https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/osmosis/chain.png", 5 | "rpc": "https://rpc.tm.haqq.network", 6 | "rest": "https://rest.cosmos.haqq.network", 7 | // "nodeProvider": { 8 | // "name": "Blockapsis", 9 | // "email": "infra@blockapsis.com", 10 | // "website":"https://blockapsis.com/" 11 | // }, 12 | "bip44": { 13 | "coinType": 60 14 | }, 15 | "bech32Config": { 16 | "bech32PrefixAccAddr": "haqq", 17 | "bech32PrefixAccPub": "haqqpub", 18 | "bech32PrefixValAddr": "haqqvaloper", 19 | "bech32PrefixValPub": "haqqvaloperpub", 20 | "bech32PrefixConsAddr": "haqqvalcons", 21 | "bech32PrefixConsPub": "haqqvalconspub" 22 | }, 23 | "currencies": [ 24 | { 25 | "coinDenom": "ISLM", 26 | "coinMinimalDenom": "aISLM", 27 | "coinDecimals": 18, 28 | // "coinGeckoId": "osmosis" 29 | } 30 | ], 31 | "feeCurrencies": [ 32 | { 33 | "coinDenom": "ISLM", 34 | "coinMinimalDenom": "aISLM", 35 | "coinDecimals": 18, 36 | // "coinGeckoId": "osmosis", 37 | "gasPriceStep": { 38 | "low": 10000000000, 39 | "average": 25000000000, 40 | "high": 40000000000 41 | } 42 | } 43 | ], 44 | "stakeCurrency": { 45 | "coinDenom": "ISLM", 46 | "coinMinimalDenom": "aISLM", 47 | "coinDecimals": 18, 48 | // "coinGeckoId": "osmosis" 49 | }, 50 | "features": ["ibc-transfer", "ibc-go", "eth-address-gen", "eth-key-sign"], 51 | } 52 | -------------------------------------------------------------------------------- /static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/.nojekyll -------------------------------------------------------------------------------- /static/fonts/ClashDisplay-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/fonts/ClashDisplay-Medium.woff -------------------------------------------------------------------------------- /static/fonts/ClashDisplay-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/fonts/ClashDisplay-Medium.woff2 -------------------------------------------------------------------------------- /static/fonts/hk_guise_medium-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/fonts/hk_guise_medium-webfont.woff -------------------------------------------------------------------------------- /static/fonts/hk_guise_medium-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/fonts/hk_guise_medium-webfont.woff2 -------------------------------------------------------------------------------- /static/fonts/hk_guise_regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/fonts/hk_guise_regular-webfont.woff -------------------------------------------------------------------------------- /static/fonts/hk_guise_regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/fonts/hk_guise_regular-webfont.woff2 -------------------------------------------------------------------------------- /static/googlefd4a4dd53d93f557.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googlefd4a4dd53d93f557.html 2 | -------------------------------------------------------------------------------- /static/img/addresses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/addresses.png -------------------------------------------------------------------------------- /static/img/ecosystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/ecosystem.png -------------------------------------------------------------------------------- /static/img/eipmessage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/eipmessage.png -------------------------------------------------------------------------------- /static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/favicon.ico -------------------------------------------------------------------------------- /static/img/hw_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/hw_01.jpg -------------------------------------------------------------------------------- /static/img/hw_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/hw_02.jpg -------------------------------------------------------------------------------- /static/img/hw_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/hw_03.jpg -------------------------------------------------------------------------------- /static/img/hw_04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/hw_04.jpg -------------------------------------------------------------------------------- /static/img/kepler-import-ledger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/kepler-import-ledger.png -------------------------------------------------------------------------------- /static/img/keplr-create-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/keplr-create-new.png -------------------------------------------------------------------------------- /static/img/keplr-homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/keplr-homepage.png -------------------------------------------------------------------------------- /static/img/keplr-import-existing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/keplr-import-existing.png -------------------------------------------------------------------------------- /static/img/keplr-seed-phrase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/keplr-seed-phrase.png -------------------------------------------------------------------------------- /static/img/keplr-select-chain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/keplr-select-chain.png -------------------------------------------------------------------------------- /static/img/keplr-testnet-evmos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/keplr-testnet-evmos.png -------------------------------------------------------------------------------- /static/img/keplr_approve_chain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/keplr_approve_chain.png -------------------------------------------------------------------------------- /static/img/keplr_transaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/keplr_transaction.png -------------------------------------------------------------------------------- /static/img/liquidity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/liquidity.png -------------------------------------------------------------------------------- /static/img/metamask-import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/metamask-import.png -------------------------------------------------------------------------------- /static/img/metamask-network-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/metamask-network-settings.png -------------------------------------------------------------------------------- /static/img/mm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/mm1.png -------------------------------------------------------------------------------- /static/img/mm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/mm2.png -------------------------------------------------------------------------------- /static/img/mm3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/mm3.png -------------------------------------------------------------------------------- /static/img/mm4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/mm4.png -------------------------------------------------------------------------------- /static/img/mm5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/mm5.png -------------------------------------------------------------------------------- /static/img/msgsend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/msgsend.png -------------------------------------------------------------------------------- /static/img/reset-account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/reset-account.png -------------------------------------------------------------------------------- /static/img/schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/schedule.png -------------------------------------------------------------------------------- /static/img/txsent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/txsent.png -------------------------------------------------------------------------------- /static/img/user_guides/address-conversion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/address-conversion.png -------------------------------------------------------------------------------- /static/img/user_guides/crosschain-skip-go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/crosschain-skip-go.png -------------------------------------------------------------------------------- /static/img/user_guides/explorer-mint-tx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/explorer-mint-tx.png -------------------------------------------------------------------------------- /static/img/user_guides/explorer-nft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/explorer-nft.png -------------------------------------------------------------------------------- /static/img/user_guides/explorer-tx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/explorer-tx.png -------------------------------------------------------------------------------- /static/img/user_guides/haqqwallet-get-bech32.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/haqqwallet-get-bech32.jpeg -------------------------------------------------------------------------------- /static/img/user_guides/open-zeppelin-finish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/open-zeppelin-finish.png -------------------------------------------------------------------------------- /static/img/user_guides/open-zeppelin-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/open-zeppelin-start.png -------------------------------------------------------------------------------- /static/img/user_guides/remix-confirm-tx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/remix-confirm-tx.png -------------------------------------------------------------------------------- /static/img/user_guides/remix-deploy-setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/remix-deploy-setup.png -------------------------------------------------------------------------------- /static/img/user_guides/remix-mint-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/remix-mint-start.png -------------------------------------------------------------------------------- /static/img/user_guides/remix-mint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/remix-mint.png -------------------------------------------------------------------------------- /static/img/user_guides/remix-solidity-compiler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/remix-solidity-compiler.png -------------------------------------------------------------------------------- /static/img/user_guides/remix-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/remix-start.png -------------------------------------------------------------------------------- /static/img/user_guides/remix-token-uri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/remix-token-uri.png -------------------------------------------------------------------------------- /static/img/user_guides/remix-tx-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/remix-tx-status.png -------------------------------------------------------------------------------- /static/img/user_guides/skip-approve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/skip-approve.png -------------------------------------------------------------------------------- /static/img/user_guides/skip-confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/skip-confirm.png -------------------------------------------------------------------------------- /static/img/user_guides/skip-destination.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/skip-destination.png -------------------------------------------------------------------------------- /static/img/user_guides/skip-final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/skip-final.png -------------------------------------------------------------------------------- /static/img/user_guides/skip-tx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/user_guides/skip-tx.png -------------------------------------------------------------------------------- /static/img/vesting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haqq-network/docs/cff437b484fdd76223a048a04c13b68b9341e98c/static/img/vesting.png -------------------------------------------------------------------------------- /static/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | Sitemap: https://docs.haqq.network/sitemap.xml 4 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | const typographyPlugin = require('@tailwindcss/typography'); 2 | 3 | /** @type {import('tailwindcss').Config} */ 4 | module.exports = { 5 | content: ['./src/**/*.{js,jsx,ts,tsx}', './docs/**/*.{md,mdx}'], 6 | 7 | theme: { 8 | extend: { 9 | fontFamily: { 10 | sans: ['var(--guise-font)'], 11 | serif: ['var(--clash-font)'], 12 | }, 13 | colors: { 14 | 'haqq-black': '#0D0D0E', 15 | 'haqq-orange': '#EC5728', 16 | 'haqq-light-orange': '#FF8D69', 17 | 18 | // pearl: '#faf1e4', 19 | // darkPearl: '#dad2c7', 20 | // darkGray1: '#0b0a09', 21 | // darkGray2: '#2D2925', 22 | // darkGray3: '#4f4740', 23 | // darkGray4: '#70655c', 24 | // darkGray5: '#918378', 25 | // skinTan: '#F5E8D4', 26 | // red: '#ed4e33', 27 | // red1: '#AA2912', 28 | // green: '#97ad11', 29 | // gray: '#F0EEEC', 30 | // whiteOpacity: 'rgba(255, 255, 255, 0.1)', 31 | // blackOpacity: 'rgba(0, 0, 0, 0.6)', 32 | // grayOpacity: 'rgba(0, 0, 0, 0.05)', 33 | // dim: '#000000aa', 34 | }, 35 | }, 36 | }, 37 | variants: { 38 | extend: {}, 39 | }, 40 | plugins: [typographyPlugin], 41 | }; 42 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@docusaurus/tsconfig", 3 | "compilerOptions": { 4 | "baseUrl": "." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "rewrites": [{ "source": "/(.*)", "destination": "/" }] 3 | } 4 | --------------------------------------------------------------------------------