VeChain Docs
  • Welcome to VeChain
  • Blockchain Basics
    • Introduction to blockchain
    • Introduction to digital property
    • The evolution of the internet
  • Introduction to VeChain
    • About the VeChain blockchain
      • Consensus Deep Dive
      • Governance
    • Dual-Token Economic Model
      • VeChain (VET)
      • VeThor (VTHO)
    • Acquire VeChain Assets
    • Sustainability
  • Core Concepts
    • Networks
      • Thor Solo Node
      • Testnet
      • Mainnet
    • Nodes
      • Node Rewards Programme
    • Blocks
      • Block Model
    • Transactions
      • Transaction Model
      • Transaction Fees
      • Transaction Calculation
      • Meta Transaction Features
        • Transaction Uniqueness
        • Controllable Transaction Lifecycle
        • Clauses (Multi-Task Transaction)
        • Fee Delegation
          • Multi-Party Payment (MPP)
          • Designated Gas Payer (VIP-191)
        • Transaction Dependency
    • Block Explorers
    • Wallets
      • VeWorld
        • User Guide
          • Setup
          • Wallet
          • Signing
          • Activities
          • Settings
        • FAQ
      • Sync2
        • User Guide
          • Setup
          • Wallet
          • Signing
          • Activities
          • Settings
        • FAQ
      • Sync
        • User Guide
          • Wallet
          • Ledger Device
          • Browser dApps and web
          • Interact with dApps
          • Activities
          • Settings
          • Report an Issue
          • Contributing
        • FAQ
    • EVM Compatibility
      • VeChain Modifications
      • Methodology
      • Test Coverage
        • Gas model
        • Raw transaction
        • hardhat specific
          • Ganache failures
          • evm_increaseTime
        • Failures in constructor
        • eth_sign
        • Contract address prediction
        • BadBeacon proxy address at 0x1
      • How to Recreate
      • Additional Information
        • Using Governance Contracts
        • ERC1820/ERC777 Testnet
        • Delegate Options
    • Account Abstraction
      • UserOperation
      • Bundler
      • EntryPoint Contract
      • Account Factory Contract
      • Paymaster Contract
    • Token Bound Accounts
  • How to run a node
    • Nodes
    • How to run a Thor Solo Node
    • Custom Network
    • Connect Sync2 to a Thor Solo Node
  • Developer Resources
    • Getting Started
    • How to build on VeChain
      • Connect to the Network
      • Read Data
        • Read Blocks
        • Read Transactions
        • Read Accounts
        • States & Views
        • Events & Logs
        • VET Transfers
      • Write Data
        • Transactions
        • Fee Delegation
      • Listen to Changes
        • Events
        • VET Transfers
        • Transactions
        • Blocks
        • Beats
      • Build with Hardhat
      • Utilities
        • BigInt and Unit-Handling
        • Name Service Lookups
    • Example dApps
      • Buy me a Coffee
      • Token Bound Accounts
      • PWA with Privy and Account Abstraction
    • EVM Compatibility for Developers
      • Key Architectural Differences and Optimizations
      • Practical Implications for Developers: Key Considerations
      • RPC Methods (Detailed Breakdown)
      • Frequently Asked Questions (FAQs)
      • VeChain Blockchain Specifications
      • Key Differences Between VeChain and Ethereum (Summary)
      • Best Practices for Developing on VeChainThor
    • How to verify Address-Ownership
      • Next.js Session Verification
    • Debug Reverted Transactions
    • Account Abstraction
    • VIP-191: Designated Gas Payer
      • How to Integrate VIP-191 (I)
      • How to Integrate VIP-191 (II)
      • How to Integrate VIP-191 (III)
    • Index with Graph Node
      • Setup with Docker
      • Index with OpenZeppelin
        • Create Subgraph Project
        • Configure Contracts
        • Deploy Subgraph and start Indexing
        • Track Subgraph Indexing
        • Access Subgraph
        • Update Subgraph
    • SDKs & Providers
      • SDK
        • Architecture
        • Accounts
        • Bloom Filter
        • Certificates
        • Contracts
        • Cryptography
        • Debug
        • Encoding
        • Polls
        • Subscriptions
        • Thor Client
        • Transactions
      • Thor DevKit
        • Installation
        • Usage
          • Cryptography
          • Accounts
          • Encoding
          • Transactions
          • Certificates
          • Bloom Filter
      • DApp Kit
        • v2
          • Installation
          • React
            • Installation
            • Usage
          • Vanilla JS
            • Installation
            • Usage
          • Core
            • Installation
            • Usage
          • Theme Variables
          • i18n
        • v1
          • Installation
          • React
            • Installation
            • Usage
          • Vanilla JS
            • Installation
            • Usage
          • Core
            • Installation
            • Usage
          • Theme Variables
          • i18n
          • Node Polyfills
          • V0 to V1
        • v0
          • Installation
          • Usage
          • React
            • Installation
            • Usage
          • Vanilla (UI)
            • Installation
            • Usage
          • Styles (UI)
          • i18n
      • DevPal
      • Web3-Providers-Connex
        • Installation
        • Usage
      • Connex
        • Installation
        • API Specification
    • Frameworks & IDEs
      • Hardhat
      • Remix
    • Built-in Contracts
    • VORJ
    • Useful Links
  • How to contribute
