# Introduction to E Money Network

Welcome to E Money Network.&#x20;

E Money Network is an open-source blockchain framework designed to support EVM-compatible blockchains.&#x20;

With Tendermint and IBC compatibility, it enables inter-blockchain communication and brings decentralised finance (DeFi) capabilities to a single blockchain network.

## E Money Network Overview

E Money Network stands as the pioneering public permissioned blockchain that integrates Know Your Customer (KYC) and Anti-Money Laundering (AML) processes on-chain. It offers a MiCA-compliant infrastructure with robust bank-grade security, catering to both individual and institutional users.&#x20;

The network serves as a seamless bridge between Web2 and Web3, incorporating a Biometric Bridge, KYC compliance, Proof of Ownership, and Chain of Custody.&#x20;

With a focus on Real World Assets (RWA), E Money network enables users to tokenise on-chain tangible assets effortlessly.&#x20;

The platform empowers users to manage Crypto, Non-Fungible Tokens (NFTs), and Tokenized Assets, facilitating smooth transitions between Crypto and Fiat.&#x20;

Enjoying rapid transactions with minimal settlement times, all within the confines of the world's first regulated wallet on the E Money Network.

<br>


# Add E Money Network to Metamask

Now you can add the E Money Network chain on any web3 wallet like Metamask , so you can easily access EMYC.&#x20;

Following is a detailed, step-by-step guide for adding the E Money Network chain to MetaMask.

1. Open Metamask wallet in your browser. Now, go to the top left corner of the wallet, where you see the name of the network and click on it. “Ethereum Mainnet” will be selected by default on the wallet.&#x20;

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

2. A window with the supported list of networks will open. Now, click on “Add a custom network”.

<figure><img src="/files/4SCsiIMTwROTmE0H6EOy" alt=""><figcaption></figcaption></figure>

