- 
                Notifications
    You must be signed in to change notification settings 
- Fork 5.3k
Added Restaking page in usecases #15400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Open
      
      
            YashIIT0909
  wants to merge
  39
  commits into
  ethereum:dev
  
    
      
        
          
  
    
      Choose a base branch
      
     
    
      
        
      
      
        
          
          
        
        
          
            
              
              
              
  
           
        
        
          
            
              
              
           
        
       
     
  
        
          
            
          
            
          
        
       
    
      
from
YashIIT0909:restaking/Yash
  
      
      
   
  
    
  
  
  
 
  
      
    base: dev
Could not load branches
            
              
  
    Branch not found: {{ refName }}
  
            
                
      Loading
              
            Could not load tags
            
            
              Nothing to show
            
              
  
            
                
      Loading
              
            Are you sure you want to change the base?
            Some commits from the old base branch may be removed from the timeline,
            and old review comments may become outdated.
          
          
      
        
          +395
        
        
          −0
        
        
          
        
      
    
  
  
     Open
                    Changes from all commits
      Commits
    
    
            Show all changes
          
          
            39 commits
          
        
        Select commit
          Hold shift + click to select a range
      
      cf6b94c
              
                Added Restaking page in usecases
              
              
                YashIIT0909 4aa22e5
              
                Merge branch 'dev' into restaking/Yash
              
              
                YashIIT0909 df89c86
              
                Update UseCases.tsx
              
              
                YashIIT0909 770dff7
              
                updated Usecases.tsx
              
              
                YashIIT0909 8277cce
              
                updated UseCases.tsx
              
              
                YashIIT0909 ec3ebbe
              
                Merge branch
              
              
                YashIIT0909 d345c9c
              
                updated UseCases.tsx
              
              
                YashIIT0909 82e1f00
              
                Fixed line-height
              
              
                YashIIT0909 c1f3be6
              
                Merge branch 'ethereum:dev' into restaking/Yash
              
              
                YashIIT0909 83474f3
              
                Delete yarn.lock
              
              
                YashIIT0909 d53a2b3
              
                yarn.lock file changed
              
              
                YashIIT0909 926dae1
              
                deleted files
              
              
                YashIIT0909 892ecb7
              
                refactor: apply repo filename conventions
              
              
                wackerow 927323a
              
                Merge branch 'dev' into pr/YashIIT0909/15400
              
              
                wackerow 5c2451b
              
                chore: move to end of dropdown
              
              
                wackerow 7370f93
              
                fix: image paths; import static image data
              
              
                wackerow a3ca639
              
                chore: title case headers
              
              
                wackerow a361574
              
                Merge branch 'dev' into restaking/Yash
              
              
                YashIIT0909 d4112dd
              
                Update public/content/restaking/index.md
              
              
                konopkja 00e802b
              
                Update public/content/restaking/index.md
              
              
                konopkja e874fe3
              
                Update public/content/restaking/index.md
              
              
                konopkja 761bb49
              
                Update public/content/restaking/index.md
              
              
                konopkja ec5901a
              
                Update public/content/restaking/index.md
              
              
                konopkja 98882a9
              
                Update public/content/restaking/index.md
              
              
                konopkja 6793896
              
                Update public/content/restaking/index.md
              
              
                konopkja a9d260f
              
                Update public/content/restaking/index.md
              
              
                konopkja 9ae1acc
              
                Update public/content/restaking/index.md
              
              
                konopkja 2990e3d
              
                Update public/content/restaking/index.md
              
              
                konopkja 4018846
              
                Update public/content/restaking/index.md
              
              
                konopkja 3b51e3f
              
                Update public/content/restaking/index.md
              
              
                konopkja 26386c8
              
                Update public/content/restaking/index.md
              
              
                konopkja 57b8805
              
                Update public/content/restaking/index.md
              
              
                konopkja 8d78f91
              
                Update public/content/restaking/index.md
              
              
                konopkja 6d0ee23
              
                Update public/content/restaking/index.md
              
              
                konopkja c3fa4c5
              
                Update public/content/restaking/index.md
              
              
                konopkja 19b9a69
              
                Update public/content/restaking/index.md
              
              
                konopkja adbecc7
              
                Update public/content/restaking/index.md
              
              
                konopkja ce8e42d
              
                Update public/content/restaking/index.md
              
              
                konopkja d83ae9f
              
                fix conflict
              
              
                corwintines File filter