Powered by GitBook
On this page

Was this helpful?

  1. Developer Resources
  2. EVM Compatibility for Developers

Key Architectural Differences and Optimizations

VeChainThor introduces several key features that differentiate it from Ethereum:

  1. Two-Token System (VET & VTHO):

  • VET (VeChain Token): The primary reserve of value token. VET has a maximum fixed supply of around 86 billion tokens which have already been minted. No more VET will be created.

  • VTHO (VeChainThor Energy): Functions as a “gas token,” is an ERC20 native currency used to pay for the cost of computation (gas) on the blockchain. Transactions consume VTHO, a portion of which gets burned. VET holders generate VTHO over time (at a rate of 0.000432 VTHO per VET per day).

  • Benefit: Decouples transaction costs (VTHO) from the price volatility of the main asset (VET), leading to more predictable and stable transaction fees for businesses.

  • Implication: Developers must manage both VET and VTHO.

  1. Multi-Clause Transactions (MCT) and Multi-Task Transactions (MTT):

  • Ethereum: Typically, one transaction performs one action.

  • VeChainThor (MCT): Allows multiple clauses within a single transaction, each performing a separate action (e.g., transferring tokens to different recipients, calling different contract functions).

  • VeChainThor (MTT): An extension of MCT. With MTT, users can batch multiple clauses that involve transfers to various recipients and call functions of different contracts, all packed in one transaction and executed atomically.

  • Benefit: Dramatically improves efficiency and reduces transaction overhead for complex operations, particularly beneficial for supply chain applications.

  • Implication: Developers can design more efficient workflows but need to deal with a different transaction structure also when the clause is 1. The transaction envelope is different.

  1. API-Based Architecture (RESTful API vs. JSON-RPC):

  • Ethereum: Primarily relies on JSON-RPC for blockchain interaction.

  • VeChainThor: Emphasizes a RESTful API, a more common standard in enterprise systems.

  • Benefit: Easier integration with existing enterprise infrastructure and backend systems. RESTful APIs are generally considered more developer-friendly.

  • Implication: While an SDK RPC Proxy provides partial support for Ethereum's JSON-RPC methods, developers should prioritize the RESTful API for best performance and integration. Not all JSON-RPC methods are supported, and some have limitations.

  1. Transaction Dependency:

  • VeChainThor: Allows developers to specify that one transaction depends on the successful execution of another.

  • Benefit: Ensures ordered execution of transactions, crucial for complex workflows where the sequence of operations matters.

  • Implication: Developers can build more reliable and predictable applications by defining transaction dependencies.

  1. Transaction Expiration:

  • VeChainThor: Transactions can be given an expiration time. If not included in a block within that timeframe, they expire.

  • Benefit: Prevents stale transactions from clogging the network and provides more control over transaction validity.

  • Implication: Developers can force a more efficient transaction flow, and can be set to null when it’s not required. But the transaction envelope is different.

  1. Hashing Algorithm:

  • VeChain: Uses blake2b for hashing.

  • Ethereum: Uses keccak-256.

  1. Nonce Handling:

  • VeChain: Can be set to random. Ensuring transaction uniqueness is determined by content rather than nonce.

  • Ethereum: Uses an incrementing nonce, requiring strict tracking of transaction history.

PreviousEVM Compatibility for DevelopersNextPractical Implications for Developers: Key Considerations

Last updated 1 month ago

Was this helpful?