The EOS EVM transaction miner is a simple transaction relay that allows you to take Ethereum formatted transactions and push them to the EOS EVM contract on an EOS Native node.
Your miner account
You will need an EOS Network account which will serve as your miner account.
The EOS EVM Miner software takes the EVM transactions that it receives and converts them into EOS transactions which it then sends
eosio.evm contract on the native EOS Network.
As a relay of these transactions you have the opportunity to earn rewards for the service you provide.
Miners and resources
As your miner account relays transactions it will slowly be depleting its CPU and NET resources. You will need to manage these resources to ensure your miner can continue to operate.
Services like PowerUp should be automated to ensure that your miner account has enough resources to continue operating without interruption.
❔ RAM is not required
Your miner account does not deplete RAM resources as it relays transactions. It only consumes CPU and NET resources. The
eosio.evmcontract pays for the RAM that the EOS EVM uses through the fees it collects from the EVM transactions.
Registering your miner
Once you have your miner account, you will need to register it with the
cleos -u https://eos.greymass.com/ push action eosio.evm open '["<your-miner-account>"]' -p <your-miner-account>
Viewing your mining rewards
eosio.evm contract will store the rewards you earn from mining in a table. You can view these rewards at any time by
getting the table rows from the contract's
balances table with the upper and lower bound set to your miner account:
cleos -u https://eos.greymass.com/ get table eosio.evm eosio.evm balances -U <your-miner-account> -L <your-miner-account>
You can also view the same data on bloks.io
Withdrawing your mining rewards
eosio.evm contract will store the rewards you earn from mining in a table. You can withdraw these rewards at any
time by sending a transaction to the
eosio.evm contract with the following action:
cleos -u https://eos.greymass.com/ push action eosio.evm withdraw '["<your-miner-account>", "1.0000 EOS"]' -p <your-miner-account>
Setting up the miner
Make sure you have
node installed on your machine.
The recommended version is
18.16.0, and the minimum version is
Get the miner from GitHub and inst all dependencies
git clone https://github.com/eosnetworkfoundation/eos-evm-miner.git
You also need to set up you Environment Variables
.env.example file to
.env and fill in the environment variables.
|The private key of the miner account|
|The name of the miner account on the EOS Network|
|A list of EOS RPC endpoints to connect to, comma-delimited|
|The port to listen on for incoming Ethereum transactions|
|If set to |
logsdirectory is created in the project root with two log files:
- error.log: Only error logs
- combined.log: Everything else