Filter by extension
Conversations
          Failed to load comments.   
        
        
          
      Loading
        
  Jump to
        
          Jump to file
        
      
      
          Failed to load files.   
        
        
          
      Loading
        
  Diff view
Diff view
There are no files selected for viewing
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              | Original file line number | Diff line number | Diff line change | 
|---|---|---|
| @@ -0,0 +1,188 @@ | ||
| --- | ||
| title: Restaking | ||
| metaTitle: What is restaking? | Benefits and use of restaking | ||
| description: Use staked ETH to secure other decentralized services and earn extra rewards. | ||
| lang: en | ||
| template: use-cases | ||
| emoji: ":recycle:" | ||
| image: /images/use-cases/restaking.png | ||
| alt: A visual representation of restaking on Ethereum. | ||
| sidebarDepth: 2 | ||
| summaryPoint1: Use staked ETH to secure other decentralized services and earn extra rewards. | ||
| buttons: | ||
| - content: What is restaking? | ||
| toId: what-is-restaking | ||
| - content: How does it work? | ||
| toId: how-does-restaking-work | ||
| isSecondary: false | ||
| --- | ||
|  | ||
| The Ethereum network secures billions of dollars of value 24/7, 365. How? | ||
|  | ||
| People all over the world lock away (or “stake”) [ether (ETH)](/eth/) in smart contracts to run the software that processes Ethereum transactions and secures the Ethereum network. In return, they get rewarded with more ETH. | ||
|  | ||
| Restaking is a technology built for [stakers](/staking/) to extend this security to other services, applications, or networks. In return, they earn additional restaking rewards. However, they also put their staked ETH at more risk. | ||
|  | ||
| **Restaking explained in 7 minutes** | ||
|  | ||
| <YouTube id="5r0SooSQFJg" /> | ||
|  | ||
| ## What is restaking? {#what-is-restaking} | ||
|  | ||
| Restaking is when stakers use their already-staked ETH to secure other decentralized services. In return, restakers can get additional rewards from those other services on top of their regular ETH staking rewards. | ||
|  | ||
| The decentralized services secured by restaking are known as "Actively Validated Services" (AVSs). | ||
| In the same way that many ETH stakers run Ethereum validation software, many restakers run specialized AVS software. | ||
|  | ||
| <br/> | ||
| <InfoBanner shouldSpaceBetween emoji=":bulb:"> | ||
| <div> | ||
| <strong>Good to know</strong><br /> | ||
| While "Actively Validated Services" (AVSs) is the most common, different restaking platforms may use other names for the decentralized services they help secure, like "Autonomously Validated Services," "Distributed Secure Services," or "Networks." | ||
| </div> | ||
| </InfoBanner> | ||
|  | ||
| ## Staking vs restaking {#staking-vs-restaking} | ||
|  | ||
| | Staking | Restaking | | ||
| | ------------------------------ | ------------------------------------------------- | | ||
| | Earn ETH rewards | Earn ETH Rewards + AVS rewards | | ||
| | Secures the Ethereum network | Secures the Ethereum network + AVSs | | ||
| | No minimum ETH | No minimum ETH | | ||
| | Low risk level | Low-to-medium risk level | | ||
| | Withdraw time depends on queue | Withdraw time depends on queue + unbonding period | | ||
|  | ||
| ## Why do we need restaking? {#why-do-we-need-restaking} | ||
|  | ||
| Picture two worlds; one with restaking and one without. | ||
|  | ||
| <TabbedSection /> | ||
|  | ||
| In this world with restaking, both the AVS and staker benefit from being able to find each other and trade security for extra rewards. | ||
|  | ||
| <br/> | ||
|  | ||
| <InfoBanner shouldSpaceBetween emoji=":bulb:"> | ||
| <div> | ||
| <strong>Added benefit of restaking</strong><br /> | ||
| AVSs can pour all their resources into building and marketing their services, instead of getting distracted with decentralization and security. | ||
| </div> | ||
| </InfoBanner> | ||
|  | ||
| ## How does restaking work? {#how-does-restaking-work} | ||
|  | ||
| There are several entities involved in restaking — each one of them plays an important part. | ||
|  | ||
| | **Term** | **Description** | | ||
| | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| | **Restaking platforms** | A restaking platform is a service that connects AVSs, ETH stakers, and operators. They build decentralized applications for stakers to restake their ETH, and marketplaces where stakers, AVSs, and operators can find each other. | | ||
| | **Native restakers** | People who stake their ETH by running their own Ethereum validators can connect their staked ETH to a restaking platform, including EigenLayer and others, to earn restaking rewards on top of ETH validator rewards. | ||
| | | ||
| | **Liquid restakers** | People who stake their ETH via a third-party liquid staking provider, like Lido or Rocket Pool, get Liquid Staking Tokens (LSTs) that represent their staked ETH. They can restake these LSTs to earn restaking rewards while keeping their original ETH staked. | ||
| | | ||
| | **Operators** | Operators run the AVSs' restaking software, performing the validation tasks each AVS requires. Operators are usually professional service providers that guarantee things like uptime and performance. Like non-operator restakers, operators use staked ETH to secure AVSs, but operators also receive extra rewards in exchange for their work. | ||
| | | ||
| | **AVSs** | These are the decentralized services — like price oracles, token bridges, and data systems — that receive security from restakers and offer token rewards in return. | | ||
|  | ||
| <br/> | ||
|  | ||
| <InfoBanner shouldSpaceBetween emoji=":bulb:"> | ||
| <div> | ||
| <strong>Good to know</strong><br /> | ||
| Native and liquid restakers often delegate their staked ETH to an operator, instead of running the software to secure AVSs themselves.<br /> | ||
| This way they don’t need to worry about complicated technical requirements from AVSs, though they receive a lower reward rate than operators. | ||
| </div> | ||
| </InfoBanner> | ||
|  | ||
| ## What are some examples of restaking? {#what-are-some-examples-of-restaking} | ||
|  | ||
| While a novel idea, a few projects have emerged to explore the possibilities of restaking. | ||
|  | ||
| <EigenLayer/> | ||
|  | ||
| <CardGrid className="grid grid-cols-[repeat(auto-fill,_minmax(min(100%,_280px),_1fr))] gap-8"> | ||
| <Card title="EigenPods" emoji=":money_with_wings:" > | ||
| A set of smart contracts that let ETH validators connect their staked ETH to EigenLayer's restaking system. | ||
| </Card> | ||
|  | ||
| <Card title="Marketplace" emoji=":earth_africa:" > | ||
| Making it easy for AVSs to find operators and stakers that meet their requirements, and vice versa. | ||
| </Card> | ||
|  | ||
| <Card title="Tooling" emoji=":hammer_and_wrench:" > | ||
| Developer libraries, documentation and codebases to integrate with and build DeFi protocols on top of EigenLayer. | ||
| </Card> | ||
| </CardGrid> | ||
|  | ||
| ## Other examples {#other-examples} | ||
|  | ||
| <RestakingList/> | ||
|  | ||
| <br/> | ||
|  | ||
| <InfoBanner shouldSpaceBetween emoji=":bulb:" isWarning> | ||
| <div> | ||
| <strong>Misnomer alert</strong><br /> | ||
| Some people confuse “restaking” with lending and borrowing LSTs in DeFi. Both put staked ETH to work, but restaking means securing AVSs, not just earning yield on LSTs. | ||
| </div> | ||
| </InfoBanner> | ||
|  | ||
| ## How much can I make from restaking? {#how-much-can-i-make-from-restaking} | ||
|  | ||
| While AVSs offer different rates, Liquid Restaking Tokens (LRTs) like eETH give you an idea of how much you can make. In the same way you get LSTs like stETH for staking your ETH, you can get LRTs like eETH for restaking stETH. These tokens earn ETH staking and restaking rewards. | ||
|  | ||
| **It’s important to acknowledge the risks with restaking. The potential rewards can be attractive, but they’re not risk free.** | ||
|  | ||
| ## What are the risks of restaking? {#what-are-the-risks-of-restaking} | ||
|  | ||
| To truly appreciate the impact of Ethereum payments, it's worth comparing them to traditional fiat currencies: | ||
|  | ||
| | **Risks** | **Description** | **Risk level** | | ||
| | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | | ||
| | **Penalties (or “slashing”)** | Like ETH staking, if restakers/operators go offline, censor messages or try to corrupt the network, their stake can be slashed (burned) partially or entirely. | LOW | | ||
| | **Centralization** | If few operators dominate most of the restaking they could have a great influence on restakers, AVSs and even restaking platforms. | LOW | | ||
| | **Chain reactions** | If a restaker gets slashed while securing multiple AVSs, this could lower the security for the other AVSs, making them vulnerable. | LOW/MEDIUM | | ||
| | **Immediate access to funds** | There is a wait time (or “unbonding period”) for withdrawing restaked ETH so you may not always have access immediately. | LOW/MEDIUM | | ||
|  | ||
| <br/> | ||
|  | ||
| <InfoBanner shouldSpaceBetween emoji=":bulb:"> | ||
| <div> | ||
| <p><strong>The Ethereum co-founder is typing…</strong></p> | ||
| <p> | ||
| Vitalik, the co-founder of Ethereum, warned about the potential risks of restaking in a 2021 blog post called <a href = "https://vitalik.eth.limo/general/2023/05/21/dont_overload.html"> Don't Overload Consensus. </a> | ||
| </p> | ||
| </div> | ||
| </InfoBanner> | ||
|  | ||
| ## How to get started with restaking? {#how-to-get-started-with-restaking} | ||
|  | ||
| | 🫡 Beginners | 🤓 Advanced Users | | ||
| | --------------------------------------------------------------- | ------------------------------------------------------------------------------------- | | ||
| | 1. Stake ETH on platforms like Lido or Rocket Pool to get LSTs. | 1. Stake your ETH as a validator on Ethereum. | | ||
| | 2. Use those LSTs to start restaking on EigenLayer. | 2. Compare restaking services like EigenLayer, Symbiotic and others. | | ||
| | | 3. Follow the instructions to connect your validator to the restaking smart contract. | | ||
|  | ||
| <br/> | ||
|  | ||
| <InfoBanner shouldSpaceBetween emoji=":eyes:"> | ||
| <div><strong>Ethereum Staking :</strong> How does it work?</div> | ||
| <ButtonLink href="/staking/"> | ||
| Learn More | ||
| </ButtonLink> | ||
| </InfoBanner> | ||
|  | ||
| ## Advanced {#advanced} | ||
|  | ||
| <YouTube id="-V-fG4J1N_M" /> | ||
| 
      Comment on lines
    
      +175
     to 
      +177
    
   There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should have at least some content here 🙏 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. maybe we can remove this so that there is less focus on eigen | ||