3. On the “Add a custom network” page, fill in the following information for E Money Network -

   **Network Name: E Money Network Mainnet**

   **Default RPC URL:**[ **https://rpc-publicnode.emoney.io/**](https://rpc-publicnode.emoney.io/)

   **Chain ID :- 4545**

   **Currency Symbol:- EMYC**

   **Block Explorer URL:**[ **https://explore.emoney.network/dashboard**](https://explore.emoney.network/dashboard)

   After filling the information, click on “Save”.

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

3. Now, you will be able to see “E Money Network mainnet” in the list of “Enabled Networks”. Select E Money Network to Send and Receive $EMYC on/from your E Money Wallet to Metamask wallet.

<figure><img src="/files/5pXJ71w3kcrcHfrGg0k0" alt=""><figcaption></figcaption></figure>

### Here are E Money Network Testnet RPC details&#x20;

\
Network Name: E Money Network Testnet\
Mainnet RPC: [*https://testnet.emoney.network*](https://testnet.emoney.network/)\
Chainid :- 4544\
TICKER:- EMYC\
Explorer:  <https://testnet.explore.emoney.network/dashboard>

**Important Note** - To send $EMYC from your MetaMask wallet, you must first whitelist your address. To do the same, please follow the steps mentioned in this guide - <https://docs.emoney.network/e-money-network-whitelist>


# Wallet Integration

This integration document serves as a reference for developers building dApps that utilize RainbowKit and intend to support the E Money Wallet. While RainbowKit provides a foundation, some UI Kits might have additional considerations.

**Prerequisites**&#x20;

This integration guide assumes you have a RainbowKit (<https://www.rainbowkit.com/docs/introduction>) project set up in your application.

You can use any other alternative to the RainbowKit.

**Installation**

*Bash*

```
npm install @rainbow-me/rainbowkit @rainbow-me/rainbowkit/wallets 
wagmi @tanstack/react-query
```

**Define the EMoney Testnet Chain**&#x20;

The code utilizes a custom chain definition for the EMoney Testnet. You'll need to create a similar definition for your desired EMoney Network (Mainnet, Testnet, etc.) following this structure:

*JavaScript*

```
import { defineChain } from "viem";

export const emoneyTestnet = defineChain({
  id: 4544,
  name: "EMoney Testnet",
  network: "emoney-testnet",
  // ... other chain properties
});
```

**Create the EMoney Wallet Definition**&#x20;

Define a Wallet object representing the EMoney Wallet in your application. This object specifies details like the wallet's ID, name, icons, mobile/extension integration instructions, and the connector creation function.&#x20;

**EMoney Provider: (enkrypt.providers.ethereum)**

The provided code checks for injected EMoney providers and uses the WalletConnect connector as a fallback. You can adjust this logic based on your preference.

*JavaScript*

```
import { getInjectedConnector, hasInjectedProvider } from "@/lib/rainbowUtils";
import { getWalletConnectConnector, Wallet } from "@rainbow-me/rainbowkit";

export const EMoney = ({ projectId }: MyWalletOptions): Wallet => ({
  // ... wallet properties (refer to code for details)
  createConnector: shouldUseWalletConnect
    ? getWalletConnectConnector({
        projectId,
      })
 : getInjectedConnector({
        namespace: "enkrypt.providers.ethereum",
      }),
});
```

**Configure RainbowKit**&#x20;

* Import the necessary functions from RainbowKit.&#x20;
* Define your RainbowKit configuration object (rainbowConfig).&#x20;
* Include the custom emoneyTestnet chain and the EMoney wallet in the configuration.&#x20;
* Set your projectId obtained from RainbowKit.

*JavaScript*

```
import { getDefaultConfig, RainbowKitProvider } from "@rainbow-me/rainbowkit";
import { emoneyTestnet, EMoney } from "./"; // Assuming this file holds your definitions

const rainbowConfig = getDefaultConfig({
  appName: "Recommended",
  projectId: "YOUR_RAINBOWKIT_PROJECT_ID",
  chains: [emoneyTestnet, holesky], // Add your desired chains
  ssr: true,
  wallets: [
    {
      groupName: "Installed",
      wallets: [EMoney],
    },
  ],
});
```

**Wrap your Application with Providers**&#x20;

Create a component named Providers that wraps your application with the necessary providers:&#x20;

WagmiProvider: Provides a context for Wagmi functionalities.&#x20;

QueryClientProvider: Manages data fetching with React Query.&#x20;

RainbowKitProvider: Initializes RainbowKit with your configuration.

*JavaScript*

```
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { ReactNode } from "react";
import { WagmiProvider } from "wagmi";

const queryClient = new QueryClient();

const Providers = ({ children }: { children: ReactNode }) => {
  return (
    <WagmiProvider config={rainbowConfig as any}>
<QueryClientProvider client={queryClient}>
        <RainbowKitProvider>{children}</RainbowKitProvider>
      </QueryClientProvider>
    </WagmiProvider>
  );
};

export default Providers;
```

**Usage in your Application**

Import the Providers component and wrap your application with it to enable RainbowKit and the EMoney Wallet integration.

*JavaScript*

```
import Providers from "./Providers";

function MyDApp() {
  // ... your application logic
}

function App() {
  return (
    <Providers>
      <MyDApp />
    </Providers>
  );
}
```

**Congratulations! You've integrated the E Money Wallet.**

(Successful E Money Wallet integration might require further customizations tailored to your specific application logic.)

For any questions or if you require further assistance, please don't hesitate to contact E Money support at <support@emoney.com>


# E-Money Tokens

E-Money Tokens are digital assets on a blockchain representing a claim on a specified amount of fiat currency (1-1). They can be used to make payments to other users or to redeem fiat currency from an issuer. They can also be used to transfer money between people and businesses.

E-Money Tokens are digital representations of fiat currency represented on a blockchain. These are designed to be used as a means of payment offering a secure, efficient and transparent way to transfer value. These coins have the potential to revolutionise the way we make payments providing several advantages over traditional fiat currency.

**Features of E-Money Tokens on Blockchain:**

* Fiat-Backed Stability: E-Money tokens maintain a stable value, backed by an equivalent amount of fiat currency held in reserve by the issuer. This stability instils confidence in users.
* Regulatory Oversight: These tokens are subject to regulatory scrutiny, ensuring they meet security, transparency, and consumer protection standards. Regulatory oversight enhances credibility and trust.
* Programmability: E-money tokens are programmable, allowing for the integration of smart contracts and additional functionalities. Smart contracts enable more complex financial transactions and applications.
* Central Bank Digital Currencies (CBDCs): Central banks are exploring blockchain technology to issue CBDCs, providing digital representations of their fiat currencies. CBDCs can be used for various financial purposes, including payments and accessing services.
* Security: Blockchain's inherent security features make it an ideal platform for storing and transferring E-money tokens. Distributed ledger technology enhances the security and integrity of transactions.
* Transparency and Auditability: Every transaction involving E-money tokens on a blockchain is transparent and auditable. This transparency fosters trust and ensures accountability within the ecosystem.
* Speed and Efficiency: Blockchain technology allows for quick and cost-effective transactions involving E-money tokens. This efficiency is particularly valuable for cross-border payments and remittances.
* Cost Reduction: E-money tokens on a blockchain can be used for payments without the need for intermediaries. This reduction in intermediaries leads to lower transaction costs, benefiting both businesses and consumers.


# E Money Network Mainnet and Testnet Explorer​

An essential part of the smart contract development environment is the explorer which indexes and serves blockchain data.&#x20;

E Money Network Mainnet Explorer is available at[ ](https://ethscan.emoney.network/)[ https://explore.emoney.network/dashboard](< https://explore.emoney.network/dashboard>)

E Money Network Testnet Explorer is available at [ https://testnet.explore.emoney.network/dashboard](< https://testnet.explore.emoney.network/dashboard>)


# E Money Network Faucet

For development purposes you will need test tokens.&#x20;

E Money Network has a[ Faucet](https://faucet.emoney.network/faucet) that drips test tokens to the address of your choice.&#x20;

Paste your E Money Network testnet from Metamask or the E Money Network Wallet address and tokens will be minted to your address.

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


# E Money Network Whitelist

E Money Network is unique among blockchains as it implements KYC on the chain. Before an 0x address is able to interact with the chain or send out any transactions on the E Money Network the user must whitelist or KYC the address from their respective E Money wallet or Whitelisted application..

In order to do this users first need to download the E Money Network wallet extension. They then create a user account which is used in the KYC verification process.

Once the user wallet is KYC approved, they can go to <https://whitelist.emoney.network/login> and log in using their E Money Network wallet credentials.

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

Since the E Money Network uses additional layers of authentication to make our applications more secure and robust, an OTP-based email verification is required. This is a more secure way to log into the user's whitelisted account.

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

By clicking on “Connect Wallet” users can select an address they want to whitelist from their Metamask wallet.

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

Once users click submit the address will be whitelisted followed by a confirmation message.

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

When the user's address gets whitelisted it can be used to access and interact within the E Money Network.

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


# Launching Your Dapp on E Money Network

#### Overview[​](https://docs.avax.network/dapps/launch-your-ethereum-dapp#overview)​

E Money Network provides developers with all the help and resources necessary to get to grips with E Money Network. This will help companies launch their existing Dapps on the E Money network. With step-by-step instructions, we will show developers and users how E Money Network works. This includes details on how to connect to the network using your existing tools and environments. We go on to discuss the common pitfalls you need to consider when running, developing and deploying your Dapps in the E Money Network environment.

#### Platform Basics[​](https://docs.avax.network/dapps/launch-your-ethereum-dapp#platform-basics)​

E Money Network is a first-in-class, regulated Bank on a chain with Decentralised Finance (DeFi) capabilities intrinsically built into the chain.

Our E Money Network is a blazingly fast Byzantine fault-tolerant blockchain with a core KYC & AML module included in the consensus mechanism at the protocol level.

It is the world’s first licensed and secured infrastructure providing a suite of banking products to empower millions of business & retail customers.&#x20;

#### Accessing E Money Network

**Using MetaMask**[**​**](https://docs.avax.network/dapps/launch-your-ethereum-dapp#through-metamask)**​**

You can access the E Money Network using a MetaMask app by defining it as a custom network. To do this you need to go to the MetaMask app, log in, click the network dropdown and select 'Custom RPC'.

**E Money Network Testnet Settings:**[**​**](https://docs.avax.network/dapps/launch-your-ethereum-dapp#avalanche-mainnet-settings)**​**

* Network Name: E Money Network Testnet
* RPC URL:[ https://testnet.emoney.network](https://testnet.emoney.network/)​
* ChainID: 4544
* Symbol: TEMYC
* Explorer: <https://testnet.explore.emoney.network/>

**E Money Network Mainnet Settings:**

* Network Name: E Money Network Mainnet
* RPC URL:[ https://rpc-publicnode.emoney.io/](https://rpc-publicnode.emoney.io/)
* Symbol: EMYC
* ChainID: 4545
* Block Explorer URL:[ https://explore.emoney.network/dashboard](https://explore.emoney.network/dashboard)

**Developing and Deploying Contracts​**

Being an Ethereum-compatible blockchain means that all of the usual Ethereum developer tools and environments can be used for development purposes. The same tools can also be used to deploy dApps for the E Money Network as well.

An example of developing EMYC20 contracts on the E Money Network or any EVM network can be found[ here](https://docs.openzeppelin.com/contracts/4.x/erc20).


# Developing and Deploying Contracts​

Being an Ethereum-compatible blockchain, all of the usual Ethereum developer tools and environments can be used to develop and deploy dApps for E Money Network.

An example for developing EMYC20 contracts on E Money Network Testnet can be found [here](https://docs.openzeppelin.com/contracts/4.x/erc20) .

### Remix[​](https://docs.avax.network/dapps/launch-your-ethereum-dapp#remix)

There is a tutorial for using [Remix](https://remix.ethereum.org/) to deploy smart contracts on E Money Network. It relies on MetaMask for access to the E Money Network.

Open Remix IDE in your browser <https://remix.ethereum.org/>&#x20;

Select Metamask in Deployment environment options.

![](https://lh7-us.googleusercontent.com/FocqhLpeWCKcMIIJYnysDQdeZmydEITfjs79_GOT0jMZndYHis73wbXKscSkl-r16xnIsTAUyqKqXNwIBN5LX_6MHEPVELagpiSlOWTmgyRxQ-Ht0NInPy4HznbrO9EKEj4mKRNRIBjYwp4lHaOFXgE)

Connect the address you want to deploy the smart contract from to the Remix IDE.

Compile the smart contract using the relevant compiler version.

![](https://lh7-us.googleusercontent.com/c1aEL9FCeADweuVR4ueW8z2S6T1YPn4EpaofHUHeDpflE688HSIhXlsiafYpELQhRHXGykT7wS9WRw1VACWyCB8ETX_Fj6hx0nz2DFEwzWzPOT_XM-5IEPigOb0LvJZeKJeBWIVs1Vd--MZhTr87Jmw)

Once compiled, deploy and run your transactions by providing suitable constructor values in the Deploy parameters.

![](https://lh7-us.googleusercontent.com/IZpqX_ykiH8LXbbM2Tndhv8sODQvoSnB1qewXk69h__WkrhoT5eSjm8I_AlX8cYLHEztMZQRhmQptp9DUrngNuvVP0gUROewnHkM5X4ZD_i6ZUJ4y7hBqIoMLN8vx67w7Ncq0DC5KIM4gi0i-nV0mx4)

After deployment, use the call and state change functions to interact with the Emoney chain using the freshly deployed smart contract.

### Truffle[​](https://docs.avax.network/dapps/launch-your-ethereum-dapp#truffle)

You can also use Truffle to test and deploy smart contracts on Emoney. Find out how in this [tutorial](https://docs.infura.io/infura/tutorials/ethereum/deploy-a-contract-using-truffle).

In the truffle config file, under the  networks tab, add E-Money network configurations as below:

![](https://lh7-us.googleusercontent.com/Lia0sHi-bCrhCUh5zPTsWD16ZWhWUPRDaP-OcX27XIOieA-LczdgXBB_9UzBV4_s6iGpIivaWfO1FV0b3FFavKLNBlFWKnhUPmDPQ3t3lFx17Tws8viORyB1XGFSW0coiIFwxWMsj-WQlDI-mPzrn1c)

### Hardhat[​](https://docs.avax.network/dapps/launch-your-ethereum-dapp#hardhat)

Hardhat is the newest development and testing environment for Solidity smart contracts and the one our developers use the most. Due to its superb testing support it is the recommended way of developing for E Money Network.

For more information see [here](https://hardhat.org/).


# Contract Verification​

(Under development)

Publishing the source code for our smart contracts is an excellent way to instil confidence in our users and offering users the following benefits:

* Transparency: By making the source code publicly available, you demonstrate a commitment to openness and transparency. Users can inspect the code to ensure that it aligns with their intended functionality and does not contain any hidden or malicious features.
* Trust: Users are more likely to trust a smart contract if they can review the underlying source code. By giving users the ability to verify the source code provides them with a sense of control and security.

Users can also verify their smart contracts by using the E Money Network Testnet Explorer. The procedure is as follows:

* navigate to your published contract address on the explorer
* on the code tab select verify & publish
* copy and paste the flattened source code and enter all the build parameters exactly as they are on the published contract
* click Verify & publish

If verification is successful the code tab will show a green checkmark and users will be able to verify the contents of your contract. This feature provides users with a strong positive signal that indicates that they can trust your contracts. Implementing this procedure is highly recommended for all production contracts.


# Contract Security Checks

Due to the nature of distributed apps it is very hard to fix bugs once the application is deployed. Hence, it is of great importance to ensure the app is running correctly and securely before deployment. Contract security reviews are done by specialised companies. They can be very costly which might be out of reach for single developers and start-ups. However, there are also automated services and programs that are free to use. The most popular are:

* ​[Slither](https://github.com/crytic/slither), here's a[ tutorial](https://blog.trailofbits.com/2018/10/19/slither-a-solidity-static-analysis-framework/)​
* ​[MythX](https://mythx.io/)​
* ​[Mythril](https://github.com/ConsenSys/mythril)​

We recommend using at least one of these services if a professional contract security review is unaffordable or not possible. A more comprehensive look into secure development practices can be found[ here](https://github.com/crytic/building-secure-contracts/blob/master/development-guidelines/workflow.md).


# Validating on E Money Network

The E Money 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.

Validator candidates can bond their own staking tokens and have the tokens "delegated" or staked to them by token holders. EMYC is the E Money network’s native token. Validators and their delegators will earn EMYC tokens as block provisions and tokens as transaction fees through execution of the Tendermint consensus protocol.&#x20;

### Pitfalls[​](https://docs.evmos.org/validate/#pitfalls)

If validators double sign are frequently offline or do not participate in governance, their staked EMYC tokens (including EMYC tokens of users that delegated to them) can be slashed. The penalty depends on the severity of the violation.

### Hardware[​](https://docs.evmos.org/validate/#hardware)

Validators should set up a physical operation secured with restricted access. A good starting place, for example, would be co-locating in secure data centres.

Validators should expect to equip their data centre location with redundant power, connectivity, and storage backups. Expect to have several redundant networking boxes for fibre, 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.

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.

### Supported OS

We officially support macOS and Linux only in the following architectures:

* darwin/arm64
* darwin/x86\_64
* linux/arm64
* linux/amd64

### Minimum Requirements

To run mainnet or testnet validator nodes, you will need a machine with the following minimum hardware requirements:

* 4 or more physical CPU cores
* At least 500GB of NVME SSD disk storage. Hard drive I/O speed is crucial!
* At least 32GB of memory (RAM)
* At least 100mbps network bandwidth

As the usage of the blockchain grows, the server requirements may increase as well, so you should have a plan for updating your server as well.


# Validator nodes

The E Money Network is secured by a Proof-Of-Stake consensus algorithm. Validators in the E Money Network can install E Money Network clients on their AWS/GCP or other cloud nodes or in-house nodes.

### Key Responsibilities of Validator Nodes in E Money Network:

* Securing the Network: Validator nodes are responsible for maintaining consensus, validating transactions, and adding new blocks to the blockchain, ensuring its integrity and security.
* Staking: To become a validator, a node must stake a significant amount of the blockchain's native cryptocurrency. This stake serves as a financial incentive to act honestly and disincentivizes malicious behaviour.
* Block Proposal: Validators take turns proposing new blocks containing valid transactions. The selection process often prioritises nodes with higher stakes and longer uptime.
* Block Validation: Upon receiving a proposed block, validators verify its legitimacy, including transaction validity, signatures, and compliance with consensus rules.
* Voting: Validators vote on the proposed blocks, either agreeing or disagreeing with their validity. A block is added to the blockchain only if a majority of validators reach consensus.
* Rewards: Validators who participate honestly and successfully in the consensus process earn rewards in the form of transaction fees and newly minted coins, proportional to their stake.
* Slashing: Validators who act maliciously, such as attempting to create invalid blocks or double-spend, can be penalised by having a portion of their stake slashed (forfeited). This mechanism further incentivizes honest behaviour.


# How to run a validator node on E Money Network

### Run a Validator

E Money 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.

Validator candidates can bond their own staking tokens and have the tokens "delegated", or staked, to them by token holders. EMYC is the E Money Network's native token. Validators and their delegators will earn EMYC as block provisions and tokens as transaction fees through execution of the Tendermint consensus protocol.&#x20;

Follow the documents within this section to run a validator node and a validator fullnode in the E Money Network. Here is a summary of the process:

1. Start by reading the node requirements to get to know the compute, memory and storage resources you need. Note also the internet bandwidth requirements.
2. Select a method to deploy your nodes, i.e., use a cloud managed Kubernetes, Docker, or source code.
3. Generate identity for the nodes. This is the first step in progressively making your nodes secure and ready to be integrated into the E Money Network.
4. Using YAML files, configure your nodes with user and network identity. This step enables the nodes to be recognized by other nodes in the E Money Network. Handshaking is possible after this step.
5. With the node identity established for the E Money Network, next you install the necessary binaries and locally generate the genesis blob and waypoint files. These will allow the node to be connected to the E Money Network.
6. Bootstrap the nodes. The nodes now have the E Money Network node binary running on them with the identity set. This fulfills the requirement for the E Money Network to become aware of your nodes. However, your nodes cannot connect to the E Money Network yet because these nodes are not yet in the validator set. On the E Money Network a validator can only accept another validator for connections. Until your nodes are in the validator set, they will be rejected by other validator nodes on the network.
7. Perform the required actions before joining the validator set. For this, you must perform a few tasks such as initialising a staking pool, delegating to operators and voters, downloading the latest versions of the genesis blob and waypoint text files and restarting your nodes.
8. Join the validator set. Other nodes will see your nodes and will establish connection to your nodes. Now you can stay in sync with the E Money Network blockchain by building up your database of the history of the ledger. It takes some time for your nodes to build the database. Whenever your nodes reach the latest version of the blockchain, your validator node will be able to start participating in the consensus process.

### Node Requirements

To make your validator node and validator fullnode deployment hassle-free, make sure you have the resources specified in this document.

#### Validator and validator fullnode

* Both a validator node and a validator fullnode required: For the E Money Network, we require that you run a validator node and a validator fullnode. We strongly recommend that you run the validator node and the validator fullnode on two separate and independent machines. Make sure that these machines are well-provisioned and isolated from each other. Guaranteeing the resource isolation between the validator and the validator fullnode will help ensure smooth deployment of these nodes.
* Public fullnode is optional: We recommend that optionally you run a public fullnode also. However, a public fullnode is not required. If you run public fullnode also, then we strongly recommend that you run the public fullnode on a third machine that is separate and independent from either the validator or the validator fullnode machines.
* Open the network ports: Make sure that you open the network ports prior to connecting to the network.
* Close the network ports: Make sure that you close these ports after either being accepted or rejected for the network.

### Hardware[​](https://docs.evmos.org/validate/#hardware)

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.

Validators should expect to equip their datacenter location with redundant power, connectivity, and storage backups. Expect to have several redundant networking boxes for fibre, 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.

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.

#### Supported OS[​](https://docs.evmos.org/validate/#supported-os)

We officially support macOS and Linux only in the following architectures:

* darwin/arm64
* darwin/x86\_64
* linux/arm64
* linux/amd64

#### Minimum Requirements[​](https://docs.evmos.org/validate/#minimum-requirements)

To run mainnet or testnet validator nodes, you will need a machine with the following minimum hardware requirements:

* 4 or more physical CPU cores
* At least 500GB of NVME SSD disk storage. Hard drive I/O speed is crucial!
* At least 32GB of memory (RAM)
* At least 100mbps network bandwidth

As the usage of the blockchain grows, the server requirements may increase as well, so you should have a plan for updating your server as well.

\
Example machine types on various clouds[​](https://aptos.dev/nodes/validator-node/operator/node-requirements#example-machine-types-on-various-clouds)

AWS

c6id.8xlarge (if use local SSD)

c6i.8xlarge + io1/io2 EBS volume with 40K IOPS.

GCP

n2-standard-16 (if use local SSD)

n2-standard-32 + pd-ssd with 40K IOPS.

#### Motivations for hardware requirements[​](https://aptos.dev/nodes/validator-node/operator/node-requirements#motivations-for-hardware-requirements)

Hardware requirements depend on the transaction rate and storage demands. The amount of data stored by the E-Money blockchain depends on the ledger history (the number of transactions) of the blockchain and the number of on-chain states (e.g., accounts and resources). Ledger history and the number of on-chain states depend on several factors: the age of the blockchain, the average transaction rate, and the configuration of the ledger pruner.

The current hardware requirements are set considering the estimated growth over the period ending in Q1-2023. Note that we cannot provide a recommendation for archival node storage size as that is an ever-growing number.

Local SSD vs. network storage

Cloud deployments require choosing between using local or network storage such as AWS EBS, GCP PD. Local SSD provides lower latency and cost, especially relative to IOPS.

On the one hand, network storage requires additional CPU support to scale IOPS, but on the other hand, the network storage provides better support for backup snapshots and provides resilience for the nodes in scenarios where the instance is stopped. Network storage makes it easier to support storage needs for high availability.

#### Ports[​](https://aptos.dev/nodes/validator-node/operator/node-requirements#ports)

When you are running a validator node, you are required to open network ports on your node to allow other nodes to connect to you. For fullnodes this is optional.<br>

| Service                    | Description                                                                          | Port Number |
| -------------------------- | ------------------------------------------------------------------------------------ | ----------- |
| Cosmos gRPC                | Query or send Evmos transactions using gRPC                                          | 9090        |
| Cosmos REST (gRPC-Gateway) | Query or send Evmos transactions using an HTTP RESTful API                           | 9091        |
| Ethereum JSON-RPC          | Query Ethereum-formatted transactions and blocks or send Ethereum txs using JSON-RPC | 8545        |
| Ethereum Websocket         | Subscribe to Ethereum logs and events emitted in smart contracts.                    | 8546/8586   |
| Tendermint RPC             | Query transactions, blocks, consensus state, broadcast transactions, etc.            | 26657       |
| Tendermint Websocket       | Subscribe to Tendermint ABCI events                                                  | 26657       |
| Command Line Interface     | Query or send Evmos transactions using your Terminal or Console.                     | NA          |


# Running Validator Node

Running a validator node is a great way to support the network and contribute to the security of the network. It requires a local setup at home on your own server or it up remotely on a cloud.

**Reward Rate:**\
\
**5-7% APY.**

The reward rate is determined by scaling the reward per EMYC token staked and scaling it by the daily frequency of epochs and the number of days in a year, adjusting it to the proportion of total staked tokens and the available supply and then dividing this total by engaged balance.

**Minimum Stake tokens:**\
\
**500,000 EMYC.**

The current minimum required for staking is 500,000 EMYC tokens.\
Lockup time: 30 days\
\
When you join in the validator, your stake will automatically be locked up for a duration of 30 days. Stake can be unlocked upon request to us but will only be withdrawable after 30 days.


# EMYC Token’s Utility & Purpose

EMYC is the token of record for the E Money Network.

* EMYC is also the gas fee token on the E Money Network.

### EMYC tokens Emissions and Burning

Total Supply of EMYC tokens is the amount of tokens that exists at any given time whether locked or unlocked.

Circulating Supply is the total amount of EMYC that exists and is unlocked (excluding any locked portion).

All of the gas fees paid in the EMYC ecosystem are paid in EMYC and burnt.

The daily node emissions of EMYC hinge on the current Total Supply of EMYC token.&#x20;

EMYC Total Supply undergoes reduction through the burning of EMYC as gas within the EMYC ecosystem. EMYC’s Total Supply also undergoes reduction through the burning of EMYC during the redemption process (depending on user inputs).

### Estimated Reward Value

Due to the dynamic nature of E Money Network rewards and the unpredictability of node adoption rates, it's challenging to establish an exact valuation at any specific moment. The table presented below offers one way to think about an "implied" valuation, but it relies on a few assumptions. The primary assumption is that the number of nodes sharing the entire node allocation is limited to the cumulative amount up to its respective tier. Bear in mind the node allocation will be emitted over a number of years. On the other hand, the table does not account for the possibility that burning 100% of gas might lead to periods of deflation, potentially increasing network rewards. In reality, the realised valuation could be materially better or worse, so it is advisable to model your own scenarios when considering value.


# Governance

E Money Network is a Proof-of-Stake (PoS) Ethereum Virtual Machine (EVM) blockchain where governance plays a critical role in its development, maintenance, and overall evolution. Here's why it's important:

Decentralization and Community Ownership:

* Unlike Proof-of-Work (PoW) blockchains, where control often concentrates in the hands of large mining pools, PoS democratises participation in network governance. Validators, who are often token holders, have a direct say in shaping the future of the platform.
* This fosters a sense of ownership and community involvement, incentivizing users to actively participate in decision-making and ensuring the blockchain remains decentralised and resistant to manipulation.

Adaptability and Flexibility:

* The on-chain governance allows for efficient modifications to the underlying protocol parameters, smart contract standards, and even the blockchain's core logic. This allows the network to adapt to changing technological advancements, user needs, and market conditions.
* For example, stakeholders can vote on proposals to upgrade network fees, adjust block times, or implement new features, ensuring the platform stays relevant and competitive.

Transparency and Trust:

* All governance proposals and voting results are stored on-chain, providing complete transparency into the decision-making process. This builds trust among users as they can see how changes are being made and who is participating in the process.
* Additionally, anyone can submit proposals for consideration, allowing diverse perspectives and ideas to be heard and potentially implemented.

Community-Driven Development:

* PoS governance promotes active community engagement in the development and direction of the blockchain. Users can propose and vote on new features, bug fixes, and even protocol upgrades, leading to a more robust and user-centric platform.
* This collaborative approach fosters innovation and ensures the platform continually evolves based on the needs and desires of its user base.

Balancing Stability and Innovation:

* While allowing frequent changes can promote rapid development, it can also introduce instability and uncertainty. Governance plays a crucial role in finding the right balance between implementing beneficial changes and maintaining the network's stability and security.
* Deliberation and careful consideration of proposals are essential to ensure that changes are well-tested and have a positive impact on the network's long-term health.

Challenges and Considerations:

* Effective PoS governance also presents challenges. Voter apathy, manipulation, and potential manipulation by large token holders are issues that need to be addressed through well-designed governance mechanisms and active community participation.
* Additionally, ensuring informed decision-making requires fostering education and awareness among token holders about technical complexities and potential consequences of proposals.

### Veto Threshold in E Money Network Governance

A veto threshold in a Proof-of-Stake (PoS) blockchain governance system is a mechanism that defines the minimum amount of voting power required to reject a proposed change to the network. It acts as a safeguard against hasty or detrimental decisions being implemented, ensuring community consensus and stability.

Here's a breakdown of its key aspects:

Functionality:

* When a governance proposal is submitted, token holders vote on whether to accept or reject it.
* The veto threshold defines the percentage of voting power needed to reject the proposal. If the voting power against the proposal reaches or exceeds the veto threshold, it is considered rejected and not implemented.

Significance:

* The veto threshold balances flexibility with stability. It allows for necessary changes to be implemented through majority consensus while preventing drastic or harmful changes from being enacted without a significant portion of the community opposing them.
* It encourages careful consideration of proposals and promotes healthy debate within the community.

Typical Values:

* Veto thresholds can vary depending on the specific blockchain and its priorities. Common values range from 33% to 50% of voting power, although some blockchains may use even higher thresholds for critical decisions.
* A higher threshold makes it harder to reject proposals but also increases the risk of harmful changes being implemented if not enough voters actively participate.

Factors to Consider:

* Security: A higher veto threshold can be more secure, preventing malicious actors from easily manipulating votes and enacting harmful changes.
* Efficiency: A lower threshold can be more efficient, allowing for quicker adoption of beneficial changes.
* Community Engagement: The threshold should encourage active participation and voting from token holders to ensure true community consensus.

In E Money Network, the thresholds are defined as follows:

"quorum": "0.334000000000000000",

"threshold": "0.500000000000000000",

"veto\_threshold": "0.334000000000000000"

While, the threshold is set to ½ where at least 50% of the participating validators need to vote on a proposal, the quorum and veto\_threshold is set to ⅓ where at least 33.4% participating validators should vote to propose or deny any proposal in the community.

### Lock, Minting, Staking and Slashing in E Money Network&#x20;

In E Money Network, lock parameters play a vital role in ensuring network security, stability, and decentralisation. Here's a breakdown of their key aspects:

#### Lock

What are lock parameters?

* They define the rules and conditions for locking up (staking) tokens to become a validator or delegator on the network.
* They determine how long tokens must remain locked, influencing the liquidity of tokens and the overall security of the network.

Common lock parameters:

1. Minimum Stake Amount: The minimum number of tokens required to participate in staking, ensuring a baseline commitment to the network.
2. Lock-up Period: The duration for which tokens must remain locked, typically ranging from days to months or even years. Longer lock-up periods:<br>

   Promote long-term commitment and discourage short-term speculation.\
   Enhance network security by making it more difficult for attackers to amass enough stake to disrupt consensus.
3. Unbonding Period: The time it takes to unlock staked tokens after initiating the unbonding process, during which tokens remain illiquid.\
   \
   This prevents immediate withdrawal of large amounts of stake, reducing the risk of sudden disruptions to network stability.
4. Slashing Parameters: Conditions under which a portion of a validator's stake is penalised for malicious behaviour or failure to perform duties, further discouraging attacks and promoting honest participation.

Importance of lock parameters:

* Security: Longer lock-up periods and slashing penalties make it costlier for attackers to compromise the network, disincentivizing attacks.
* Stability: Locked tokens act as a buffer against sudden price fluctuations or large-scale withdrawals, promoting network stability.
* Decentralisation: Lock parameters can be designed to encourage a wider distribution of stake among more validators, preventing centralization of power.
* Governance: Token holders often participate in governance decisions regarding lock parameters, fine-tuning the system's balance between security, stability, and liquidity.

Balancing trade-offs:

* Longer lock-ups enhance security but can reduce token liquidity and potentially discourage participation.
* Shorter lock-ups increase liquidity but might compromise security.
* Carefully designed lock parameters are crucial for finding an optimal balance that aligns with the specific goals and values of a PoS EVM chain.

Following are the locking, staking and slashing parameters in E Money Network:

1. Lock duration is defined as 7 days.
2. Lock amount is defined as 10000 EMC.

&#x20;"lock": {

&#x20;     "params": {

&#x20;       "lock\_duration": "604800s",

&#x20;       "lock\_amount": {

&#x20;         "denom": "emc",

&#x20;         "amount": "10000"

&#x20;       }

#### Minting

3. Minting of new tokens is controlled by the following inflation parameter set to 13% annually.
4. Maximum inflation is set to 20% while minimum inflation is set to 7%.
5. Goal bonded is set to 67% of the total stake of validators. Goal bonding is a parameter that ensures malicious validators or nodes in the EMoney network can be penalised of their total stake if identified as doing malicious activities such as malicious block/transaction proposal or confirmation.

&#x20;"mint": {

&#x20;     "minter": {

&#x20;       "inflation": "0.130000000000000000",

&#x20;       "annual\_provisions": "0.000000000000000000"

&#x20;     },

&#x20; "params": {

&#x20;       "mint\_denom": "emc",

&#x20;       "inflation\_rate\_change": "0.130000000000000000",

&#x20;       "inflation\_max": "0.200000000000000000",

&#x20;       "inflation\_min": "0.070000000000000000",

&#x20;       "goal\_bonded": "0.670000000000000000",

&#x20;     }

#### Staking

6. Staking parameters are set as follows for EMoney network validators to stake their EMoney tokens to become validators and earn rewards on their stakes.

"staking": {

"params": {

"unbonding\_time": "2592000s",

"max\_validators": 100,

"max\_entries": 7,

"historical\_entries": 10000,

"bond\_denom": "emc"

}\
\
Unbonding time is set to 30 days or 2592000 seconds.\
\
Maximum number of validators is set to 100.

Maximum entries are set to 7.\
\
Maximum entries refers to the maximum number of historical entries that are stored and accessible for each parameter. This is a technical configuration that affects the amount of historical data available for analysis and decision-making.

Key Considerations:

* Storage Efficiency: Limiting max entries helps manage storage space on blockchain nodes and reduces the computational overhead of processing large datasets.
* Data Relevance: Older parameter values might become less relevant for current decision-making, so storing a limited history can be sufficient.
* Governance and Analysis Needs: Balancing storage efficiency with the need for historical data to inform governance decisions and research activities is crucial.

Specific Examples:

* Reward Rate: The max entries might specify how many historical values of the reward rate are stored, allowing users to track its evolution over time.
* Commission Rate: The max entries would determine how many past commission rates set by validators are accessible for reference.
* Validator Set Size: The max entries would set a limit on the number of historical data points about the number of active validators on the network.

Historical entries are set to 10000.

Historical entries refer to the chronologically recorded values of these parameters over time. This data provides valuable insights for various stakeholders, including:

i. Understanding Past Evolution:

* Trace how staking parameters have been adjusted in response to network conditions, governance decisions, or community feedback.
* Analyse the rationale behind past changes and anticipate potential future adjustments.

ii. Tracking Parameter Trends:

* Identify patterns or trends in parameter changes, such as gradual increases/decreases in reward rates or adjustments to lock-up periods.
* Utilise this information for investment strategies or risk assessments.

iii. Evaluating Validator Performance:

* Assess validators' track records over time, including their commission rates, uptime, and participation in governance.
* Make informed decisions about delegator-validator relationships based on historical data.

iv. Research and Analysis:

* Researchers and analysts can use historical data for in-depth studies on network dynamics, token economics, and governance effectiveness.
* Findings can inform future protocol development and best practices.

#### Slashing

7. Slashing refers to the process of penalising validators on the E Money Network who engage in malicious behaviour or fail to perform their duties properly. This mechanism is crucial for maintaining network security, integrity, and decentralisation.

Here's how slashing works in E Money Network:

When does it happen?

Slashing occurs in several situations:

* Double-signing: When a validator signs two different versions of the same block, essentially attempting to cheat the system.
* Downtime: When a validator is offline for an extended period, neglecting its crucial role in validating transactions.
* Misconduct: Engaging in other malicious activities that harm the network, such as providing false information or manipulating consensus mechanisms.

What are the consequences?

When a validator commits an offence triggering slashing, they face several penalties:

* Loss of a portion of their staked tokens: This acts as a significant financial disincentive for misbehaviour. The specific percentage of tokens slashed depends on the severity of the offence and pre-defined slashing parameters.
* Reputation damage: Validators who get slashed typically experience a loss of trust from delegators, potentially affecting their future stake and rewards.
* Possible temporary or permanent disqualification: Repeated or major offences might lead to validators being removed from the validator set, further protecting the network.

Why is it important?

Slashing plays a vital role in several ways:

* Security: By penalising malicious behaviour, it discourages attacks and maintains the network's integrity.
* Accountability: It ensures validators remain responsible and engaged in fulfilling their duties.
* Decentralisation: It prevents the concentration of power by penalising large validators who attempt to manipulate the system.
* Fairness: It creates a level playing field for all validators, promoting trust and transparency.

Considerations for Stakeholders:

* Validators: Be familiar with slashing parameters and actively monitor their nodes to avoid downtime or accidental double-signing.
* Delegators: Choose validators with a good track record and consider diversifying your stake across multiple validators to minimise risk.
* Community: Participate in governance discussions about slashing parameters to ensure they are effective and fair.

Slashing parameters are defined as follows on E Money Network

"slashing": {

&#x20;     "params": {

&#x20;       "signed\_blocks\_window": "100",

&#x20;       "min\_signed\_per\_window": "0.500000000000000000",

&#x20;       "downtime\_jail\_duration": "600s",

&#x20;       "slash\_fraction\_double\_sign": "0.050000000000000000",

&#x20;       "slash\_fraction\_downtime": "0.010000000000000000"

&#x20;     }\ <br>

i. "signed\_blocks\_window" refers to a specific time period during which a validator's signing activity is tracked and scrutinised for potential misbehaviour. It's a crucial parameter for detecting and penalising double-signing, a serious offence that can undermine network security.\
\
"signed\_blocks\_window": "100"\
\
Here's how it works:

* Tracking: The blockchain continuously monitors the blocks signed by each validator within the defined signed\_blocks\_window.
* Detection: If a validator signs two blocks with the same height (attempting to create conflicting versions of the blockchain), it's flagged as double-signing.
* Proof: Evidence of the double-signing is retained for a certain duration (proof\_window), allowing anyone on the network to report the offence and initiate slashing.
* Penalty: If the offence is successfully reported and validated, the validator is slashed, losing a portion of their staked tokens as punishment.

Purpose:

* Preventing Double-Signing: The signed\_blocks\_window makes it difficult for validators to get away with double-signing, as their actions are closely monitored and recorded.
* Ensuring Validator Integrity: It encourages validators to act honestly and responsibly, as they know their behaviour is being tracked and they could face significant penalties for misconduct.
* Protecting Network Security: By disincentivizing double-signing, the signed\_blocks\_window contributes to the overall security and integrity of the blockchain.

ii. "min\_signed\_per\_window" refers to the minimum number of blocks a validator is expected to sign within the specified signed\_blocks\_window. It's a crucial parameter for ensuring validator participation and preventing downtime, which can negatively impact network performance and security.\
\
"min\_signed\_per\_window": "0.500000000000000000",

Here's how it works:

* Expectation: Each validator is expected to actively participate in block validation and signing during the signed\_blocks\_window.
* Monitoring: The blockchain tracks the number of blocks signed by each validator within the window.
* Threshold: If a validator falls below the min\_signed\_per\_window threshold, it's considered to be inactive or experiencing downtime.
* Penalties: Validators who fail to meet the minimum signing requirement can face consequences, such as:
* Slashing: A portion of their staked tokens can be slashed as a penalty for not fulfilling their duties.
* Reputation Damage: They might lose trust from delegators and receive fewer staking delegations in the future.
* Temporary Disqualification: They could be temporarily removed from the validator set until they demonstrate reliable participation.

Purpose:

* Ensuring Availability: The min\_signed\_per\_window parameter helps maintain a healthy and active validator set, ensuring that enough nodes are consistently available to validate transactions and secure the network.
* Preventing Downtime: It discourages validators from neglecting their responsibilities or having unreliable infrastructure, which could lead to network slowdowns or security vulnerabilities.
* Promoting Accountability: It holds validators accountable for their participation and ensures they are actively contributing to the network's consensus mechanism.

Key Considerations:

* Threshold Setting: The appropriate value for min\_signed\_per\_window depends on factors like the block production rate, network congestion, and the desired level of validator activity.
* Attack Prevention: Setting a reasonable threshold can also help prevent certain denial-of-service attacks aimed at causing validators to miss blocks and face penalties.
* Governance: Token holders often have the ability to participate in governance decisions to adjust min\_signed\_per\_window and other slashing parameters as needed to balance network security and fairness.

iii. "downtime\_jail\_duration" refers to a temporary penalty period imposed on validators who experience excessive downtime or fail to meet certain performance requirements. It serves as a mechanism to discourage validator negligence, ensure network reliability, and protect delegators' staked tokens.<br>

"downtime\_jail\_duration": "600s"

Here's how it works:

1. Triggering Downtime Jail:<br>

   A validator might be placed in downtime jail if they:

   * Miss-signing a significant number of blocks within a specified window (often related to the min\_signed\_per\_window parameter).
   * Experience prolonged offline periods due to technical issues or maintenance.
   * Engage in other behaviours that compromise their ability to actively participate in consensus.
2. Duration of Jail:
   * The validator is barred from participating in block production and earning rewards for the specified downtime\_jail\_duration.
   * This duration can vary depending on the blockchain's governance rules, but it typically ranges from hours to days.
3. Impact:

* During downtime jail, the validator's staked tokens remain locked, preventing them from withdrawing or redelegating them.
* They also miss out on potential staking rewards during this period.
* Downtime jail can negatively impact a validator's reputation and trustworthiness among delegators.

Purpose:

* Deterring Negligence: The threat of downtime jail incentivizes validators to maintain reliable infrastructure and actively participate in block production.
* Protecting Delegators: It safeguards delegators' staked tokens by preventing validators with poor performance from continuing to accrue rewards or potentially jeopardise staked funds.
* Ensuring Network Reliability: By discouraging excessive downtime, it contributes to the overall stability and performance of the blockchain network.

Key Considerations:

* Balanced Duration: Setting an appropriate downtime\_jail\_duration is important. Too short might not provide enough disincentive, while too long could disproportionately punish minor issues or discourage participation.
* Governance: Token holders often have the ability to participate in governance decisions to adjust downtime\_jail\_duration and other slashing parameters as needed to balance network security and fairness.
* Reputational Effects: Downtime jail can have significant reputational consequences for validators, affecting their ability to attract delegators in the future.

iv. "slash\_fraction\_double\_sign" refers to the precise percentage of a validator's staked tokens that are slashed (forfeited) as a penalty for double-signing. It's a crucial parameter for deterring this serious offence, which can undermine network security and integrity.

"slash\_fraction\_double\_sign": "0.050000000000000000"

How it Works:

1. Double-Signing Detected: When a validator is caught signing two conflicting blocks at the same height, indicating an attempt to create multiple versions of the blockchain, the slash\_fraction\_double\_sign parameter comes into play.
2. Calculating the Penalty: The validator's total staked tokens (including their own stake and any delegated tokens) are multiplied by the slash\_fraction\_double\_sign value to determine the exact amount to be slashed.
3. Imposing the Penalty: The calculated amount of staked tokens is immediately removed from the validator's account, reducing their overall stake and potentially affecting their ability to continue validating.
4. Distribution of Slashed Tokens: The slashed tokens are typically distributed to other network participants, such as a community pool or remaining validators, as a way to compensate for the harm caused by the double-signing attempt.

Purpose:

* Strong Deterrence: The severity of the slash\_fraction\_double\_sign penalty serves as a powerful disincentive for validators to engage in double-signing. The potential loss of a significant portion of their staked tokens can significantly outweigh any potential gains from malicious behaviour.
* Protecting Network Integrity: By severely penalising double-signing, the slash\_fraction\_double\_sign parameter helps to maintain the consistency and trustworthiness of the blockchain's data, ensuring that all participants are operating on a single, agreed-upon version of the ledger.
* Promoting Accountability: It holds validators responsible for their actions and demonstrates that serious offences will not be tolerated, fostering a more secure and reliable network environment.

Key Considerations:

* Balanced Penalty: Setting an appropriate slash\_fraction\_double\_sign value is crucial. Too high a penalty could discourage participation, while too low a penalty might not adequately deter malicious behaviour.
* Governance: Token holders often have the ability to participate in governance decisions to adjust slash\_fraction\_double\_sign and other slashing parameters as needed to maintain network security and fairness.
* Reputational Damage: Double-signing and subsequent slashing can have significant reputational consequences for validators, affecting their ability to attract delegators and maintain trust within the community.

v. "slash\_fraction\_downtime" refers to the specific percentage of a validator's staked tokens that are slashed (forfeited) as a penalty for excessive downtime or failure to meet performance requirements. It's a measure designed to discourage validator negligence and maintain network reliability.

"slash\_fraction\_downtime": "0.010000000000000000"

How It Works:

1. Triggering Downtime Slashing:\
   \
   When a validator's performance falls below certain thresholds, such as:\
   Missing a significant number of block signings within a defined window (related to the min\_signed\_per\_window parameter).\
   Experiencing prolonged offline periods.\
   Failing to maintain adequate hardware or software infrastructure.
2. Calculating the Penalty:\
   \
   The validator's total staked tokens (including their own stake and any delegated tokens) are multiplied by the slash\_fraction\_downtime value to determine the exact amount to be slashed.
3. Imposing the Penalty:

* The calculated amount of tokens is immediately removed from the validator's account, reducing their stake and potentially affecting their ability to continue validating.
* The slashed tokens are typically redistributed to other network participants, such as a community pool or remaining validators.

Purpose:

* Deterring Negligence: The threat of losing a portion of their stake incentivizes validators to maintain reliable infrastructure, stay online consistently, and actively participate in block production.
* Protecting Network Performance: By penalising validators who contribute to network slowdowns or instability, it helps ensure a smoother and more reliable user experience for everyone.
* Encouraging Accountability: It holds validators responsible for fulfilling their duties and demonstrates the importance of active participation in network consensus.

Key Considerations:

* Balanced Penalty: Setting an appropriate slash\_fraction\_downtime value is crucial. Too high a penalty could discourage participation, while too low a penalty might not adequately deter negligence.
* Governance: Token holders often have the ability to participate in governance decisions to adjust slash\_fraction\_downtime and other slashing parameters as needed to balance network security and fairness.
* Reputational Effects: Downtime slashing can negatively impact a validator's reputation and trustworthiness, affecting their ability to attract delegators in the future.


# Install Validator node​

Install EMoney node on Mainnet

Steps to join as a node to E Money Network

Once all servers as per the defined hardware and software requirements are setup.\
\
<https://docs.emoney.network/validating-on-e-money-network>\
E Money client should be downloaded as per following steps.\
\
(E Money network officially supports macOS and Linux only).

1. Install prerequisites go, make, gcc, etc. if not installed already.

`export PATH=$PATH:$(go env GOPATH)/bin`

`$ go install` [`cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest`](http://cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest)

2. Remember to install prerequisites go, make, gcc, p7zip-full, etc. if not installed already.

Download E Money client from here:

`wget https://dxnzodmwa7rdj.cloudfront.net/MainNet_Binaries/emoneyd.zip`

`unzip emoneyd.zip` \
\
`mv emoneyd go/bin/`

Set your go binary path:

`export PATH=$PATH:$(go env GOPATH)/bin`

Check if emoneyd binary is active by using:

`emoneyd`

should give a list of all emoneyd commands.

This will install the emoneyd client on your node and ready to use.

Check if cosmovisor binary is active by using:

`cosmovisor`

should give a list of all cosmovisor commands.

This will install the cosmovisor client on your node and ready to use.

3\. Now initialise the emoney client on your node by running the following command:

`emoneyd init <your_custom_moniker> --chain-id emoney_4545-1`

This will create a .emoneyd/ folder on your node's home directory. Check using ls -a.

4\.   Download the genesis file from the given link and place the genesis file in the path below on your node. The previously available genesis file in this folder should be replaced with the downloaded one.

Mainnet:\
\
`wget https://dxnzodmwa7rdj.cloudfront.net/MainNet_Binaries/genesis.zip`

`unzip genesis.zip`\
\
`mv genesis.json .emoneyd/config/`\
\
This will replace the genesis file with the network genesis file.

5\. In the node, edit the config.toml file to update persistent\_peers in P2P configurations:

`perl -i -pe 's/persistent_peers = ""/persistent_peers = "30bc8f9b07b03bca30fa30d689f48983c2fca7aa@13.202.13.237:26656"/' ~/.emoneyd/config/config.toml`&#x20;

\# Comma separated list of nodes to keep persistent connections to

persistent\_peers = "30bc8f9b07b03bca30fa30d689f48983c2fca7aa\@13.202.13.237:26656"

Folder: .emoneyd/config/config.toml

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdiZ1w5O9SXY7-djpvLlocZrV_gWwERerL-orR-sSxWeI4ku4-IrmssNflK6Q2-wX00oLRoIiycOSLO134hqSp6VHrAX7SwAZ3C6PsCkFJg_-ck0WQEA93Yb8HElvZeJTi843W3SA?key=OeWiRomFZET_iR2-e7fQ-4XJ)

Set source profile on server:\
\
`nano ~/.profile`\
\
(Paste following parameters)\
\
`export DAEMON_NAME=emoneyd`

`export DAEMON_HOME=/home/ubuntu`

`export DAEMON_RESTART_AFTER_UPGRADE=true`

`export DAEMON_DATA_BACKUP_DIR=/home/ubuntu/data`\
\
`source ~/.profile`\
\
Execute following commands to complete setup:

`mkdir -p cosmovisor/genesis/bin`

`cp go/bin/emoneyd cosmovisor/genesis/bin/`

`chmod +x cosmovisor/genesis/bin/emoneyd`&#x20;

`mkdir -p  data`

7\. Run the start command with following arguments on your node:\
\
Pruning states:

There are four strategies for pruning state. These strategies apply only to state and do not apply to block storage. To set pruning, adjust the pruning parameter in the \~/.emoneyd/config/app.toml file. The following pruning state settings are available:

1. everything: Prune all saved states other than the current state.
2. nothing: Save all states and delete nothing.
3. default: Save the last 100 states and the state of every 10,000th block.
4. custom: Specify pruning settings with the pruning-keep-recent, pruning-keep-every, and pruning-interval parameters.

By default, every node is in default mode which is the recommended setting for most environments. If you would like to change your nodes pruning strategy then you must do so when the node is initialized. Passing a flag when starting emoneyd will always override settings in the app.toml file, if you would like to change your node to the everything mode then you can pass the --pruning everything flag when you call emoneyd start.

1. Run your node as Full Node\
   \
   Full nodes store all the blockchain's data and participate in block validation. Validating the blockchain includes keeping track of new blocks and computing and maintaining state changes. Full nodes, once fully synced with the network, can query all EMoney network blockchain data.\
   \
   To start an E Money network Full node execute following start command on your node terminal:\
   \
   `cosmovisor run start --pruning=nothing --log_level INFO --api.enable --json-rpc.api eth,txpool,personal,net,debug,web3 &`<br>
2. Run your node as Light Node

`cosmovisor run start --log_level INFO --api.enable --json-rpc.api eth,txpool,personal,net,debug,web3 &`

Set different log levels as below:

`cosmovisor run start --log_level error --log_level fatal --log_level panic --api.enable --minimum-gas-prices=0.1uemyc --json-rpc.api eth,txpool,personal,net,debug,web3 --log_level info --log_level warn --log_level debug >> logfile.log 2>&1 &`\
\
Note: Check different modes and settings to run the node using the following command for complete documentation on your terminal.\
\
`emoneyd start -h`

This will start the block minting and peer syncing process on your node and should be able to see block height increasing/syncing with peer nodes.

Check the status of block syncing with the node using following command showing the latest\_block\_height

`emoneyd status`

Run a validator on your node:\
\
1\. Use following command to create a key which is subsequently used as the validator operator to stake tokens and start block proposal/minting operations on E Money network.

`emoneyd keys add <custom-key-name>`

– Shows a new key created and mnemonic, please write down and save mnemonic for any future key recovery.

`emoneyd query bank balances <custom-key-address>`\
\
– Query command to check current balance of the key.

`emoneyd keys show <custom-key-name> --bech val  --address`\
\
– Command to view the bech32 validator operator address of the key.

Please contact our team to perform Know Your Business or KYB which is a process through which only verified and whitelisted businesses can interact and run validators on EMN network.

2\. Deposit tokens as per minimum stake tokens requirement for becoming a validator to the custom key.\
\
Minimum Stake tokens:

500,000 EMYC.\
\
3\. Once tokens are deposited, run following command to lock tokens to be eligible for becoming a validator.

`emoneyd tx lock lock <validator-address> --from <custom-key-name> --chain-id emoney_4545-1 --fees 20000uemyc`\
\
Following command can be used to check the lock status of a validator.

`emoneyd query lock lock <validator-address>`

4\. Once validator lock is confirmed, use following commands to stake tokens and become a validator.

`emoneyd tx staking create-validator --pubkey $(emoneyd tendermint show-validator)  --commission-max-change-rate <custom-value> --commission-max-rate <custom-value> --commission-rate <custom-value> --min-self-delegation <custom-value> --fees 40000uemyc --yes --from <custom-key-name> --amount 500000000000000000000000uemyc --moniker <custom-moniker>  --broadcast-mode block --chain-id emoney_4545-1 --gas auto`

5\. Use following commands to check the staked validators and other details.

`emoneyd query staking validators`<br>


# Tendermint & EVMOS

Tendermint software is designed to “securely and consistently” replicate an application on many machines. The phrase “securely and consistently” succinctly describes how Tendermint works. Securely means that Tendermint works even if up to 1/3 of machines fail in arbitrary ways while consistently means that every non-faulty machine sees the same transaction log and computes the same state. Secure and consistent replication is a fundamental problem in distributed systems. Therefore, it plays a critical role in the fault tolerance of a broad range of applications from currencies to elections including infrastructure orchestration and beyond.

The ability to tolerate machines failing in arbitrary ways or even becoming malicious is known as Byzantine fault tolerance (BFT). The theory of BFT is decades old but software implementations of BFT have only become popular recently. This is due largely to the success of "blockchain technology" like Bitcoin and Ethereum. Blockchain technology is just a formalisation of BFT in a more modern setting with an emphasis on peer-to-peer networking and cryptographic authentication. The name blockchain derives from the way transactions are batched in blocks where each block contains a cryptographic hash of the previous one thus forming a chain. In practice, the blockchain data structure actually optimises BFT design.

Tendermint consists of two primary technical components: a blockchain consensus engine and a generic application interface. The consensus engine, called the Tendermint Core, ensures that the same transactions are recorded on every machine in the same order. The generic application interface, called the Application BlockChain Interface (ABCI), enables the transactions to be processed in any programming language. Unlike other blockchain and consensus solutions, Tendermint's usefulness for BFT state machine replication of applications is that it can be used in blockchains written in whatever programming language or development environment. Other blockchain and consensus solutions come pre-packaged with built-in state machines like a fancy key-value store or a quirky scripting language making them rigid structures. Tendermint on the other hand gives developers greater flexibility. It is designed to be easily used, is simple to understand, is highly performative and useful for a wide variety of distributed applications.


# ABCI Overview

The[ Application BlockChain Interface (ABCI)](https://github.com/tendermint/tendermint/tree/v0.34.x/abci) allows for Byzantine Fault Tolerant replication of applications written in any programming language.


# Intro to ABCI

​The[ Tendermint Core](https://github.com/tendermint/tendermint) ​(the "consensus engine") communicates with the application via a socket protocol that satisfies the ABCI. To draw an analogy, let's use a well-known cryptocurrency, the Bitcoin. Bitcoin is a cryptocurrency blockchain where each node maintains a fully audited Unspent Transaction Output (UTXO) database. If one wanted to create a Bitcoin-like system on top of ABCI, Tendermint Core would be responsible for

* Sharing blocks and transactions between nodes
* Establishing a canonical/immutable order of transactions (the blockchain)

The application will be responsible for

* Maintaining the UTXO database
* Validating cryptographic signatures of transactions
* Preventing transactions from spending non-existent transactions
* Allowing clients to query the UTXO database.

Tendermint is able to decompose the blockchain design by offering a very simple API (i.e. the ABCI) between the application process and consensus process.

The ABCI consists of 3 primary message types that get delivered from the core to the application. The application replies with corresponding response messages.

The messages are specified in the[ ABCI specification](https://github.com/tendermint/tendermint/blob/v0.34.x/spec/abci/abci.md)​. The DeliverTx message is the workhorse of the application. Each transaction in the blockchain is delivered with this message. The application needs to validate each transaction received with the DeliverTx message against the current state, application protocol, and cryptographic credentials of the transaction.&#x20;

A validated transaction then needs to update the application state by binding a value into a key values store or by updating the UTXO database. The CheckTx message is similar to DeliverTx, but it's only for validating transactions. Tendermint Core's mempool first checks the validity of a transaction with CheckTx, and only relays valid transactions to its peers.&#x20;

For instance, an application may check an incrementing sequence number in the transaction and return an error upon CheckTx if the sequence number is old. Alternatively, they might use a capabilities-based system that requires capabilities to be renewed with every transaction. The Commit message is used to compute a cryptographic commitment to the current application state that is to be placed into the next block header and this has some useful properties.&#x20;

Inconsistencies in updating that state will now appear as blockchain forks which catches a whole class of programming errors. This also simplifies the development of secure lightweight clients as Merkle-hash proofs can be verified by checking against the block hash and that the block hash is signed by a quorum. There can be multiple ABCI socket connections to an application.&#x20;

Tendermint Core creates three ABCI connections to the application; one for the validation of transactions when broadcasting in the mempool, one for the consensus engine to run block proposals and one more for querying the application state.

Message handlers need to be designed very carefully so that these are usefully utilised in their associated blockchain. The proposed diagram below shows an architecture which is a good place to start. It illustrates the flow of messages via ABCI.

<figure><img src="https://lh5.googleusercontent.com/shUnadq-nhlm0ccVwlK14KIUoZY1Ze6cnRo6Q_9Z5PfUioS5uBfx0QeXPZDP4MO8KF-J300fES7O9BFoEdxWcywZcG3pg7n8Bx3esr_yR0getT-79RgbQs6P83uyDMAvePeCinyHWEMa1cKQZPg7E4M" alt=""><figcaption></figcaption></figure>


# Motivation

Thus far, all blockchain "stacks" like[ Bitcoin](https://github.com/bitcoin/bitcoin) are designed to have a monolithic design. That is, each blockchain stack is a single program that handles all the concerns of a decentralised ledger.&#x20;

These concerns include P2P connectivity, the "mempool" broadcasting of transactions, consensus on the most recent block, account balances, Turing-complete contracts, user-level permissions among others. Using a monolithic architecture is typically bad practice in computer science. It makes it difficult to reuse components of the code and any attempts to do so result in complex maintenance procedures for forks of the codebase.&#x20;

This is especially true when the codebase is not modular in design and suffers from "spaghetti code" issues. Another problem with monolithic design is that it limits you to the language of the blockchain stack (or vice versa). In the case of Ethereum which supports a Turing-complete bytecode virtual machine.&#x20;

Therefore, this limits you to languages that compile down to this bytecode for instance Serpent and Solidity.

In contrast, our approach is to decouple the consensus engine and P2P layers from the details of the application state of the particular blockchain application. We do this by abstracting away the details of the application to an interface which is implemented as a socket protocol. Thus, the E-Money network has an interface, the Application BlockChain Interface (ABCI), and its primary implementation, the Tendermint Socket Protocol (TSP, or Teaspoon).


# Gas & Fees

Users are charged fees when transactions are made on the E Money Network. As fees are handled differently on Ethereum and Cosmos, it is important to understand how the E Money Network implements an Ethereum-type fee calculation that is compatible with the Cosmos SDK.

This overview explains the basics of gas fee calculation and how to provide fees for transactions. It also explains how the Ethereum-type fee calculation uses a FeeMarket (EIP1559) for prioritising transactions.<br>


# How are Gas and Fees Handled on E Money Network?​

Fundamentally, the E Money Network is a Cosmos SDK chain that enables EVM compatibility as part of a Cosmos SDK module. As a result of this architecture all EVM transactions are ultimately encoded as Cosmos SDK transactions that update a Cosmos SDK-managed state.

Since all transactions are represented as Cosmos SDK transactions their corresponding transaction fees can be treated identically across execution layers. In practice, dealing with fees requires 3 types of logic. These are the standard Cosmos SDK logic, some Ethereum logic and custom e-money logic. For the most part, fees are collected by the fee\_collector module and then paid out to validators and delegators. A few key distinctions are as follows:

1\. Fee Market Module

In order to support EIP-1559 gas and fee calculation on E Money Network EVM layer, E Money Network tracks the gas supplied for each block. This is used to calculate a base fee for future EVM transactions. In this way EVM dynamic fees are enabled and transaction prioritisation is as specified by EIP-1559. For EVM transactions each node bypasses their local min-gas-prices configuration and instead applies EIP-1559 fee logic. The gas price must be greater than both the global min-gas-price and the block's BaseFee. The surplus is considered a priority tip. This allows validators to compute Ethereum fees without applying Cosmos SDK fee logic. Unlike on Ethereum, the BaseFee on E Money Network is not burned but is instead distributed to validators and delegators. Furthermore, the BaseFee is lower-bounded by the global min-gas-price. Currently, the global min-gas-price parameter is set to zero although it can be updated via Governance.

2\. EVM Gas Refunds

E Money Network refunds a fraction (at least 50% by default) of the unused gas for EVM transactions to approximate the current behaviour on Ethereum.[ Why not always 100%?](https://github.com/evmos/ethermint/issues/1085)

3\. Revenue Module

E Money Network developed the Revenue Module as a way to reward developers for creating useful Dapps. Any contract that is registered with E Money Network Revenue Module rewards a fraction of the transaction fee (currently 95%) from each transaction that interacts with the contract to the contract developer. Validators and Delegators earn the remaining portion.<br>


# Gas calculation and Transaction execution on E Money Network

1. Nodes execute the previous block and run the EndBlock hook. As part of this hook, the FeeMarket (EIP-1559) module tracks the total TransientGasWanted from the transactions on this block. This will be used for the next block’s BaseFee.
2. Nodes receive transactions for a subsequent block and gossip these transactions to peers. These can be sorted and prioritised by the included fee price (using EIP-1559 fee priority mechanics for EVM transactions -[ code snippet](https://github.com/evmos/ethermint/blob/57ed355c985d9f3116aba6aabfa2ee0f3f38e966/app/ante/eth.go#L137)), to be included in the next block
3. Nodes run BeginBlock for the subsequent block. The FeeMarket module calculates the BaseFee ([code snippet](https://github.com/evmos/ethermint/blob/89fdd1984826ea524cb9b8feb089a99b6cfe8ace/x/feemarket/keeper/abci.go#L14)) to be applied for this block using the total GasWanted from the previous block. The Distribution module[ distributes](https://docs.cosmos.network/main/modules/distribution#begin-block) the previous block’s fee rewards to validators and delegators
4. For each valid transaction that will be included in this block, nodes perform the following:<br>

   An AnteHandler process corresponding to the transaction type is initiated. This process:

   * Performs basic transaction validation.
   * Verifies the fees provided are greater than the global and local minimum validator values and greater than the BaseFee calculated (For Ethereum transactions).
   * Preemptively consumes gas for the EVM transaction.
   * Deducts the transaction fees from the user and transfers them to the fee\_collector module.
   * Increments the TransientGasWanted in the current block, to be used to calculate the next block’s BaseFee.<br>

   Then, for standard Cosmos Transactions, nodes:

   * Execute the transaction and update the state Consume gas for the transaction<br>

   For Ethereum Transactions, nodes:

   * Execute the transaction and update the state Calculate the gas used and compare it to the gas supplied, then refund a designated portion of the surplus.
   * Send a fraction of the fees used as revenue to contract developers as part of the Revenue Module, if the transaction interacts with a registered smart contract<br>
5. Nodes run EndBlock for this block and store the block’s GasWanted.


# Keyring

Create, import, export and delete keys using the CLI keyring.

The keyring holds the private/public keypairs used to interact with the node. An initial validator key needs to be set up before running the node so that blocks can be correctly signed. The private key can be stored as a file in different locations called[ "backends"](https://docs.evmos.org/protocol/concepts/keyring#keyring-backends) for the operating system's own key storage.

To create a new key in the keyring, run the add subcommand with a \<key\_name> argument. You will have to provide a password for the newly generated key.

This command generates a new 24-word mnemonic phrase, storing it to the relevant backend before it outputs this information about the keypair. If this keypair is to be used to hold value-bearing tokens make sure to write down the mnemonic phrase somewhere safe!

By default, the keyring generates an eth\_secp256k1 key. The keyring also supports ed25519 keys, which may be created by passing the --algo flag. A keyring can hold both types of keys simultaneously.


# Signing

Signing is the process of creating a digital signature using a private key to verify a transaction on the E Money Network. The signature is created using a specific cryptographic algorithm that ensures the authenticity and integrity of the transaction using methods like[ wallets](https://docs.evmos.org/use/connect-your-wallet) and the[ CLI](https://docs.evmos.org/protocol/evmos-cli).

There are different methods for signing, but one of the most commonly used methods is the[ EIP-712](https://eips.ethereum.org/EIPS/eip-712) standard. E Money Network leverages EIP-712 to homogenise the interaction between the EVM and Cosmos.

## EIP-712[​](https://docs.evmos.org/protocol/concepts/signing#eip-712)​

&#x20;EIP-712 introduces a standard for signing "typed data" in a human-readable format. This standard allows users to understand the data they are signing more easily. It also provides a more secure way to sign data making it less susceptible to phishing attacks. EIP-712 is not an Ethereum transaction type but a method for signing structured data that can be used for authentication and indirect influence on program logic.

To support signing for Cosmos transactions E Money Network utilises the EIP-712 protocol. This protocol encodes Cosmos transactions in a format that can be understood and processed by Ethereum signers including Ledger hardware wallets. This approach helps to overcome the limitations of Ethereum signing devices which often do not support signing arbitrary bytes for security reasons.

The process works as follows:

* &#x20;A Cosmos transaction is represented as a JSON sign-doc.
* The JSON sign-doc is converted to an EIP-712 object which consists of types and messages.
* The EIP-712 object is signed using an Ethereum signer such as MetaMask or a Ledger hardware device.
* The same process is performed on the node to verify the signature.

By using EIP-712 for signing Cosmos transactions E Money Network ensures compatibility with popular Ethereum signing tools like MetaMask and Ledger devices as well as Keplr. This compatibility makes it easier for users to interact with both Ethereum and Cosmos networks ultimately fostering greater interoperability between the two ecosystems.


# Transactions

A transaction refers to an action initiated by an account which changes the state of the blockchain. To effectively perform the state change every transaction is broadcast to the whole network. Any node can broadcast a request for a transaction to be executed on the blockchain state machine. After this happens a validator will validate, execute the transaction and propagate the resulting state change to the rest of the network.

To process every transaction, computation resources on the network are consumed. Thus, the concept of "gas" arises as a reference to the computation required to process the transaction by a validator. Users have to pay a fee for this computation as all transactions require an associated fee. This fee is calculated based on the gas required to execute the transaction and the gas price.

Additionally, a transaction needs to be signed using the sender's private key. This proves that the transaction could only have come from the sender and was not sent fraudulently.

In a nutshell, the transaction lifecycle once a signed transaction is submitted to the network is the following:

* A transaction hash is cryptographically generated.
* The transaction is broadcasted to the network and added to a transaction pool consisting of all other pending network transactions.
* A validator must pick your transaction and include it in a block in order to verify the transaction and consider it "successful".

### Transaction Types

E Money Network supports two transaction types:

1\. Cosmos transactions

2\. Ethereum transactions

Both these transactions are possible because our E Money Network uses the[ Cosmos-SDK](https://docs.cosmos.network/main) and implements the[ Ethereum Virtual Machine](https://ethereum.org/en/developers/docs/evm/) as a module. In this way E Money Network provides the features and functionalities of Ethereum and Cosmos chains combined and more.

Although most of the information included on both of these transaction types are similar, there are differences among them. An important difference is that Cosmos transactions allow multiple messages on the same transaction. Conversely, Ethereum transactions do not have this capability. In order to bring these two types of transactions together E Money Network implements Ethereum transactions as a single[ sdk.Msg](https://godoc.org/github.com/cosmos/cosmos-sdk/types#Msg) contained in an[ auth.StdTx](https://pkg.go.dev/github.com/cosmos/cosmos-sdk/x/auth#StdTx). All relevant Ethereum transaction information is contained in this message. This includes the signature, gas, payload, etc.


# A Note on Determinism

The logic for blockchain transaction processing must be deterministic. If the application logic was not made to be deterministic a consensus would not be reached among the Tendermint Core replica nodes.

Solidity on Ethereum is a great language of choice for blockchain applications because, among other reasons, it is a completely deterministic programming language. However, it is also possible to create deterministic applications using existing popular languages like Java, C++, Python, or Go. Game programmers and blockchain developers are already familiar with creating deterministic programs by avoiding sources of non-determinism such as:

* random number generators (without deterministic seeding)
* race conditions on threads (or avoiding threads altogether)
* system clocks
* uninitialised memory (in unsafe programming languages like C or C++)
* floating point arithmetic
* language features that are random (e.g. map iterations in Go)

While programmers can avoid non-determinism by being careful it is also possible to create a special linter or static analyser for each language to check for determinism. In future, we may work with partners to create such tools.


# Consensus Overview

The E Money Network uses the Proof-of-stake (PoS) consensus mechanism. The blockchain uses validator nodes to validate transactions and secure the chain. All validators need to stake EMYC tokens and should also get voted in by the EMYC tokens. The chain can support over 100+ validator nodes.

Tendermint is an easy-to-understand and mostly asynchronous BFT consensus protocol. The protocol follows a simple state machine that looks like the diagram below:

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

Participants in the protocol are called validators because they take turns proposing blocks of transactions and voting on them. Blocks are committed to a chain with one block at each height. A block may fail to be committed in which case the protocol moves to the next round and a new validator gets to propose a block for that height.

Two stages of voting are required to successfully commit a block. These stages are pre-vote and pre-commit. A block is committed when more than 2/3 of validators pre-commit the same block in the same round. In context, validators are performing something similar to a polka dance.&#x20;

When more than two-thirds of the validator’s pre-vote for the same block we call that a polka. Every pre-commit must be justified by a polka in the same round. Validators may fail to commit a block for a number of reasons; the current proposer may be offline or the network may be slow.&#x20;

Tendermint allows them to establish when a validator should be skipped. Validators wait a small amount of time to receive a complete proposal block from the proposer before voting to move to the next round. This reliance on a timeout is what makes Tendermint a weakly synchronous protocol rather than an asynchronous one.&#x20;

However, the rest of the protocol is asynchronous and validators only make progress after hearing from more than two-thirds of the validator set. A simplifying element of Tendermint is that it uses the same mechanism to commit a block as it does to skip to the next round.

Assuming less than one-third of the validators are Byzantine, Tendermint guarantees that safety will never be violated. In other words, validators will never commit conflicting blocks at the same height.

To do this it introduces a few locking rules which modulate which paths can be followed in the flow diagram. Once a validator pre-commits a block it is locked on that block. <br>

Then the validator:

* must pre-vote for the block it is locked on
* can only unlock and pre-commit for a new block if there is polka for that block in a later round


# E Money Card FAQs

**Welcome to the E Money Card FAQ!**

On the following pages, you'll find all the essential information about the **E Money Card**.&#x20;

We hope this helps answer your questions.

{% content-ref url="/pages/JT7VrnAAtOuSddbRSIzq" %}
[Is a Know Your Customer (KYC) process required to obtain an E Money Card?](/e-money-card-faqs/is-a-know-your-customer-kyc-process-required-to-obtain-an-e-money-card)
{% endcontent-ref %}

{% content-ref url="/pages/jyHNRRmb7mIzg8Qwa9YW" %}
[What details are required for the KYC process?](/e-money-card-faqs/what-details-are-required-for-the-kyc-process)
{% endcontent-ref %}

{% content-ref url="/pages/iVhIiZDaqri6pesWxfNT" %}
[Do I need to create an E Money Wallet to order an E Money Card?](/e-money-card-faqs/do-i-need-to-create-an-e-money-wallet-to-order-an-e-money-card)
{% endcontent-ref %}

{% content-ref url="/pages/9UFzKwFOVe7bJst4Vg0T" %}
[What happens if I lose my seed phrase?](/e-money-card-faqs/what-happens-if-i-lose-my-seed-phrase)
{% endcontent-ref %}

{% content-ref url="/pages/eFpniVlZ78VGcfJJxw1m" %}
[What happens if I forget my password?](/e-money-card-faqs/what-happens-if-i-forget-my-password)
{% endcontent-ref %}

{% content-ref url="/pages/cN9nll9zt7nECGDCvPFT" %}
[How do I order an E Money Card, and are there any costs?](/e-money-card-faqs/how-do-i-order-an-e-money-card-and-are-there-any-costs)
{% endcontent-ref %}

{% content-ref url="/pages/Pik3iiNV02dUCe1NpvJF" %}
[Can I have the card shipped to a different address than the one I provided during KYC?](/e-money-card-faqs/can-i-have-the-card-shipped-to-a-different-address-than-the-one-i-provided-during-kyc)
{% endcontent-ref %}

{% content-ref url="/pages/FetjkE71MT44OTW7Wmeb" %}
[My card has been delivered, what’s next?](/e-money-card-faqs/my-card-has-been-delivered-whats-next)
{% endcontent-ref %}

{% content-ref url="/pages/14BDHzhNWcIPX3Cdf0Mx" %}
[What should I consider before using the E Money Card for payments?](/e-money-card-faqs/what-should-i-consider-before-using-the-e-money-card-for-payments)
{% endcontent-ref %}

{% content-ref url="/pages/9xQW0E0OET58Ggz0mNPf" %}
[Where can I use the E Money Card?](/e-money-card-faqs/where-can-i-use-the-e-money-card)
{% endcontent-ref %}

{% content-ref url="/pages/sZ5Y2qznj5SWt2Isbdou" %}
[Can I add the E Money Card to online payment services like Google Pay and Apple Pay?](/e-money-card-faqs/can-i-add-the-e-money-card-to-online-payment-services-like-google-pay-and-apple-pay)
{% endcontent-ref %}

{% content-ref url="/pages/fr5Do04Xeu5nydMOilF2" %}
[Which countries’ citizens are eligible to apply for an E Money Card?](/e-money-card-faqs/which-countries-citizens-are-eligible-to-apply-for-an-e-money-card)
{% endcontent-ref %}

{% content-ref url="/pages/fXGaYwVO3j9o6y3yp3vU" %}
[Are there any fees I should be aware of as a user?](/e-money-card-faqs/are-there-any-fees-i-should-be-aware-of-as-a-user)
{% endcontent-ref %}

{% content-ref url="/pages/iUY5pMJcm87ZqJarV36j" %}
[How do taxes apply when using the E Money Card?](/e-money-card-faqs/how-do-taxes-apply-when-using-the-e-money-card)
{% endcontent-ref %}

If you have any additional or specific inquiries, feel free to:\
📩 **Submit a ticket:** <support@emoney.io>\
💬 **Join our Telegram chat:** <https://t.me/Emoney_io>

We're here to assist you!

<br>


# Is a Know Your Customer (KYC) process required to obtain an E Money Card?

###

Yes, to acquire an E Money Card, you must complete a Know Your Customer (KYC) process. This procedure is a standard requirement for electronic money institutions to verify the identity of their customers, ensuring compliance with anti-money laundering (AML) regulations and enhancing overall security.


# What details are required for the KYC process?

To complete the Know Your Customer (KYC) verification for your E Money Card, you will need to provide the following details:<br>

1. Government-Issued Identification – A valid passport or national ID card to verify your identity. The document must be up to date and clearly visible in the submission.
2. Proof of Address – This must be an official document that includes your full name and current address. Acceptable documents typically include:

* Utility bills (electricity, water, gas, internet, or landline phone)
* Bank statements
* Government-issued residency certificates
* Tax documents

1. Phone and Email Access – You must have access to both your registered phone number and email address for verification purposes. A one-time password (OTP) may be sent to confirm your identity.
2. Biometric Verification – As part of the security process, you will be required to provide a live facial scan. This scan will be matched against your submitted ID to ensure authenticity and prevent identity fraud.

Please ensure all documents are high-quality scans or photographs with no blurs or obstructions. Incomplete or illegible submissions may delay the verification process.


# Do I need to create an E Money Wallet to order an E Money Card?

Yes, creating an E Money Wallet is a mandatory step to obtain an E Money Card. The wallet serves as the central hub for managing your card and accessing its full functionality.

With the E Money Wallet App or Wallet Extension, you can:

* Manage your card – Control your card settings, including enabling or disabling features.
* Inject collateral – Add funds to back your transactions securely.
* Set and adjust limits – Define spending limits or remove restrictions as needed.
* Track your payment history – View and analyze your past transactions in real time.
* Access your card details online – Check your card information and security settings from anywhere.

By integrating the wallet with your E Money Card, you ensure seamless fund management and a secure, user-friendly experience.


# What happens if I lose my seed phrase?

###

During the KYC process, the system will guide you through the account setup, where your seed phrase will be displayed. It is crucial to store this phrase securely and privately, as it is the only way to recover your wallet if needed.

You will need your seed phrase in the following cases:

* Restoring your wallet if you delete the E Money App.
* Importing your wallet to a new device.

⚠️ Important: If you lose access to your seed phrase, E Money Network cannot restore access to your wallet or card. For security reasons, no central authority holds your seed phrase, ensuring that only you have full control over your funds.

However, as long as you have access to your wallet, you can always view your seed phrase within the wallet settings and write it down again for safekeeping. Never share your seed phrase with anyone and store it in a secure offline location.


# What happens if I forget my password?

If you forget your password, you can reset it using the email address you provided during registration.

Simply follow these steps:

1. Go to the E Money Wallet login page.
2. Click on "Forgot Password?"
3. Enter your registered email address.
4. Follow the instructions sent to your email to create a new password.


# How do I order an E Money Card, and are there any costs?

You can order your E Money Card directly from the main page of the Wallet App.&#x20;

The ordering process is simple and fully integrated into the wallet interface.

Check out our "[How to Order a Card](https://www.youtube.com/watch?v=b6xC_rBU4Z4)" video

[![Watch the Video](https://img.youtube.com/vi/b6xC_rBU4Z4/0.jpg)](https://www.youtube.com/watch?v=b6xC_rBU4Z4)

### Card Cost & Payment Options

* The one-time fee for an E Money Card is $99.00.
* You can pay using USDT or USDC.
* Please check which network supports your preferred stablecoin before making the payment.

#### Supported Networks

Currently, we support:\
✔ Ethereum (ETH)\
✔ BNB Chain (BNB)\
✔ Solana (SOL)

We are constantly working on expanding the list of supported networks to provide more flexibility for users.

#### Gas Fees

To complete your card order and execute the transaction, you will need a small amount of gas ok fees in the native currency of the selected network. For example:

* ETH for Ethereum transactions
* BNB for BNB Chain transactions
* SOL for Solana transactions

Please ensure you have sufficient gas fees in your wallet to avoid transaction failures.


# Can I have the card shipped to a different address than the one I provided during KYC?

Yes, you can enter a different shipping address during the ordering process and have your E Money Card delivered to your preferred location.

#### Important Notes on Delivery:

* The card will be shipped as a tracked package for security reasons.
* You must personally receive the package upon delivery.
* Once your package has been dispatched, you will receive a tracking number to monitor the delivery progress.
* We recommend subscribing to email notifications for real-time updates on your shipment.

Please ensure that the shipping address you provide is accurate and that you will be available to receive the package.


# My card has been delivered, what’s next?

Once you receive your E Money Card, you need to activate it through the E Money Wallet App before you can start using it.

#### Steps to Activate Your Card:

1. Open the E Money Wallet App and navigate to the Card Management section.
2. Select "Activate Card" and follow the on-screen instructions.
3. Once activated, your card is ready for use.

#### Card Settings & Security Features:

* You can view or reset your PIN code under the Settings section.
* Set or adjust your daily spending and ATM withdrawal limits.
* The default daily spending limit is $500,000.
* For security reasons, you can lock and unlock your card at any time within the app. We highly recommend locking your card when not in use to enhance security and prevent unauthorized transactions.

Now your card is fully set up, and you can start making transactions both online and offline!


# What should I consider before using the E Money Card for payments?

Before making a payment with your E Money Card, ensure that you have deposited enough collateral in the form of USDT, USDC, or eEUR. This ensures your transactions are covered and prevents unnecessary fees.

#### Supported Networks & Collateral Options

You can deposit funds across multiple networks:

* USDT – Supports  Ethereum
* USDC – Supports Ethereum, Solana, Base&#x20;
* eEUR – Supports E Money Network&#x20;
* BSC-USD – Supports Binance Smart Chain\
  \
  Transaction Fees
* To deposit collateral, you need the amount you wish to lock in the chosen currency.
* You will also need a small amount of gas fees in the native token of the selected network to process the transaction.

⚠️ Important:

* An insufficient balance on your card may result in unexpected fees.
* Please review our fee structure carefully to avoid unnecessary charges:\
  👉[ E Money Card Fees](https://docs.emoney.network/e-money-card-fees)

Ensure your collateral is correctly deposited before attempting to make a payment!


# Where can I use the E Money Card?

You can use your E Money Card worldwide anywhere that Mastercard credit cards are accepted.

This includes:\
✔ Online payments – e-commerce stores, subscriptions, and digital services.\
✔ In-store purchases – restaurants, retail stores, and supermarkets.\
✔ ATM withdrawals – withdraw cash at any ATM that supports Mastercard.

Because the E Money Card is a credit card, it is accepted at millions of merchants globally, making it a flexible and convenient payment solution.\
\
**For Your Security:**\
Please remember to lock your card after each use for added security. \
You can do this at any time under the “Lock Card” option in the app settings, where you can also unlock it when needed.

If you suspect your card is lost or stolen, please make sure to lock it immediately and either report the loss to our support team or use the “Report Lost” feature in the app.


# Can I add the E Money Card to online payment services like Google Pay and Apple Pay?

Yes! Google Pay and other payment providers like PayPal are already supported.

You can link your E Money Card to:\
✔ Google Pay – For contactless payments and online transactions.\
✔ PayPal – Use your E Money Card as a funding source for PayPal transactions.\
✔ Other supported payment services – Depending on your region.

Apple Pay support is coming soon, and we are continuously working to expand compatibility with more digital payment platforms. Stay tuned for updates!


# Which countries’ citizens are eligible to apply for an E Money Card?

Citizens of the following countries are eligible to apply for an E Money Card:

Åland Islands, Algeria, American Samoa, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Sint Eustatius and Saba, Botswana, Bouvet Island, Brazil, British Indian Ocean Territory, British Virgin Islands, Brunei Darussalam, Bulgaria, Burkina Faso, Cabo Verde, Cambodia, Cameroon, Cayman Islands, Chad, Chile, Christmas Island, Cocos (Keeling) Islands, Colombia, Comoros, Congo (Brazzaville), Cook Islands, Costa Rica, Côte d’Ivoire, Croatia, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Eswatini, Falkland Islands, Faroe Islands, Fiji, Finland, France, French Guiana, French Polynesia, French Southern Territories, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guyana, Heard Island and McDonald Islands, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, Kuwait, Kyrgyzstan, Laos, Latvia, Lesotho, Liechtenstein, Lithuania, Luxembourg, Macao, Madagascar, Malawi, Malaysia, Maldives, Malta, Marshall Islands, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Monaco, Mongolia, Montserrat, Morocco, Mozambique, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Niue, Nigeria, Norfolk Island, Northern Mariana Islands, Norway, Oman, Palau, Palestine, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Pitcairn, Poland, Portugal, Puerto Rico, Qatar, Réunion, Romania, Rwanda, Saint Barthélemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Sao Tome and Principe, Saudi Arabia, Senegal, Seychelles, Sierra Leone, Singapore, Sint Maarten, Slovakia, Slovenia, Solomon Islands, South Africa, South Georgia and the South Sandwich Islands, South Korea, Spain, Sri Lanka, Suriname, Svalbard and Jan Mayen, Sweden, Switzerland, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Turkmenistan, Turks and Caicos Islands, Tuvalu, U.S. Minor Outlying Islands, U.S. Virgin Islands, Uganda, United Arab Emirates, United Kingdom, Uruguay, Uzbekistan, Vanuatu, Vatican, Viet Nam, Wallis and Futuna, Zambia.

**Citizens from the following countries are currently not eligible to apply for an E Money Wallet and Card:**

Afghanistan, Albania, Belarus, Bosnia and Herzegovina, Burundi, Central African Republic, China, Canada, Cuba, Crimea, Congo (Kinshasa) / Democratic Republic of the Congo, Ethiopia, Guinea, Guinea-Bissau, Haiti, Iran, Iraq, Kosovo, Lebanon, Liberia, Libya, Mali, Moldova, Montenegro, Myanmar, Nicaragua, Niger, North Korea (DPRK), North Macedonia, Pakistan, Russia / Russian Federation, Serbia, Somalia, South Sudan, Sudan / Sudan and Darfur, Syrian Arab Republic / Syria, Trinidad and Tobago, Tunisia, Ukraine, United States of America, Venezuela, Western Sahara, Yemen, Zimbabwe.

<br>

⚠️ Important:

* Residency requirements may apply in certain regions.
* Regulations may change over time, so please check our website for the latest updates


# Are there any fees I should be aware of as a user?

Yes, the E Money Network has specific fees that users should take into account when using the E Money Card.

#### **1. Card Issuance Fee**

* A one-time fee of $99 is charged when ordering an E Money Card.

#### 2. Collateral Top-Up Fee

* A 0.5% fee applies when adding collateral to your card.

#### 3. FX Fee

* For FX transactions (when converting currencies other than HND), a 1% FX fee is charged.

For full details on all applicable fees, including potential regional variations, please refer to our official fee structure:\
👉[ E Money Card Fees\ <br>](https://docs.emoney.network/e-money-card-fees)


# How do taxes apply when using the E Money Card?

Tax rules vary by jurisdiction. You should consult with a local legal advisor to ensure you remain compliant with all relevant taxation requirements in your jurisdictions.


# E Money Card Fees

###

#### Transaction & ATM Fees

| Fee                          | Amount                      | Description                                                                                                         |
| ---------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Overseas Transaction         | <p>1%\*</p><p><br><br></p>  | Charged on any transaction made outside Hong Kong, as a percentage of the transaction amount.                       |
| Hong Kong Local Transaction  | 0%                          | No fee for transactions conducted in Hong Kong.                                                                     |
| Overseas ATM Cash in Advance | <p>1% \*</p><p><br><br></p> | Fee for cash withdrawal from overseas ATMs; charged as a percentage of the withdrawn amount with a minimum HKD fee. |
| Hong Kong Local ATM Cash     | 2% \*                       | Fee for local ATM withdrawals in Hong Kong; charged as a percentage of the withdrawn amount with a minimum HKD fee. |

#### Collateral Fee

| Fee                      | Amount | Description                                                     |
| ------------------------ | ------ | --------------------------------------------------------------- |
| Collateral Injection Fee | 0.5%   | Applied when injecting or increasing collateral on the account. |

#### Card Fees

| Fee                       | Amount | Description                                                          |
| ------------------------- | ------ | -------------------------------------------------------------------- |
| Card Subscription Fee     | $99    | One-time fee for subscribing to the E Money Card.                    |
| Card Transaction Fee      | $0     | No fee is charged per transaction when using the card.               |
| Annual Fee                | $0     | No annual cost for maintaining the card.                             |
| Request New Card Fee      | $10    | $10 charge for requesting a new card (e.g., upon expiry or upgrade). |
| Lost and Replace Card Fee | $25    | $25 charge for replacing a lost or stolen card.                      |
| Chargeback                | $25    | $25 charge for any chargeback transactions                           |
| Interest charge           | 40%    | 40% APR charge on any negative balance                               |

#### Service & Other Fees

| Fee                                 | Amount | Description                                                                   |
| ----------------------------------- | ------ | ----------------------------------------------------------------------------- |
| Automated Calls & Email Inquiries   | $0     | No cost for contacting customer service via automated calls or email.         |
| Email & Text Message Alerts         | $0     | No charge for receiving notifications regarding account transactions/updates. |
| Mobile Application Facilitation Fee | $0     | No additional fee for using the official E Money Card mobile application.     |
| Periodic Statement Fee              | $0     | No charge for receiving periodic statements of your account.                  |

#### \*MasterCard Fees

The MasterCard fees outlined below are imposed by the card network itself and are therefore mandatory. They apply to relevant overseas, local, and ATM transactions wherever MasterCard is accepted, and must be paid regardless of any other fees or promotions offered by E Money or its affiliates.

* Overseas Transaction: 2%
* Hong Kong Local Transaction: 0%
* Overseas ATM Cash in Advance: 1% or min 50 HKD
* Hong Kong Local ATM Cash: 1% or min 50 HKD

Note on Miscellaneous Fees:

Other miscellaneous fees or additional charges may apply to certain specific transactions or special services not listed above. These fees can vary based on the nature and location of the transaction, and you should consult the applicable terms or contact customer support for further details.

<br>


# Branding and Logos

Our brand, E Money Network, is here for you to use and build upon. These guidelines provide a simple framework for those who are working with our brand.

<details>

<summary>Please adhere to the following points when using our logo: </summary>

* Do not crop, rotate, or combine the logo with other colours.
* Do not recreate the logo using a different typeface.
* Avoid using shadows, transparency, or other special effects.
* Refrain from altering the shape and proportions of the logos.
* Maintain adequate padding around the logo to ensure clarity and visibility.

</details>

### Logotype

The logotype is a crucial element of our visual identity. To establish and maintain recognition, our logo should always be reproduced consistently. It should be clearly visible, not crowded by other page elements, and always have clear space around it.

{% tabs %}
{% tab title="Logo PNG" %}

<div><figure><img src="/files/4s02Bmyfkl2Ek6ylqISH" alt=""><figcaption></figcaption></figure> <figure><img src="/files/XzHH47htPhIKELBP2wlx" alt=""><figcaption></figcaption></figure> <figure><img src="/files/tMLzcGL99yFZ3NTTqGru" alt=""><figcaption></figcaption></figure> <figure><img src="/files/s2w1wC00yQeZmoVd4Nla" alt=""><figcaption></figcaption></figure> <figure><img src="/files/cLde7Fi7VPEc601SSxTW" alt=""><figcaption></figcaption></figure></div>
{% endtab %}

{% tab title="Logo SVG" %}

<div><figure><img src="/files/0UeXceOb3aR4b47OKrz1" alt=""><figcaption></figcaption></figure> <figure><img src="/files/S0RSCaYbhUymh9imzcES" alt=""><figcaption></figcaption></figure> <figure><img src="/files/DENHzimXd7BluHoE9BLu" alt=""><figcaption></figcaption></figure> <figure><img src="/files/cas33F9pc3q4li4kMKHy" alt=""><figcaption></figcaption></figure> <figure><img src="/files/XJXiQEE9LEL62RLZgN2m" alt=""><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}

### EMYC Token

The E Money Network Token can be used to symbolize the network when the full brand doesn't fit or when a more compact shape is required due to the canvas's squared nature.

{% tabs %}
{% tab title="Token PNG" %}

<div><figure><img src="/files/M6qIA3d7Mbw7rRiKl1Nn" alt=""><figcaption></figcaption></figure> <figure><img src="/files/fSscwX9M8gt7iMfc7a1Q" alt=""><figcaption></figcaption></figure> <figure><img src="/files/U3h1FmEtaEygdrvovTCq" alt=""><figcaption></figcaption></figure> <figure><img src="/files/tkNCPSnUCfqSXHBgwNlq" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ZnoVlr4C9cpeKsLpb9ud" alt=""><figcaption></figcaption></figure></div>
{% endtab %}

{% tab title="Token SVG" %}

<div><figure><img src="/files/EeQ10OSPcq0Uvw3nJcwe" alt=""><figcaption></figcaption></figure> <figure><img src="/files/WOTGBTg3kGNFWQ8u49cB" alt=""><figcaption></figcaption></figure> <figure><img src="/files/DIcRzLZNbemsF6LMszUx" alt=""><figcaption></figcaption></figure> <figure><img src="/files/wT0ONqfLYJ3YU4KH0k78" alt=""><figcaption></figcaption></figure> <figure><img src="/files/04RR5dk1lXSFn91aNAN3" alt=""><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}

### Colour

<figure><img src="/files/4rufpDKnQCaAbKvpTi8n" alt=""><figcaption></figcaption></figure>

### Brand Guidelines

{% embed url="<https://drive.google.com/file/d/19VTIhRXzFq1NHq8Pp17Bfbioir4IMbxi/view?usp=drive_link>" %}


