Byzantine Finance
Website - Home🖥️ For Developers
  • 👋Introduction
    • What is Byzantine Finance?
      • Permissionless strategy vaults
      • Strategy layer & infrastructure layer - Explain Like I'm 5
      • Architecture Overview
    • Explanation of terms
    • Restaking explained
  • Media kit
  • 🔑Byzantine Vaults
    • What are Byzantine vaults?
    • Features of Native Vaults
      • Byzantine Oracle
      • Best practices for Validator Managers
    • Types of Native Vaults
      • Solo Staker Vaults
      • Partner Validated Vaults
      • Distributed Validator Vaults
  • ↔️Vault Interaction
    • Deposit
      • Deposit to ERC20 Vaults
      • Deposit to Native Vaults
    • Withdraw
      • Withdraw from ERC20 Vaults
      • Withdraw from Native Vaults
    • Claim Rewards
      • Restaking Rewards
        • EigenLayer Rewards
        • Symbiotic Rewards
  • 🎛️Vault Creation
    • Overview
      • Vault Configuration Guide
      • Vault Parameters
        • Byzantine Vault Parameters
        • Native Vault Parameters
        • EigenLayer Parameters
        • Symbiotic Parameters
      • Roles
    • Single Protocol Vaults
      • EigenLayer Vault
        • Eigen ERC20 Vault
        • Eigen Native Vault
      • Symbiotic Vault
        • Sym ERC20 Vault
        • Sym Native Vault
    • Cross Protocol Vaults
      • Eigen Layer / Symbiotic ERC20 Vault
  • 🤖Curation
    • Overview
    • Curator Related Roles
    • Vault Management
    • Strategy Management
      • EigenLayer Strategy
      • Symbiotic Strategy
      • Cross Protocol Vault
    • Curation Fee Management
  • 🌐Node operators
    • Operators in the Byzantine ecosystem
    • Register as a Staking Operator
    • Staking
    • Restaking Operator
      • Symbiotic
      • EigenLayer
      • Allocation to existing Restaking Operators
      • Creation of on-demand Restaking Operators
  • Claiming DV operator fees
Powered by GitBook
On this page
  • Overview
  • Withdrawal Flow
  • Step-by-Step Guide
  • What You Should Know
  • Technical Reference
  • Additional Resources
  1. Vault Interaction

Withdraw

PreviousDeposit to Native VaultsNextWithdraw from ERC20 Vaults

Last updated 2 days ago

Overview

Byzantine provides a seamless way to deposit assets and earn rewards through restaking. This guide explains how to interact with Byzantine vaults for withdrawals.

Withdrawing your assets from Byzantine is a simple two-step process that ensures security through a waiting period.

Withdrawal Flow

Step-by-Step Guide

Step 1: Request Your Withdrawal

Choose one of these methods based on what you want to specify:

Method
Use When
Function

By Assets

You know exactly how many tokens you want to withdraw

withdraw(assets, receiver, owner)

By Shares

You know exactly how many shares you want to redeem

redeem(shares, receiver, owner)

Where:

  • assets: Number of tokens to withdraw

  • shares: Number of vault shares to redeem

  • receiver: Address that will receive the withdrawn assets

  • owner: Address that owns the shares (usually your address)

Step 2: Complete Your Withdrawal

After the waiting period has passed:

  1. Call completeWithdrawal(requestId)

  2. Your assets will be transferred to the receiver address you specified

What You Should Know

⏱️ Waiting Period

  • Every withdrawal has a mandatory waiting period

  • The duration varies by protocol

⚠️ Slashing Risk

  • During the waiting period, your withdrawal amount may be reduced if the protocol experiences slashing

  • This mechanism protects the protocol and other users

🔍 Tracking Your Withdrawals

  • Monitor the status of your pending withdrawals:

    • getWithdrawalRequest(requestId): Get details of a specific request

    • getQueuedWithdrawalRequests(staker): View all your pending withdrawals

Technical Reference

// Request withdrawal by specifying asset amount
function withdraw(
    uint256 assets,
    address receiver,
    address owner
) external returns (uint256 shares);

// Request withdrawal by specifying share amount
function redeem(
    uint256 shares,
    address receiver,
    address owner
) external returns (uint256 assets);

// Complete the withdrawal after waiting period
function completeWithdrawal(
    bytes32 requestId
) external;

Additional Resources

For specific withdrawal instructions:

  • Withdraw from ERC20 Vaults

  • Withdraw from Native Vaults

↔️