Skip to content
All Hekla Node Runners: Imminent Ontake fork Sep 30th, upgrade needed. Please update your provers to raiko 1.2.0! Click here for more info

Enable a prover

Prerequisites

Enable a prover with simple-taiko-node

  1. A Taiko prover needs to be able to generate SGX proofs at the moment. To do that, you need to run raiko. Please follow the Docker setup guide here.

  2. After successfully setting up raiko, set the SGX_RAIKO_HOST endpoint in your .env file.

  3. Set the L1_PROVER_PRIVATE_KEY to an L1 account’s private key which will send the Prove Block transactions.

  4. You may optionally deploy a ProverSet contract to run your prover. If you are working with a third party prover, you will have to follow the guide with them to negotiate allowance and deposit of TAIKO/TTKOh. A ProverSet is recommended for a longer term stable setup to avoid nonce issues. For testing purposes, you may not feel the need to deploy a ProverSet.

  5. Finally set ENABLE_PROVER to true in simple-taiko-node .env.

  6. Set COMPOSE_PROFILES=prover or add prover to the list.

  7. You can then run your prover with docker compose up -d! Please use docker compose -f docker-compose-hekla.yml up -d if you are running on Hekla.

Approve TaikoL1 as TAIKO spender (mainnet)

  1. Approve the TaikoL1 contract as a spender.

    Visit the TAIKO contract on Ethereum here.

  2. Click the Connect to Web3 button.

  3. Click the approve function and set the spender address to the TaikoL1 contract address: 0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a.

  4. Set the amount to at least the minimum bond amount of 125 TAIKO.

    You will need 125 TAIKO for each bond you sign. After entering 125, you need to set the 18 decimals that the TAIKO contract takes, you can click the plus button and then select 10^18.

  5. Finally, click the Write button.

Approve TaikoL1 as TTKOh spender (testnet)

You will need TTKOh deposited on the TaikoL1 contract to secure the bond for the proofs you generate.

  1. Approve the TaikoL1 contract as a spender.

    Visit the TTKOh contract on Holesky here.

  2. Click the Connect to Web3 button.

  3. Click the approve function and set the spender address to the TaikoL1 contract address: 0x79C9109b764609df928d16fC4a91e9081F7e87DB.

  4. Set the amount to at least the minimum bond amount of 150 TTKOh.

    You will need 150 TTKOh for each bond you sign. After entering 150, you need to set the 18 decimals that the TTKOh contract takes, you can click the plus button and then select 10^18.

    You will notice that the amount subtracted is separate in two transactions, 125 for the proposeBlock and 25 for proveBlock.

    This is because the livenessBond (125) is taken when the block is proposed, and once the proof has been provided in the window is credited in TaikoL1; the validityBond (150) is then debited using the existing balance + an extra 25 TTKOh.

    If you have bonded TTKOh in the TaikoL1 contract, it will be used first before more is taken from your ProverSet.

    For an explanation of the difference between these bonds, please refer to the terminology section here.

  5. Finally, click the Write button.

Troubleshooting

If you run into any problems, please visit the node troubleshooting page for help. If you run into an error that isn’t yet listed, please reach out in our Discord!