|  | ||
| ## Further reading {#further-reading} | ||
|  | ||
| 1. [ethereum.org - ETH staking guide](https://ethereum.org/en/staking/) | ||
| 2. [Ledger Academy - What Is Ethereum Restaking?](https://www.ledger.com/academy/what-is-ethereum-restaking) | ||
| 3. [Consensys - EigenLayer: Decentralized Ethereum Restaking Protocol Explained](https://consensys.io/blog/eigenlayer-decentralized-ethereum-restaking-protocol-explained) | ||
| 4. [Vitalik Buterin - Don't overload Ethereum's consensus](https://vitalik.eth.limo/general/2023/05/21/dont_overload.html) | ||
| 5. [Cointelegraph - What is EigenLayer? Ethereum’s restaking protocol explained](https://cointelegraph.com/explained/what-is-eigenlayer-ethereums-restaking-protocol-explained) | ||
| 6. [a16z crypto research - EigenLayer: Permissionless Feature Addition to Ethereum with Sreeram Kannan](https://www.youtube.com/watch?v=-V-fG4J1N_M) | ||
| 7. [Junion - EigenLayer Explained: What is Restaking?](https://www.youtube.com/watch?v=5r0SooSQFJg) | ||
| 8. [The Block - Restaking Data Dash](https://www.theblock.co/data/decentralized-finance/restaking) | ||
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
      
      Loading
      
  Sorry, something went wrong. Reload?
      Sorry, we cannot display this file.
      Sorry, this file is invalid so it cannot be displayed.
      
    
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              | Original file line number | Diff line number | Diff line change | 
|---|---|---|
| @@ -0,0 +1,112 @@ | ||
| import ProductListComponent from "@/components/ProductList" | ||
| import { ButtonLink } from "@/components/ui/buttons/Button" | ||
|  | ||
| import eigenLayer from "@/public/images/eigen-layer-logo.png" | ||
| import lido from "@/public/images/use-cases/lido-logo.png" | ||
| import obol from "@/public/images/use-cases/obol-logo.png" | ||
| import omni from "@/public/images/use-cases/omni-logo.png" | ||
| import symbiotic from "@/public/images/use-cases/symbiotic-logo.png" | ||
|  | ||
| export const RestakingList = () => { | ||
| const productListSets = [ | ||
| { | ||
| title: "Symbiotic (Restaking platform)", | ||
| description: "", | ||
| image: symbiotic, | ||
| alt: "Symbiotic logo", | ||
| contentItems: [ | ||
| <p key="symbiotic-description"> | ||
| Symbiotic is a permissionless restaking protocol that helps secure | ||
| different blockchain networks by letting users “restake” their assets. | ||
| </p>, | ||
| <div key="symbiotic-button"> | ||
| <ButtonLink href="https://symbiotic.fi/" variant="outline"> | ||
| Visit Symbiotic | ||
| </ButtonLink> | ||
| </div>, | ||
| ], | ||
| }, | ||
| { | ||
| title: "Omni Network (AVS)", | ||
| description: "", | ||
| image: omni, | ||
| alt: "Omni logo", | ||
| contentItems: [ | ||
| <p key="omni-description"> | ||
| Omni Network is an AVS that uses EigenLayer to secure messaging | ||
| between Ethereum and other blockchains. Operators guarantee delivery | ||
| of these messages in return for OMNI tokens. | ||
| </p>, | ||
| <div key="omni-button"> | ||
| <ButtonLink href="https://omni.network/" variant="outline"> | ||
| Visit Omni | ||
| </ButtonLink> | ||
| </div>, | ||
| ], | ||
| }, | ||
| { | ||
| title: "Obol Network (Operator)", | ||
| description: "", | ||
| image: obol, | ||
| alt: "Obol logo", | ||
| contentItems: [ | ||
| <p key="obol-description"> | ||
| Obol Network is an EigenLayer operator. They use a unique set up that | ||
| splits the work from an AVS across multiple operators, improving | ||
| stability and reducing the chance of issues like downtime. | ||
| </p>, | ||
| <div key="omni-button"> | ||
| <ButtonLink href="https://obol.org/" variant="outline"> | ||
| Visit Obol | ||
| </ButtonLink> | ||
| </div>, | ||
| ], | ||
| }, | ||
| { | ||
| title: "Lido (LSP)", | ||
| description: "", | ||
| image: lido, | ||
| alt: "Lido logo", | ||
| contentItems: [ | ||
| <p key="lido-description"> | ||
| Lido is a Liquid Staking Protocol (LSP) on Ethereum that lets people | ||
| use their ETH while staking it on Ethereum. Users who stake ETH | ||
| through Lido receive stETH tokens, that they can use for restaking and | ||
| DeFi lending. | ||
| </p>, | ||
| <div key="lido-button"> | ||
| <ButtonLink href="https://lido.fi/" variant="outline"> | ||
| Visit Lido | ||
| </ButtonLink> | ||
| </div>, | ||
| ], | ||
| }, | ||
| ] | ||
|  | ||
| return <ProductListComponent content={productListSets} actionLabel="Go" /> | ||
| } | ||
|  | ||
| export const EigenLayer = () => { | ||
| const productListSets = [ | ||
| { | ||
| title: "EigenLayer (Restaking Platform)", | ||
| description: "", | ||
| image: eigenLayer, | ||
| alt: "eigen layer logo", | ||
| contentItems: [ | ||
| <p key="symbiotic-description"> | ||
| EigenLayer introduced the idea of restaking in 2023 and has grown to | ||
| thousands of people restaking millions of ETH. Referred to as | ||
| “Ethereum middleware”, it connects stakers, operators and AVSs.{" "} | ||
| </p>, | ||
| <div key="symbiotic-button"> | ||
| <ButtonLink href="https://www.eigenlayer.xyz/" variant="outline"> | ||
| Visit EigenLayer | ||
| </ButtonLink> | ||
| </div>, | ||
| ], | ||
| }, | ||
| ] | ||
|  | ||
| return <ProductListComponent content={productListSets} actionLabel="Go" /> | ||
| } | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              | Original file line number | Diff line number | Diff line change | 
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| "use client" | ||
|  | ||
| import Image from "next/image" | ||
|  | ||
| import type { ChildOnlyProp } from "@/lib/types" | ||
|  | ||
| import { Center } from "@/components/ui/flex" | ||
| import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" | ||
|  | ||
| import withRestakingDark from "@/public/images/use-cases/with-restaking-dark.png" | ||
| import withRestakingLight from "@/public/images/use-cases/with-restaking-light.png" | ||
| import withoutRestakingDark from "@/public/images/use-cases/without-restaking-dark.png" | ||
| import withoutRestakingLight from "@/public/images/use-cases/without-restaking-light.png" | ||
|  | ||
| const Width60 = (props: ChildOnlyProp) => ( | ||
| <div className="w-full flex-[3]" {...props} /> | ||
| ) | ||
|  | ||
| const Width40 = (props: ChildOnlyProp) => ( | ||
| <Center className="w-full flex-[2]" {...props} /> | ||
| ) | ||
|  | ||
| export default function TabbedSection() { | ||
| return ( | ||
| <> | ||
| <Width60> | ||
| <Tabs defaultValue="withRestaking" className="w-full max-w-4xl"> | ||
| <TabsList className="mb-6 flex"> | ||
| <TabsTrigger value="withRestaking"> | ||
| A world with restaking | ||
| </TabsTrigger> | ||
| <TabsTrigger value="withoutRestaking"> | ||
| A world without restaking | ||
| </TabsTrigger> | ||
| </TabsList> | ||
|  | ||
| <TabsContent value="withRestaking"> | ||
| <div className="flex justify-center"> | ||
| {/* Light Mode Image */} | ||
| <Image | ||
| src={withRestakingLight} | ||
| alt="Restaking diagram light mode" | ||
| className="block dark:hidden" | ||
| /> | ||
| {/* Dark Mode Image */} | ||
| <Image | ||
| src={withRestakingDark} | ||
| alt="Restaking diagram dark mode" | ||
| className="hidden dark:block" | ||
| /> | ||
| </div> | ||
| </TabsContent> | ||
|  | ||
| <TabsContent value="withoutRestaking"> | ||
| <div className="flex justify-center"> | ||
| {/* Light Mode Image */} | ||
| <Image | ||
| src={withoutRestakingLight} | ||
| alt="Restaking diagram light mode" | ||
| className="block dark:hidden" | ||
| /> | ||
| {/* Dark Mode Image */} | ||
| <Image | ||
| src={withoutRestakingDark} | ||
| alt="Restaking diagram dark mode" | ||
| className="hidden dark:block" | ||
| /> | ||
| </div> | ||
| </TabsContent> | ||
| </Tabs> | ||
| </Width60> | ||
| <Width40 /> | ||
| </> | ||
| ) | ||
| } | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
              
      
      Oops, something went wrong.
        
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Uh oh!
There was an error while loading. Please reload this page.