{
"badges": [],
"description": "wBETH is Binance's liquid staking token for ETH. Users can mint by depositing ETH onchain, while Binance also mints it against BETH balances held on its exchange. Binance controls the exchange rate and custody, must fund queued redemptions (currently delayed by 10 days), and can mint, pause, blacklist or upgrade without delay.",
"detailedDescription": "wBETH is Binance's liquid staking token for ETH. It wraps BETH, Binance's offchain balance for staked ETH, into a token whose ETH value rises as staking rewards accrue.\n\n### Staking and minting\n\nAnyone can deposit ETH in the token contract to mint wBETH at the reported exchange rate. A Binance operator can move that ETH to Binance-controlled addresses or to the redemption queue. Validator balances and rewards are not tracked by the contracts.\n\nBinance can also mint wBETH through its `OperatorWallet` against BETH balances on the exchange. This issuance does not deposit ETH onchain, so users rely on Binance's accounting and custody.\n\n\n\n### Exchange rate\n\nA Binance bot reports the ETH-per-wBETH rate through a limiter currently allowing up to 15% of cumulative change over 1 year. The contracts do not derive this rate from validator balances. Binance can reconfigure or replace the oracle immediately, bypassing the limit.\n\n### Redeeming\n\nHolders burn wBETH at the reported rate to join an onchain ETH redemption queue. Claims are delayed by 10 days. The operator can change the delay but not below 2 days. A claim is paid only after Binance funds and allocates enough ETH. Pausing or blacklisting can prevent requests or claims.\n\n\n\n### Governance\n\nGovernance is centralized in Binance-controlled EOAs. They can move ETH, mint wBETH, change the rate and operational roles, pause or blacklist users, and upgrade all three upgradeable contracts without delay.",
"links": {
"websites": [
"https://www.binance.com/en/wbeth"
],
"documentation": [
"https://www.binance.com/en/support/faq/what-is-wbeth-e252366155174ba6887f6b32e3798273"
],
"repositories": [],
"socialMedia": [
"https://x.com/binance"
]
},
"references": [
{
"title": "PeckShield audit of wBETH v1 (March 2023)",
"url": "https://github.com/peckshield/publications/blob/master/audit_reports/PeckShield-Audit-Report-wBETH-v1.0.pdf"
},
{
"title": "PeckShield audit of wBETH v2 and the unwrap contract (September 2023)",
"url": "https://github.com/peckshield/publications/blob/master/audit_reports/PeckShield-Audit-Report-wBETHV2-v1.0.pdf"
}
]
}
colors+1-0
null
ecosystemColors+1-0
null
milestones+1-0
null
chainConfig+1-0
null
escrows+1-0
null
bridgeInfo+1-0
null
bridgeRisks+1-0
null
bridgeTechnology+1-0
null
scalingInfo+1-0
null
scalingStage+1-0
null
scalingRisks+1-0
null
scalingDa+1-0
null
scalingTechnology+1-0
null
daLayer+1-0
null
daBridge+1-0
null
customDa+1-0
null
zkCatalogInfo+1-0
null
interopConfig+1-0
null
privacyInfo+1-0
null
defiInfo+3-0
{
"category": "Liquid Staking"
}
externalDependencies+1-0
[]
tvsInfo+1-0
null
tvsConfig+1-0
null
activityConfig+1-0
null
livenessInfo+1-0
null
livenessConfig+1-0
null
costsInfo+1-0
null
trackedTxsConfig+1-0
null
daTrackingConfig+1-0
null
ecosystemInfo+1-0
null
ecosystemConfig+1-0
null
permissions+109-0
{
"ethereum": {
"roles": [],
"actors": [
{
"id": "EOA-1",
"name": "EOA 1",
"accounts": [
{
"address": "eth:0x099d699C07Bbc8eE6eB5703746063E04B2aA62A7",
"type": "EOA",
"isVerified": true,
"name": "0x099d…62A7",
"url": "https://etherscan.io/address/0x099d699C07Bbc8eE6eB5703746063E04B2aA62A7",
"displayName": "EOA 1"
}
],
"chain": "ethereum",
"description": "* Can interact with UnwrapTokenV1ETH\n * blacklist any address, blocking it from claiming its redeemed ETH \n * pause the contract. While paused, no claim can be paid out and no new claims or top-ups are accepted \n * replace the operator, rechargeAddress, ethBackAddress, pauser and blacklister at any time, with no delay \n* Can interact with ExchangeRateUpdater\n * whitelist or remove callers and set each caller's allowance and refill interval, with no delay \n* Can interact with wBETH\n * blacklist any address, blocking it from transferring, receiving, depositing or redeeming \n * configure minters and their allowances. A minter can mint wBETH to any address with no ETH backing, up to its allowance \n * pause and unpause the token. While paused, transfers, deposits (mint) and redemption requests (burn) all revert \n * replace the oracle, operator, ethReceiver, masterMinter, pauser, blacklister and rescuer addresses at any time, with no delay. Replacing the oracle removes the rate limit that the current oracle contract enforces ",
"discoveryDrivenData": true
},
{
"id": "EOA-2",
"name": "EOA 2",
"accounts": [
{
"address": "eth:0x2B59215778e99035CF38663454eF1240a7AE70F5",
"type": "EOA",
"isVerified": true,
"name": "0x2B59…70F5",
"url": "https://etherscan.io/address/0x2B59215778e99035CF38663454eF1240a7AE70F5",
"displayName": "EOA 2"
}
],
"chain": "ethereum",
"description": "* Can interact with UnwrapTokenV1ETH\n * allocate ETH to pending claims (a claim is not payable until allocated, which otherwise happens only when the queue is pre-funded), set the claim lock time to any value of at least 2 days, and move surplus ETH to the ethBackAddress even while paused \n* Can interact with ExchangeRateUpdater\n * set the wBETH exchange rate, up or down, by at most its allowance per refill interval \n* Can interact with wBETH\n * move any amount of the ETH held by this contract to the ethReceiver or to the unwrap contract ",
"discoveryDrivenData": true
},
{
"id": "EOA-3",
"name": "EOA 3",
"accounts": [
{
"address": "eth:0xA3eE6926edcce93BacF05F4222c243c4d9F6d853",
"type": "EOA",
"isVerified": true,
"name": "0xA3eE…d853",
"url": "https://etherscan.io/address/0xA3eE6926edcce93BacF05F4222c243c4d9F6d853",
"displayName": "EOA 3"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * UnwrapTokenV1ETH \n * wBETH ",
"discoveryDrivenData": true
},
{
"id": "EOA-4",
"name": "EOA 4",
"accounts": [
{
"address": "eth:0x7CfE99c15537753682def016D17d4b29A7caB4EE",
"type": "EOA",
"isVerified": true,
"name": "0x7CfE…B4EE",
"url": "https://etherscan.io/address/0x7CfE99c15537753682def016D17d4b29A7caB4EE",
"displayName": "EOA 4"
}
],
"chain": "ethereum",
"description": "* Can upgrade **with no delay**\n * OperatorWallet ",
"discoveryDrivenData": true
},
{
"id": "EOA-5",
"name": "EOA 5",
"accounts": [
{
"address": "eth:0xa42436335a41fA6C82CDe224Ae2B82C025027e5b",
"type": "EOA",
"isVerified": true,
"name": "0xa424…7e5b",
"url": "https://etherscan.io/address/0xa42436335a41fA6C82CDe224Ae2B82C025027e5b",
"displayName": "EOA 5"
}
],
"chain": "ethereum",
"description": "* Can interact with OperatorWallet\n * mint unbacked wBETH to a registered hot wallet and transfer tokens held here to a hot wallet ",
"discoveryDrivenData": true
},
{
"id": "EOA-6",
"name": "EOA 6",
"accounts": [
{
"address": "eth:0xB2F56fc21EFe0f3921FC28adeCacC36A4bFdcAC1",
"type": "EOA",
"isVerified": true,
"name": "0xB2F5…cAC1",
"url": "https://etherscan.io/address/0xB2F56fc21EFe0f3921FC28adeCacC36A4bFdcAC1",
"displayName": "EOA 6"
}
],
"chain": "ethereum",
"description": "* Can interact with OperatorWallet\n * mint unbacked wBETH to any address (through execTransaction), add or remove hot wallets, replace the operator, pause the wallet, and withdraw anything the wallet holds ",
"discoveryDrivenData": true
}
]
}
}
contracts+125-0
{
"addresses": {
"ethereum": [
{
"name": "UnwrapTokenV1ETH",
"isVerified": true,
"address": "eth:0x79973d557CD9dd87eb61E250cc2572c990e20196",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"eth:0xA3eE6926edcce93BacF05F4222c243c4d9F6d853"
],
"implementations": [
"eth:0x542059d658624DF6452b22B10302A15a6AB59f10"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [],
"description": "Redemption queue for wBETH. The token contract records a claim here when a holder burns wBETH; the claim becomes payable once ETH has been allocated to it (automatically on request if the queue already holds enough, otherwise by the operator) and the lock time of 10d has passed. Only ETH sent by the token operator or the rechargeAddress counts toward allocation; the contract has no way to pull ETH from validators. 134 claims have been recorded so far. The operator can also send any surplus ETH back to the ethBackAddress.\n* Roles:\n * **admin**: EOA 3\n * **blacklister**: EOA 1\n * **operatorAddress**: EOA 2\n * **owner**: EOA 1\n * **pauser**: EOA 1",
"upgradableBy": [
{
"id": "EOA-3",
"name": "EOA 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x79973d557CD9dd87eb61E250cc2572c990e20196#code"
},
{
"name": "ExchangeRateUpdater",
"isVerified": true,
"address": "eth:0x81720695e43A39C52557Ce6386feB3FAAC215f06",
"upgradeability": {
"proxyType": "immutable",
"admins": [],
"implementations": [],
"immutable": true
},
"chain": "ethereum",
"description": "Rate-limited relay that is the token's registered oracle. Whitelisted callers write the wBETH exchange rate through it, and each caller has an allowance that caps the cumulative absolute change it may push; the allowance refills linearly over the caller's interval. This is the only bound on the exchange rate anywhere in the system, and it can be bypassed by the token owner repointing the oracle.\n* Roles:\n * **callers**: EOA 2\n * **owner**: EOA 1",
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0x81720695e43A39C52557Ce6386feB3FAAC215f06#code"
},
{
"name": "wBETH",
"isVerified": true,
"address": "eth:0xa2E3356610840701BDf5611a53974510Ae27E2e1",
"upgradeability": {
"proxyType": "ZeppelinOS proxy",
"admins": [
"eth:0xA3eE6926edcce93BacF05F4222c243c4d9F6d853"
],
"implementations": [
"eth:0x9E021c9607bD3ADB7424D3b25a2D35763ff180BB"
],
"immutable": false
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1694505887,
"transactionHash": "0x065674d9a54ad1e26823ef1c7381621195bd6c9b39e3d5b01d9dde846884f047",
"implementations": [
"eth:0xfe928A7D8Be9c8cEce7e97F0Ed5704f4fA2cb42A"
]
},
{
"timestamp": 1732265171,
"transactionHash": "0x998e10d608ab532ac7c5fef0263a32bf09a2c35188e7ebafd08c0c766a8d1431",
"implementations": [
"eth:0x9E021c9607bD3ADB7424D3b25a2D35763ff180BB"
]
}
],
"description": "Liquid staking token (wBETH) built on Circle's FiatToken code with a staking layer on top. Anyone can mint by sending ETH to deposit(), receiving ETH ÷ exchangeRate tokens; the ETH stays in this contract until the operator moves it to the ethReceiver. Redemption is requestWithdrawEth(): the tokens are burned at the current rate and an ETH claim is recorded in the unwrap contract. Neither path is open while the token is paused or the caller is blacklisted. The exchange rate is a single storage value written by the oracle address, bounded only to be at least 1e18. Configured minters can additionally mint tokens with no ETH backing, up to their allowance; 3175308537299494959722021 is the live supply.\n* Roles:\n * **admin**: EOA 3\n * **blacklister**: EOA 1\n * **masterMinter**: EOA 1\n * **minters**: OperatorWallet\n * **operator**: EOA 2\n * **oracle**: ExchangeRateUpdater\n * **owner**: EOA 1\n * **pauser**: EOA 1",
"upgradableBy": [
{
"id": "EOA-3",
"name": "EOA 3",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xa2E3356610840701BDf5611a53974510Ae27E2e1#code"
},
{
"name": "OperatorWallet",
"isVerified": true,
"address": "eth:0xb05a6449f383a1A43A172970858B97394FEcDAD6",
"upgradeability": {
"proxyType": "EIP1967 proxy",
"admins": [
"eth:0x7CfE99c15537753682def016D17d4b29A7caB4EE"
],
"implementations": [
"eth:0x18cB25F214B95bFac05d594d14eF68bB94D55813"
]
},
"chain": "ethereum",
"pastUpgrades": [
{
"timestamp": 1681893923,
"transactionHash": "0xef001a4cacec4958a37a2cb4a40750d12c366a907d5c7ff0fe1f005232ab1aa0",
"implementations": [
"eth:0x18cB25F214B95bFac05d594d14eF68bB94D55813"
]
}
],
"description": "Binance's minting wallet. It is the only configured wBETH minter and its allowance is unlimited. Its operator or owner can mint wBETH to itself or to a registered hot wallet with no ETH deposited on-chain; this is how wBETH is issued to users who wrap BETH on the exchange, and it accounts for nearly all of the supply. The owner can also add hot wallets, pause the wallet, and execute arbitrary calls from it, which lets it mint to any address.\n* Roles:\n * **admin**: EOA 4\n * **operator**: EOA 5\n * **owner**: EOA 6",
"upgradableBy": [
{
"id": "EOA-4",
"name": "EOA 4",
"delay": "no"
}
],
"discoveryDrivenData": true,
"url": "https://etherscan.io/address/0xb05a6449f383a1A43A172970858B97394FEcDAD6#code"
}
]
},
"risks": []
}