Nomad Docs
  • Nomad 101
    • Funds Recovery
    • Introduction
    • Our Mission
    • Getting Started
  • The Nomad Protocol
    • Overview
    • Cross-chain Messaging
      • Lifecycle of a Message
    • Verification Mechanisms
      • Background on Verification
      • Native Verification
      • External Verification
      • Optimistic Verification
      • Comparing Mechanisms
    • Security
      • Root of Trust
        • Fraud
          • Optimistic Timeout Period
          • Fraud Recovery
        • App-Governed Root of Trust
        • Liveness Assumptions
      • Attack Vectors
        • Key Compromise
        • Economic Attacks
        • Smart Contract Bugs
      • Long-Term Security
        • Permissionless Watchers
        • Financial Controls
        • Cross-Domain MEV
    • Smart Contracts
      • Home
      • Replica
      • XAppConnectionManager
    • Off-chain Agents
      • Updater
      • Watchers
      • Relayer
      • Processor
  • Token Bridge
    • Overview
    • How to Bridge
      • Using Etherscan
      • Nomad Bridge App
      • Testnet Bridge App
    • Asset Issuers
      • Custom Representations
    • Deployed Tokens
      • Mainnet
      • Testnet
    • Smart Contracts
      • BridgeRouter
      • TokenRegistry
      • BridgeToken
      • BridgeMessage
    • Architecture
    • FAQ
  • Governance Bridge
    • Overview
    • Zodiac: Nomad Module
    • Smart Contracts
      • NomadModule
    • Architecture
  • Developers
    • Quickstart
      • Send Messages
      • Receive Messages
    • Environments
      • Domain (Chain) IDs
    • Application Developers
      • Building xApps
      • SDK
        • Contracts SDK
        • Typescript SDK
      • Examples
        • Ping Pong
        • Example Bridge GUI
        • xApp Example
      • Advanced
        • Router Pattern
    • Node Operators
      • Running Agents Guide
        • Troubleshooting
      • Running a Watcher
      • Agent Operations
      • Agent Gas Values
      • The Keymaster
    • Core Developers
      • Upgrade Setup
      • Deploying Contracts
        • Development
        • Production
  • Operational Security
    • Audits
    • Bug Bounty
    • Governance
    • Contracts
    • Agent Operations
  • Resources
    • Awesome Interoperability
    • Brand Kit
    • FAQ
    • Glossary
    • GitHub
    • Discord
    • Twitter
    • Website
Powered by GitBook
On this page
  • Context
  • Standard EVM
  1. Developers
  2. Node Operators

Agent Gas Values

Context

Gas estimation is hard. eth_estimateGas calls have historically caused our agents many issues across different RPC providers and networks. Given that we now have a reasonable dataset on how much gas is needed for different contract methods, we are moving to custom-coding our gas limits using estimates from previous gas usage data.

Standard EVM

Home

Update:

  • Take average limit for one message (50k) and double base to 100k

  • Each additional message dequeued is ~5k gas so double that cost to 10k per message

  • 100k + (num_messages * 10k)

Improper Update:

  • Subset of update gas (update calls improperUpdate)

  • Using same estimation as update

  • 100k + (num_messages * 10k)

DoubleUpdate:

  • Signature check is ~50k

  • Double that for two signature checks in double update 100k

  • Double total for safety to 200k

Replica

Update:

  • 70k on average

  • Double that to 140k (constant)

Prove:

  • 100k on average

  • Double that to 200k (constant since merkle proofs always same size)

Process:

  • Minimum 850k required

  • Double minimum to 1.7M

ProveAndProcess:

  • 1.7M for process

  • 200k for prove

  • 1.9M total

DoubleUpdate:

  • Signature check is ~50k

  • Double that for two signature checks in double update 100k

  • Double total for safety to 200k

XAppConnectionManager

UnenrollReplica:

  • 60k average

  • Double that to 120k

OwnerUnenrollReplica:

  • Cheaper version of normal unenrollReplica without signature check

  • Use same estimate of 120k

PreviousAgent OperationsNextThe Keymaster

Last updated 2 years ago