Baking on Testnets
Tezos Testnets
- Seoulnet is a simple and fast testnet with 20 minute cycles. It’s a great way to quickly test your baker setup and get familiar with the Tezos baking process. Seoulnet will be removed once the Tallinn upgrade is activated on mainnet. Each protocol upgrade on mainnet usually comes with a new testnet that has the same features and really fast cycles.
- Ghostnet is the original Tezos testnet. It is a public testnet that is used by developers and users to test new features and applications before they are deployed on the mainnet. Ghostnet is a great way to get familiar with the Tezos ecosystem and to test your applications in a safe environment where the chain conditions are similar to mainnet.
- Shadownet is similar to Ghostnet but it is a private testnet that is used by developers to test new features and applications before they are deployed on the mainnet. Shadownet is not open to the public and is only accessible to developers who are working on Tezos projects. Shadownet bakers are centrally selected by the core Tezos development team. Setting up a testnet bakery here is possible but not encouraged.
Prerequisites
- Linux OS installed (Ubuntu 22.04+ recommended) with SSH or physical access
- TezBake binary — download and install before running setup
- Test XTZ from the testnet faucet (no real funds required)
- Hardware: 8GB RAM minimum, SSD storage
Table of Contents
Preparation
Installing TezBake and using it to setup your Tezos baker is very simple. You will need the following tools:
- Spare computer or existing computer or VM with Linux installed. We recommend Ubuntu Linux.
ℹ️ INFO: You must have an SSD drive (or better) and at least 8GB RAM
All advanced TezBake configurations, including TezSign block signing apply here as well.
🚨 CRITICAL: DAL Node Mandatory All bakers are required to run a DAL node. See Baking with DAL for setup instructions and details.
Installation (All-in-one)
Download and install tezbake
To begin, run the script below, which will download the latest version of TezBake and copy it to your /usr/sbin directory. This script works with both x86_64 and arm64 architectures.
wget -q https://bake.tez.capital/install -O /tmp/install.sh && sudo sh /tmp/install.sh
# you may be prompted for sudo password
Setup Tezos node, signer, DAL and install tezbake dependencies
# Seoulnet setup:
tezbake setup --with-dal --node-configuration=https://configs.tez.capital/seoulnet.json
# Ghostnet setup:
tezbake setup --with-dal --node-configuration=https://configs.tez.capital/ghostnet.json
# you may be prompted for sudo password
Bootstrap Tezos node
At this stage, it’s necessary to bootstrap your node, meaning to download a copy of the blockchain so you don’t have to synchronize block-by-block, which takes hours at best.
tezbake bootstrap-node <url> <block_hash>
# Seoulnet example:
tezbake bootstrap-node https://snapshots.tzinit.org/seoulnet/rolling <BLOCK_HASH>
# Ghostnet example:
tezbake bootstrap-node https://snapshots.eu.tzinit.org/ghostnet/rolling <BLOCK_HASH>
ℹ️ INFO: Get the current block hash from the snapshot provider’s website.
Get the block hash and block level from the snapshot provider’s website: https://snapshots.eu.tzinit.org/ghostnet/rolling.html
ℹ️ INFO: The
<block_hash>argument is optional but encouraged for security verification. If you don’t want to bother with this protection, you can skip it for a faster bootstrap.
Verify the hash/checksum provided by the snapshot provider to ensure the snapshot is valid. You can find the correct hashes for all blocks on Tezos blockchain explorers such as: https://tzkt.io/blocks
Simply search for the block level in the search field and verify the hash of the block matches the hash provided by the snapshot provider.
Start Tezos node
After importing the snapshot, you need to start your node and wait until it’s fully synchronized before importing your Ledger key.
tezbake start
After starting the node, run the following command over and over every few minutes and monitor the “level” displayed.
tezbake info
Understanding “Level”
The level is the current block height (block number) on the blockchain. To verify your node is synchronized:
- Check the level shown by
tezbake info- Compare it to the latest block on https://tzkt.io
- Once they match, your node is fully synced and you can proceed
ℹ️ INFO: Both blockchain explorers also provide Ghostnet and testnet views. Make sure you’re looking at the correct network.
Import baking keys and register as baker
Now that your node is in full sync, you can proceed with the most important part: (1) your baker parameters import into your baker node and (2) submit your baker registration on the blockchain.
You will have to first fund your baker address with enough tez (6000 minimum) to cover the bond requirement. You can do this by sending tez from your main account or exchange to the baker address.
Import Soft key to TezBake
ℹ️ Key Roles: Manager / Consensus / Companion
Tezos baking uses three distinct key roles. For a full explanation, see Baking on Mainnet — Understanding Baker Key Roles.
In this soft key testnet setup: the
bakerkey is your manager address AND your initial consensus key — both roles live at the same tz4 address.⚠️ WARNING: Companion Key is Mandatory
When using a tz4 (BLS) key as your manager/consensus key, you must also register a separate tz4 companion key. Without it, your baker will forfeit ~10% of baking rewards.
Step 1 — Generate the baker key (this becomes your manager address AND initial consensus key):
tezbake setup-soft-wallet --generate bls --key-alias baker
Step 2 — Generate the companion key:
tezbake setup-soft-wallet --generate bls --key-alias companion
💾 Backup both keys. You can retrieve each secret key with:
tezbake signer client show address baker --show-secret tezbake signer client show address companion --show-secretStore these in a secure, offline location. Never share them.
Step 3 — Get the public key (BLpk) and Proof of Possession (POP) for each key:
The POP is a cryptographic proof that you own the private key. It is required when registering tz4 keys on-chain.
tezbake signer client show address baker
tezbake signer client get proof of possession for baker
tezbake signer client show address companion
tezbake signer client get proof of possession for companion
Note the BLpk... public key and POP output for both keys — you will need them in the next step.
Step 4 — Register the consensus and companion keys:
Option A: TezGov (recommended)
- Go to gov.tez.capital and connect with your baker’s manager key
- Navigate to Baker Management → Keys
- Set your Consensus Key: paste the
BLpk...public key and POP forbaker - Set your Companion Key: paste the
BLpk...public key and POP forcompanion - Confirm both operations
Option B: CLI
tezbake signer client set consensus key for baker to baker
tezbake signer client set companion key for baker to companion
⏱️ Activation: Both keys take effect after 3 cycles. On fast testnets like Seoulnet this is ~1 hour; on Ghostnet ~3 days. Monitor activation at:
https://tzkt.io/<your_baker_address>/secondary-keys
Step 5 — Add the companion key alias to the baker configuration:
tezbake node modify --set configuration.additional_key_aliases '["companion"]'
tezbake upgrade
Register as baker on the Tezos blockchain Testnet
For this step your node level must be synced with the latest block on the blockchain explorer. You must also temporarily open your Ledger Tezos Wallet app to register your key as a baker (note: as well as when voting). For all other baker operations, you must use the Tezos Baking app.
To secure your XTZ security deposit on Ghostnet you can use the faucet to get some free XTZ. You can find the faucet at https://faucet.ghostnet.teztnets.com/
Each Tezos testnet has a faucet over at https://teztnets.com
tezbake register-key
ℹ️ When Registration is Required:
You must register your baker if:
- You’re setting up a new baker (first time)
- Your baker has been inactive beyond the inactivity period (2 cycles - about 40 minutes on fast testnets like Seoulnet, or ~2 days on Ghostnet)
- Your baking rights have stopped appearing in the schedule
Check your baking rights schedule to confirm if re-registration is needed.
Stake your baking XTZ security deposit
To bake on the Tezos network, you need to stake your XTZ security deposit. This is a slashable security deposit that you will get back when you stop baking. The minimum bond to get baking rights is currently set at 6000 XTZ.
You can stake your security deposit by running the following command, after opening your Ledger Tezos Wallet app:
tezbake signer client stake 6000 for baker
ℹ️ Staking Options:
Change 6000 to the amount you want to stake. The minimum security deposit is 6000 XTZ.
Alternative Configurations: You may start baking with as little as 1000 XTZ if you configure additional sources:
- Set baking over staking multiplier to 5X + secure 5000 XTZ from stakers, OR
- Secure 15,000 XTZ from delegators (each delegated XTZ counts as ≈0.33 towards the security deposit per Paris protocol), OR
- Combine: 1000 XTZ + 2000 XTZ from stakers + 9000 XTZ from delegators
Import your DAL attester profile
tezbake update-dal-profiles <your-baker-tz4-key> --force
Installation (Advanced)
You can install different TezBake components on different systems. For example, you can have the Signer, Node and DAL on 3 different machines, all communicating together.
Follow the steps in Baking with Prism
As with everything in life, complexity adds more failure points. Only separate the TezBake components if you have a compelling use case.
Related Guides
Production Baking:
- Baking on Mainnet - Production setup guide
- Best Practices - Hardware and operational recommendations
After Setup:
- Monitoring Logs and Status - Monitor your baker
- Troubleshooting - Common issues and solutions
Any questions/comments/concerns? Please contact the Tez Capital team on Discord or Telegram