Symbiotic

Deploy all required Symbiotic modules, configure your Vault, register your Operator, and opt-in to a Ditto Network.

Addresses

  • wstETH: 0xB82381A3fBD3FaFA77B3a7bE693342618240067b

  • Network: 0x683Ed12e213a6D78C338D4e18440C42bb936085A

  • NetworkMiddleware: 0x9403942D5B9EbC1D2cF9Ff0960b688d64588B094

  • NetworkOptInService: 0x58973d16FFA900D11fC22e5e2B6840d9f7e13401

  • VaultOptInService: 0x95CC0a052ae33941877c9619835A233D21D57351

  • OperatorRegistry: 0x6F75a4ffF97326A00e52662d82EA4FdE86a2C548

For technical users who’re comfortable running Foundry scripts, we’ve provided example code for every step in the setup process. → Setup Scripts Alternatively the Symbiotic CLI can assist in many of these steps. Refer to their docs.

Docs:

Tooling:

  • git clone - Gitinstall

  • forge script, cast - Foundryinstall

  • python3 symb.py - Symbiotic CLIinstall

Register Operator & Opt-In

Your EOA (or node runner contract) must be registered as an Operator inside Symbiotic. Opt-in links that operator to a specific Network and Vault.For the official Symbiotic approach, see: Symbiotic Operator Registration Guide

Register in Symbiotic and opt-in to vault and network

We suggest using one of two approaches. First is from official Symbiotic docs:

  1. Install symbiotic CLI

git clone https://github.com/symbioticfi/cli.git
cd cli
pip3 install -r requirements.txt
  1. Register operator in Symbiotic

python symb.py --chain sepolia register-operator --private-key YOUR_OPERATOR_PRIVATE_KEY
  1. Opt in to Ditto network

python symb.py --chain sepolia opt-in-network 0x683Ed12e213a6D78C338D4e18440C42bb936085A --private-key YOUR_OPERATOR_PRIVATE_KEY
  1. Opt in to the vault

python symb.py --chain sepolia opt-in-vault VAULT_ADDRESS --private-key YOUR_OPERATOR_PRIVATE_KEY

Or you can use our Foundry scripts to opt in to Ditto network:

# Clone ditto-contracts repository
git clone https://github.com/dittonetwork/ditto-contracts
cd ditto-contracts
# Define parameters
NETWORK_OPT_IN_SERVICE=0x58973d16FFA900D11fC22e5e2B6840d9f7e13401
NETWORK=0x683Ed12e213a6D78C338D4e18440C42bb936085A
VAULT_OPT_IN_SERVICE=0x95CC0a052ae33941877c9619835A233D21D57351
VAULT=<vault address from previous steps>
OPERATOR_REGISTRY=0x6F75a4ffF97326A00e52662d82EA4FdE86a2C548

# Execute the script
forge script script/operator/04_OperatorOptInSetup.s.sol:SetupOperatorOptIn \
  --sig "run(address,address,address,address,address)" \
  $NETWORK_OPT_IN_SERVICE $NETWORK $VAULT_OPT_IN_SERVICE $VAULT $OPERATOR_REGISTRY \
  --rpc-url https://ethereum-sepolia-rpc.publicnode.com \
  --chain sepolia \
  --private-key <your-private-key> \
  --etherscan-api-key <etherscan api key> \
  --broadcast

Register in Ditto Network Middleware

To Register in Ditto network, you have to contact us and send this info:

Vault Address: <vault> 
Operator Address: <operator>
Operator Public Key: <key>

Troubleshooting

If you encounter any issues during the setup process, check our common troubleshooting solutions:

Transaction Errors
  • Verify all addresses are correct

  • Ensure you have sufficient ETH for gas

  • Check that array parameters are properly formatted

Contract Errors
  • Confirm dependencies are properly installed (forge install)

  • Ensure you’re using compatible versions of contracts

Deployment Verification
  • Verify all contracts are properly deployed using a block explorer

  • Test contract interactions before proceeding to the next step

For further assistance, please contact Ditto support.

Last updated