Withdraw
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:
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 withdrawshares
: Number of vault shares to redeemreceiver
: Address that will receive the withdrawn assetsowner
: Address that owns the shares (usually your address)
Step 2: Complete Your Withdrawal
After the waiting period has passed:
Call
completeWithdrawal(requestId)
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 requestgetQueuedWithdrawalRequests(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:
Last updated