exSat Network
  • 🔗Important Links
  • 🌌Our Approach
    • What is exSat
      • exSat’s Docking Layer Approach
      • The Paradigm Shift of the Bitcoin Economic Ecosystem
      • Challenges Addressed by exSat
    • Architecture
      • Data Consensus Protocol
        • Network launch phases
        • Decentralized UTXO index
        • Synchronizers and Validators
        • Hybrid Consensus Mechanism
        • Decentralized execution
      • Decentralized Asset Custody (Coming soon)
      • Enhancing the Bitcoin Ecosystem with Smart Contract Capabilities
      • Expanding Possibilities with Rollups
    • $XSAT Tokenomics
      • Total Supply and Issuance
      • Rewards to Synchronizers and Validators
  • 🛠️Guides of Data Consensus
    • Quick Start
    • UTXO Initialization
      • Data preparation
      • Analysis on the UTXO data tobe uploaded
      • Verify the data uploaded to exSat
    • Run a Sychronizer
      • Requirements for Synchronizers
      • Rewards for synchronizers
      • Run as Synchronizer
        • Run from source code
        • Run with Docker
    • Run a BTC Validator
      • Requirements and rewards for BTC Validators
      • Run as BTC validator
        • Run from source code
        • Run with docker
    • Run a XSAT Validator
      • Run as XSAT Validator
        • Run from source code
        • Run with docker
      • Run multiple XSAT Validators
    • Others
      • Operation references
        • Preparation Before You Start
          • Account Preparation
          • Run a BTC node
          • Environment requirements
          • Prerequisites
        • Synchronizer operations
          • Create New Synchronizer Account
          • Synchronizer Registration
          • Execute the synchronizer client
          • Revote For Consensus
          • Change Reward Address
          • Check and claim rewards for synchronizer
          • Update to new Docker version for Synchronizer
        • Validator operations
          • Create New BTC Validator Account
          • Create New XSAT Validator Account
          • Stake for Validator and claim rewards
          • Change Stake Address
          • Change Commission Address
          • Change Commission Ratio
          • Configure Display Information for Your Validator Account
          • Execute the validator client
          • Update to new Docker version for Validator
        • Common operations
          • Import from seed phrase
          • Import from Private Key
          • Set BTC RPC Node
          • Refill BTC for Gas Fees
          • Export private key
          • Remove Your Account
          • Upgrade to new version
          • View Logs
          • Environment variables
  • 👨‍💻Developer Guides
    • Quick Start
    • Native Layer Developer Guides
      • exSat consensus contracts
        • Pool Register Contract
        • UTXO Management Contract
        • Reward Distribution Contract
        • Block Consensus Contract
        • Block Synchronization Contract
        • Validator Management Contract
        • Staking Contract
      • Run exSat native layer RPC Node
    • Trustless Bridge for Native Tokens
    • Trustless Bridge For ERC20 Tokens
    • Brief Intro to the Cross-Chain Communication
    • Brief Intro to the Custodian Bridge Services
    • Custodian Bridge for Non-BTC Tokens
    • Custodian Bridge for BTC
  • 🖥️User Guides
    • Wallet Setup
    • Bridge Your Assets
    • Earn Rewards via BTC Staking
    • Explore Our Ecosystem
  • Popular Token Contract Addresses
  • Set Up a Safe Wallet
  • 📚Reference
  • 📦Cutodian Guides
  • 🔐Security Reports
    • Audit Report From Blocksec
    • Audit Report From CertiK
  • 🔡Terms and Conditions
    • Terms Of Service
    • Privacy Policy
  • 🎁PR & Press
  • ☎️Contact US
Powered by GitBook
On this page
  • Background
  • Vaulta and EVM
  • Exsat EVM
  • Runtime Contract
  • Reserved Address
  • Trustless Bridge
  • Basic mode
  • “Dusts”
  • Advanced mode
  1. Developer Guides

Trustless Bridge for Native Tokens

PreviousRun exSat native layer RPC NodeNextTrustless Bridge For ERC20 Tokens

Last updated 4 days ago

Background

Vaulta and EVM

We use the Vaulta () blockchain network. The Vaulta blockchain is a next-generation Layer-1 built for speed, scale and finality. Your transfers, swaps, and app interactions happen almost instantly with low (or no) fees.

Vaulta EVM is a powerful feature of the Vaulta blockchain that brings the best of Ethereum's capabilities to the Vaulta ecosystem. It allows you to use popular Ethereum-based applications (dApps) on Vaulta, benefiting from faster speeds, lower costs, and a more eco-friendly environment.

Exsat EVM

Vaulta EVM technology allow entities to run their own EVM layers on the Vaulta blockchain. Exsat runs it’s own EVM layer, the Exsat EVM.

Exsat EVM Mainnet

RPC:

Block explorer:

Exsat EVM Testnet

RPC:

Block explorer:

Runtime Contract

The Vaulta EVM system is run in a way that each EVM transaction is actually part of Vaulta transactions. The EVM runtime contract will process Vaulta transactions invoking EVM transactions.

We will use evm_runtime to represent the Vaulta account of the evm runtime contract.

Reserved Address

Each Vaulta account has a mapped reserved EVM address. The rule is using the uint64 value of the Vaulta name as the last 8 bytes of the EVM address, and then pad the rest with 0xbb. E.g. the name “eosio.evm” is mapped to “0xbbbbbbbbbbbbbbbbbbbbbbbb5530ea015b900000”

Trustless Bridge

Basic mode

The basic trustless bridge mechanism for the EVM native token is easy:

  • Deposit:

    • User transfer Vaulta side token to the evm_runtime with the target EVM address as memo.

    • The Vaulta side token will be locked in the evm_runtime.

    • Same amount of EVM side token will be mint and transfer to the target EVM address.

  • Withdraw

    • User transfers to the reserved address of the target account name.

    • The EVM side token will be burned.

    • Same amount of Vaulta side token will be unlocked and send to the target account.

    • As native token of EVM will only be minted when there’s same amount of Vaulta side token locked in the evm_runtime, it is guaranteed that we will have enough tokens to release.

“Dusts”

The precision used for the native token in Vaulta and EVM can be different. e.g. the BTC in Exsat EVM can have 18 decimals while the Vaulta side one can only have 8.

Clearly, one can send an amount with higher precision than the Vaulta during the withdraw process. In basic mode, we will block such calls to avoid generating inconsistency. We also introduced an advanced mode to handle this case.

Advanced mode

To hold the dusts, we allow each Vaulta account to open a bridge balance. User can use the “open” action to open the balance. This balance can be used to hold “dusts” beyond native token precision and to hold the gas for call EVM contracts. User can deposit to this balance by sending some tokens to evm_runtime with the eos name of the target balance (in string) as memo.

We will call this balance the bridge balance.

In advanced mode, deposit and withdraw operation is the same as the basic mode with one exception: during the withdraw process, the Vaulta token will go to the bridge balance instead of being sent to the target account. User need to claim the token separately.

👨‍💻
https://www.vaulta.com/
https://evm.exsat.network/
https://scan.exsat.network/
https://evm-tst3.exsat.network/
https://scan-testnet.exsat.network/