diff --git a/app/[locale]/run-a-node/page.tsx b/app/[locale]/run-a-node/page.tsx
index a94b497e2a8..1f78bc371d2 100644
--- a/app/[locale]/run-a-node/page.tsx
+++ b/app/[locale]/run-a-node/page.tsx
@@ -5,7 +5,7 @@ import {
setRequestLocale,
} from "next-intl/server"
-import type { CommitHistory, Lang } from "@/lib/types"
+import type { CommitHistory, Lang, PageParams } from "@/lib/types"
import I18nProvider from "@/components/I18nProvider"
@@ -16,8 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations"
import RunANodePage from "./_components/run-a-node"
import RunANodePageJsonLD from "./page-jsonld"
-const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
- const { locale } = await params
+const Page = async ({ params }: { params: PageParams }) => {
+ const { locale } = params
setRequestLocale(locale)
@@ -53,9 +53,9 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
export async function generateMetadata({
params,
}: {
- params: Promise<{ locale: string }>
+ params: { locale: string }
}) {
- const { locale } = await params
+ const { locale } = params
const t = await getTranslations({ locale, namespace: "page-run-a-node" })
diff --git a/app/[locale]/stablecoins/page-jsonld.tsx b/app/[locale]/stablecoins/page-jsonld.tsx
index 0fd62fe08f6..d6ae3c01c2d 100644
--- a/app/[locale]/stablecoins/page-jsonld.tsx
+++ b/app/[locale]/stablecoins/page-jsonld.tsx
@@ -4,11 +4,7 @@ import PageJsonLD from "@/components/PageJsonLD"
import { normalizeUrlForJsonLd } from "@/lib/utils/url"
-export default async function StablecoinsPageJsonLD({
- locale,
- features,
- contributors,
-}) {
+export default async function StablecoinsPageJsonLD({ locale, contributors }) {
const t = await getTranslations({
namespace: "page-stablecoins",
})
@@ -108,33 +104,5 @@ export default async function StablecoinsPageJsonLD({
},
}
- // JSON-LD for stablecoin types as ItemList
- const stablecoinTypesJsonLd = {
- "@context": "https://schema.org",
- "@type": "ItemList",
- name: "Types of Stablecoins",
- description:
- "Different categories of stablecoins based on their backing mechanisms",
- numberOfItems: features.length,
- itemListElement: features.map((feature, index) => ({
- "@type": "ListItem",
- position: index + 1,
- item: {
- "@type": "Product",
- name: feature.title,
- description:
- typeof feature.description === "string"
- ? feature.description
- : feature.title,
- category: "Digital Currency",
- additionalType: "https://schema.org/FinancialProduct",
- },
- })),
- }
-
- return (
-
- )
+ return
}
diff --git a/app/[locale]/stablecoins/page.tsx b/app/[locale]/stablecoins/page.tsx
index c847d878461..8db7c9c01ce 100644
--- a/app/[locale]/stablecoins/page.tsx
+++ b/app/[locale]/stablecoins/page.tsx
@@ -6,7 +6,7 @@ import {
setRequestLocale,
} from "next-intl/server"
-import { CommitHistory, Lang } from "@/lib/types"
+import type { CommitHistory, Lang, PageParams } from "@/lib/types"
import CalloutBannerSSR from "@/components/CalloutBannerSSR"
import DataProductCard from "@/components/DataProductCard"
@@ -93,8 +93,8 @@ const loadData = dataLoader<[CoinGeckoCoinMarketResponse]>(
REVALIDATE_TIME * 1000
)
-async function Page({ params }: { params: Promise<{ locale: Lang }> }) {
- const { locale } = await params
+async function Page({ params }: { params: PageParams }) {
+ const { locale } = params
const t = await getTranslations({ locale, namespace: "page-stablecoins" })
const tCommon = await getTranslations({ locale, namespace: "common" })
@@ -432,11 +432,7 @@ async function Page({ params }: { params: Promise<{ locale: Lang }> }) {
return (
<>
-
+
@@ -775,9 +771,9 @@ async function Page({ params }: { params: Promise<{ locale: Lang }> }) {
export async function generateMetadata({
params,
}: {
- params: Promise<{ locale: string }>
+ params: { locale: string }
}) {
- const { locale } = await params
+ const { locale } = params
const t = await getTranslations({ locale, namespace: "page-stablecoins" })
diff --git a/app/[locale]/staking/deposit-contract/page.tsx b/app/[locale]/staking/deposit-contract/page.tsx
index 7d48a4af20f..ab9b47971eb 100644
--- a/app/[locale]/staking/deposit-contract/page.tsx
+++ b/app/[locale]/staking/deposit-contract/page.tsx
@@ -5,7 +5,7 @@ import {
setRequestLocale,
} from "next-intl/server"
-import { Lang } from "@/lib/types"
+import type { PageParams } from "@/lib/types"
import I18nProvider from "@/components/I18nProvider"
@@ -14,8 +14,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations"
import DepositContractPage from "./_components/deposit-contract"
-const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
- const { locale } = await params
+const Page = async ({ params }: { params: PageParams }) => {
+ const { locale } = params
setRequestLocale(locale)
@@ -36,9 +36,9 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
export async function generateMetadata({
params,
}: {
- params: Promise<{ locale: string }>
+ params: { locale: string }
}) {
- const { locale } = await params
+ const { locale } = params
const t = await getTranslations({
locale,
diff --git a/app/[locale]/staking/page.tsx b/app/[locale]/staking/page.tsx
index d84b832c983..ae0f9750650 100644
--- a/app/[locale]/staking/page.tsx
+++ b/app/[locale]/staking/page.tsx
@@ -5,7 +5,7 @@ import {
setRequestLocale,
} from "next-intl/server"
-import { CommitHistory, Lang, StakingStatsData } from "@/lib/types"
+import { CommitHistory, Lang, PageParams, StakingStatsData } from "@/lib/types"
import I18nProvider from "@/components/I18nProvider"
@@ -33,8 +33,8 @@ const loadData = dataLoader(
REVALIDATE_TIME * 1000
)
-const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
- const { locale } = await params
+const Page = async ({ params }: { params: PageParams }) => {
+ const { locale } = params
setRequestLocale(locale)
@@ -79,9 +79,9 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
export async function generateMetadata({
params,
}: {
- params: Promise<{ locale: string }>
+ params: { locale: string }
}) {
- const { locale } = await params
+ const { locale } = params
const t = await getTranslations({ locale, namespace: "page-staking" })
diff --git a/app/[locale]/start/page.tsx b/app/[locale]/start/page.tsx
index 70d9da71b1b..d8f90d68420 100644
--- a/app/[locale]/start/page.tsx
+++ b/app/[locale]/start/page.tsx
@@ -5,7 +5,7 @@ import {
setRequestLocale,
} from "next-intl/server"
-import { CommitHistory, Lang } from "@/lib/types"
+import type { CommitHistory, Lang, PageParams } from "@/lib/types"
import I18nProvider from "@/components/I18nProvider"
import { Image } from "@/components/Image"
@@ -23,8 +23,8 @@ import StartPageJsonLD from "./page-jsonld"
import HeroImage from "@/public/images/heroes/developers-hub-hero.png"
import ManDogeImage from "@/public/images/start-with-ethereum/man-doge-playing.png"
-const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
- const { locale } = await params
+const Page = async ({ params }: { params: PageParams }) => {
+ const { locale } = params
const t = await getTranslations({ locale, namespace: "page-start" })
setRequestLocale(locale)
@@ -94,9 +94,9 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
export async function generateMetadata({
params,
}: {
- params: Promise<{ locale: string }>
+ params: { locale: string }
}) {
- const { locale } = await params
+ const { locale } = params
const t = await getTranslations({ locale, namespace: "page-start" })
diff --git a/app/[locale]/trillion-dollar-security/page.tsx b/app/[locale]/trillion-dollar-security/page.tsx
index 8cf7a977156..0aaa6816dd8 100644
--- a/app/[locale]/trillion-dollar-security/page.tsx
+++ b/app/[locale]/trillion-dollar-security/page.tsx
@@ -2,7 +2,7 @@ import React from "react"
import Image from "next/image"
import { getTranslations, setRequestLocale } from "next-intl/server"
-import { CommitHistory, Lang } from "@/lib/types"
+import type { CommitHistory, Lang, PageParams } from "@/lib/types"
import MainArticle from "@/components/MainArticle"
import { ButtonLink } from "@/components/ui/buttons/Button"
@@ -43,8 +43,8 @@ const ReportCard = ({ cta, altText }: { cta: string; altText: string }) => {
)
}
-const TdsPage = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
- const { locale } = await params
+const TdsPage = async ({ params }: { params: PageParams }) => {
+ const { locale } = params
setRequestLocale(locale)
@@ -1094,9 +1094,9 @@ const TdsPage = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
export async function generateMetadata({
params,
}: {
- params: Promise<{ locale: string }>
+ params: { locale: string }
}) {
- const { locale } = await params
+ const { locale } = params
const t = await getTranslations({
locale,
diff --git a/app/[locale]/wallets/find-wallet/page-jsonld.tsx b/app/[locale]/wallets/find-wallet/page-jsonld.tsx
index 5661ee7c4ee..38520ed0819 100644
--- a/app/[locale]/wallets/find-wallet/page-jsonld.tsx
+++ b/app/[locale]/wallets/find-wallet/page-jsonld.tsx
@@ -1,6 +1,6 @@
import { getTranslations } from "next-intl/server"
-import { FileContributor, Lang, WalletData } from "@/lib/types"
+import { FileContributor, Lang } from "@/lib/types"
import PageJsonLD from "@/components/PageJsonLD"
@@ -8,11 +8,9 @@ import { normalizeUrlForJsonLd } from "@/lib/utils/url"
export default async function FindWalletPageJsonLD({
locale,
- wallets,
contributors,
}: {
locale: Lang | undefined
- wallets: WalletData[]
contributors: FileContributor[]
}) {
const t = await getTranslations({
@@ -120,33 +118,5 @@ export default async function FindWalletPageJsonLD({
},
}
- // JSON-LD for the wallet directory list
- const walletDirectoryJsonLd = {
- "@context": "https://schema.org",
- "@type": "ItemList",
- name: "Ethereum Wallet Directory",
- description:
- "Comprehensive list of Ethereum wallets with features and comparisons",
- numberOfItems: wallets.length,
- itemListElement: wallets.slice(0, 20).map((wallet, index) => ({
- "@type": "ListItem",
- position: index + 1,
- item: {
- "@type": "Product",
- additionalType: "https://schema.org/SoftwareApplication",
- name: wallet.name,
- description: `${wallet.name} Ethereum wallet`,
- category: "Cryptocurrency Wallet",
- url: wallet.url,
- applicationCategory: "Finance",
- operatingSystem: "Multiple platforms",
- },
- })),
- }
-
- return (
-
- )
+ return
}
diff --git a/app/[locale]/wallets/find-wallet/page.tsx b/app/[locale]/wallets/find-wallet/page.tsx
index a11dd7ec8be..acfbe4f1cfb 100644
--- a/app/[locale]/wallets/find-wallet/page.tsx
+++ b/app/[locale]/wallets/find-wallet/page.tsx
@@ -5,7 +5,7 @@ import {
setRequestLocale,
} from "next-intl/server"
-import { CommitHistory, Lang } from "@/lib/types"
+import type { CommitHistory, Lang, PageParams } from "@/lib/types"
import Breadcrumbs from "@/components/Breadcrumbs"
import FindWalletProductTable from "@/components/FindWalletProductTable/lazy"
@@ -23,8 +23,8 @@ import {
import FindWalletPageJsonLD from "./page-jsonld"
-const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
- const { locale } = await params
+const Page = async ({ params }: { params: PageParams }) => {
+ const { locale } = params
const t = await getTranslations({
locale,
namespace: "page-wallets-find-wallet",
@@ -61,11 +61,7 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
return (
<>
-
+
@@ -89,9 +85,9 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
export async function generateMetadata({
params,
}: {
- params: Promise<{ locale: string }>
+ params: { locale: string }
}) {
- const { locale } = await params
+ const { locale } = params
const t = await getTranslations({
locale,
diff --git a/app/[locale]/wallets/page-jsonld.tsx b/app/[locale]/wallets/page-jsonld.tsx
index 787b025bc1c..c29fb7f818f 100644
--- a/app/[locale]/wallets/page-jsonld.tsx
+++ b/app/[locale]/wallets/page-jsonld.tsx
@@ -6,7 +6,6 @@ import { normalizeUrlForJsonLd } from "@/lib/utils/url"
export default async function WalletsPageJsonLD({
locale,
- types,
lastEditLocaleTimestamp,
contributors,
}) {
@@ -110,31 +109,5 @@ export default async function WalletsPageJsonLD({
dateModified: lastEditLocaleTimestamp,
}
- // JSON-LD for the wallet types list
- const walletTypesJsonLd = {
- "@context": "https://schema.org",
- "@type": "ItemList",
- name: "Ethereum Wallet Types",
- description: "Different types of Ethereum wallets available",
- itemListElement: types.map((type, index) => ({
- "@type": "ListItem",
- position: index + 1,
- item: {
- "@type": "Product",
- additionalType: "https://schema.org/SoftwareApplication",
- category: "Cryptocurrency Wallet",
- name: `Ethereum ${type.emoji === ":cd:" ? "Hardware" : type.emoji === ":mobile_phone:" ? "Mobile" : type.emoji === ":desktop_computer:" ? "Desktop" : "Web"} Wallet`,
- description:
- typeof type.description === "string"
- ? type.description
- : `${type.emoji === ":cd:" ? "Hardware" : type.emoji === ":mobile_phone:" ? "Mobile" : type.emoji === ":desktop_computer:" ? "Desktop" : "Web"} wallet for Ethereum`,
- },
- })),
- }
-
- return (
-
- )
+ return
}
diff --git a/app/[locale]/wallets/page.tsx b/app/[locale]/wallets/page.tsx
index bf5ff76fe70..c2c7dd546fc 100644
--- a/app/[locale]/wallets/page.tsx
+++ b/app/[locale]/wallets/page.tsx
@@ -6,7 +6,7 @@ import {
setRequestLocale,
} from "next-intl/server"
-import type { CommitHistory, Lang } from "@/lib/types"
+import type { CommitHistory, Lang, PageParams } from "@/lib/types"
import Callout from "@/components/Callout"
import Card from "@/components/Card"
@@ -46,8 +46,8 @@ const StyledCard = (props: ComponentPropsWithRef) => (
/>
)
-const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
- const { locale } = await params
+const Page = async ({ params }: { params: PageParams }) => {
+ const { locale } = params
const t = await getTranslations({ locale, namespace: "page-wallets" })
setRequestLocale(locale)
@@ -205,7 +205,6 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
@@ -469,9 +468,9 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
export async function generateMetadata({
params,
}: {
- params: Promise<{ locale: string }>
+ params: { locale: string }
}) {
- const { locale } = await params
+ const { locale } = params
const t = await getTranslations({ locale, namespace: "page-wallets" })
diff --git a/app/[locale]/what-is-ethereum/page.tsx b/app/[locale]/what-is-ethereum/page.tsx
index abd391559bd..f43b18017f8 100644
--- a/app/[locale]/what-is-ethereum/page.tsx
+++ b/app/[locale]/what-is-ethereum/page.tsx
@@ -8,7 +8,7 @@ import {
} from "lucide-react"
import { getTranslations } from "next-intl/server"
-import type { CommitHistory, Lang, ToCItem } from "@/lib/types"
+import type { CommitHistory, Lang, PageParams, ToCItem } from "@/lib/types"
import DocLink from "@/components/DocLink"
import FeedbackCard from "@/components/FeedbackCard"
@@ -84,7 +84,7 @@ const HighlightCardContent = ({
)
-const Page = async ({ params }: { params: { locale: Lang } }) => {
+const Page = async ({ params }: { params: PageParams }) => {
const { locale } = params
const t = await getTranslations({
locale,
diff --git a/docs/best-practices.md b/docs/best-practices.md
index fdb60a580a5..420116cc108 100644
--- a/docs/best-practices.md
+++ b/docs/best-practices.md
@@ -149,7 +149,7 @@ Use CSS custom properties defined in the design system:
```
- [Framer Motion](https://www.framer.com/motion/) - An open source and production-ready motion library for React on the web, used for our animated designs
-- **Emojis**: We use [Twemoji](https://twemoji.twitter.com/), an open-source emoji set created by Twitter. These are hosted by us, and used to provide a consistent experience across operating systems.
+- **Emojis**: We use [Twemoji](https://twemoji.twitter.com/), an open-source emoji set created by X (formerly Twitter). These are hosted by us, and used to provide a consistent experience across operating systems.
```tsx
// Example of emoji use
diff --git a/docs/ds-implementation.md b/docs/ds-implementation.md
index 7684afd74e7..a1628ec8acb 100644
--- a/docs/ds-implementation.md
+++ b/docs/ds-implementation.md
@@ -1,15 +1,22 @@
# DS implementation guide
-This is a reference for implementing the new Design System components and styles defined in a public [Figma file](https://www.figma.com/file/NrNxGjBL0Yl1PrNrOT8G2B/ethereum.org-Design-System).
+This document serves as a reference for implementing the new Design System (DS) components and styles defined in the public [Figma file](https://www.figma.com/file/NrNxGjBL0Yl1PrNrOT8G2B/ethereum.org-Design-System).
-This is part of our [Design System implementation epic](https://github.com/ethereum/ethereum-org-website/issues/9546). Currently we are implementing the v1, check the remaining tasks [here](https://github.com/ethereum/ethereum-org-website/issues/9548).
+This work is part of the [Design System implementation epic](https://github.com/ethereum/ethereum-org-website/issues/9546).
+Currently, we are implementing **v1** — you can track remaining tasks [here](https://github.com/ethereum/ethereum-org-website/issues/9548).
+
+---
## Basics
-- Use Chakra tokens for spacing, sizes, and breakpoints. [Chakra theme docs](https://chakra-ui.com/docs/components/theme)
-- For colors use the semantic tokens defined in [this file](https://github.com/ethereum/ethereum-org-website/blob/dev/src/%40chakra-ui/semanticTokens.ts). These tokens will match the color variables used in the DS Figma file
-- Use as many Chakra components and utils as possible
-- Read the [Best Practices doc](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/best-practices.md) for more examples and info
+* Use **shadcn/ui** components and patterns for all base UI elements.
+ [shadcn/ui documentation](https://ui.shadcn.com/docs/components)
+* Follow **Radix UI** principles for accessibility and composability.
+* Reference base components located in `src/components/ui`.
+* Use **Tailwind CSS utility classes** and DS tokens (spacing, colors, breakpoints) as defined in the Figma file.
+* Read the [Best Practices doc](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/best-practices.md) for examples and additional details.
+
+---
**IMPORTANT**
Follow the new component directory structure:
@@ -23,21 +30,36 @@ src/
··········└── // Any other files as applicable (utils, child components, useHook, etc.)
```
-## Components creation/modification from the DS
+---
+
+## Component implementation from the DS
If you are implementing:
-- A base component (a component that already exists in the [Chakra components list](https://chakra-ui.com/docs/components/), for example, the button or inputs)
- - Try to avoid creating a new component file `/ComponentA/index.tsx` if there is no additional or custom logic we need to add to them
- - Create a theme file to override the default Chakra styles with the DS specs. See examples under the [Chakra theme folder](https://github.com/ethereum/ethereum-org-website/tree/dev/src/%40chakra-ui/components)
- - Create a `.stories.tsx` file under `src/components/BaseStories`
-- A new custom component (e.g. the PageHero)
- - Use as many Chakra components as possible
- - Avoid implementing previous implementation details or styles if Chakra offers a solution for that
+### 🧩 Base components
+
+*(components that already exist in the [shadcn/ui components list](https://ui.shadcn.com/docs/components), e.g. Button, Input, Alert)*
+
+* Do **not** create a new component file under `/ComponentA/index.tsx` unless additional or custom logic is required.
+* Extend or style base components in `src/components/ui`.
+* Use Tailwind and `class-variance-authority` (`cva`) for managing variants and states.
+* Create a `.stories.tsx` file under `src/components/BaseStories` for Storybook documentation.
+
+### 🧱 Custom components
+
+*(components not covered by shadcn/ui, e.g. PageHero)*
+
+* Use base `ui` components whenever possible.
+* Keep the structure consistent with the DS and Figma specifications.
+* Avoid re-implementing primitives that already exist in `shadcn/ui` or Radix UI.
+
+---
## Stories
-As defined in the new directory structure, each created or adapted component must have a story attached to it.
+Each created or adapted component must include a corresponding Storybook story.
+
+* Follow the [Storybook integration guide](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/applying-storybook.md)
+* Follow the [proposed Storybook structure](https://www.figma.com/file/Ne3iAassyfAcJ0AlgqioAP/DS-to-storybook-structure)
+
-- Follow the [Applying Storybook documentation](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/applying-storybook.md)
-- Follow the [proposed Storybook structure](https://www.figma.com/file/Ne3iAassyfAcJ0AlgqioAP/DS-to-storybook-structure)
diff --git a/middleware.ts b/middleware.ts
index ccc22f188fd..97d6926076d 100644
--- a/middleware.ts
+++ b/middleware.ts
@@ -1,8 +1,28 @@
+import { NextRequest, NextResponse } from "next/server"
import createMiddleware from "next-intl/middleware"
import { routing } from "./src/i18n/routing"
+import { DEFAULT_LOCALE } from "./src/lib/constants"
-export default createMiddleware(routing)
+const handleI18nRouting = createMiddleware(routing)
+
+export default function middleware(request: NextRequest) {
+ const response = handleI18nRouting(request)
+
+ // Upgrade default-locale strip redirects from 307 to 301 for SEO
+ if (response.status === 307) {
+ const pathname = request.nextUrl.pathname
+ const defaultPrefix = `/${DEFAULT_LOCALE}`
+ if (
+ pathname === defaultPrefix ||
+ pathname.startsWith(`${defaultPrefix}/`)
+ ) {
+ return new NextResponse(null, { status: 301, headers: response.headers })
+ }
+ }
+
+ return response
+}
// Simplified matcher pattern
export const config = {
diff --git a/package.json b/package.json
index 93632cbc2e4..764fcc50bc5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ethereum-org-website",
- "version": "10.15.0",
+ "version": "10.16.0",
"license": "MIT",
"private": true,
"scripts": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d32af7da038..ff917f1717c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5236,6 +5236,15 @@ packages:
supports-color:
optional: true
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
decamelize@1.2.0:
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
engines: {node: '>=0.10.0'}
@@ -7578,6 +7587,9 @@ packages:
preact@10.27.1:
resolution: {integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==}
+ preact@10.27.2:
+ resolution: {integrity: sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==}
+
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -8631,8 +8643,8 @@ packages:
to-buffer@1.1.1:
resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==}
- to-buffer@1.2.1:
- resolution: {integrity: sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==}
+ to-buffer@1.2.2:
+ resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==}
engines: {node: '>= 0.4'}
to-regex-range@5.0.1:
@@ -10559,7 +10571,7 @@ snapshots:
eth-json-rpc-filters: 6.0.1
eventemitter3: 5.0.1
keccak: 3.0.4
- preact: 10.27.1
+ preact: 10.27.2
sha.js: 2.4.12
transitivePeerDependencies:
- supports-color
@@ -11250,7 +11262,7 @@ snapshots:
dependencies:
'@ethereumjs/tx': 4.2.0
'@types/debug': 4.1.12
- debug: 4.4.1
+ debug: 4.4.3
semver: 7.7.2
superstruct: 1.0.4
transitivePeerDependencies:
@@ -15910,6 +15922,10 @@ snapshots:
dependencies:
ms: 2.1.3
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
decamelize@1.2.0: {}
decimal.js-light@2.5.1: {}
@@ -18794,6 +18810,8 @@ snapshots:
preact@10.27.1: {}
+ preact@10.27.2: {}
+
prelude-ls@1.2.1: {}
prettier-plugin-tailwindcss@0.6.12(prettier@3.5.3):
@@ -19475,7 +19493,7 @@ snapshots:
dependencies:
inherits: 2.0.4
safe-buffer: 5.2.1
- to-buffer: 1.2.1
+ to-buffer: 1.2.2
sharp@0.33.5:
dependencies:
@@ -20046,7 +20064,7 @@ snapshots:
to-buffer@1.1.1: {}
- to-buffer@1.2.1:
+ to-buffer@1.2.2:
dependencies:
isarray: 2.0.5
safe-buffer: 5.2.1
diff --git a/public/_redirects b/public/_redirects
index f2eab5c3232..6662af2a003 100644
--- a/public/_redirects
+++ b/public/_redirects
@@ -149,7 +149,9 @@
/*/contributing/translation-program/translation-guide/ /:splat/contributing/translation-program/faq/ 301!
-/*/contributing/translation-program/content-versions/ /:splat/contributing/translation-program/content-buckets/ 301!
+/*/contributing/translation-program/content-versions/ /:splat/contributing/translation-program/ 301!
+
+/*/contributing/translation-program/content-buckets/ /:splat/contributing/translation-program/ 301!
/*/developers/docs/smart-contracts/source-code-verification/ /:splat/developers/docs/smart-contracts/verifying/ 301!
diff --git a/public/content/community/code-of-conduct/index.md b/public/content/community/code-of-conduct/index.md
index 0d57d4a237c..cb0e071c279 100644
--- a/public/content/community/code-of-conduct/index.md
+++ b/public/content/community/code-of-conduct/index.md
@@ -37,7 +37,7 @@ Open participation is core to the ethereum.org ethos. We are a website and commu
### Scope {#scope}
-This Code of Conduct applies to all ethereum.org spaces (such as GitHub, Discord, Figma, Crowdin, Twitter and other online platforms), and it also applies when the community is represented in real-world public spaces such as at meetups, conferences and events.
+This Code of Conduct applies to all ethereum.org spaces (such as GitHub, Discord, Figma, Crowdin, X (formerly Twitter) and other online platforms), and it also applies when the community is represented in real-world public spaces such as at meetups, conferences and events.
### Our standards {#our-standards}
diff --git a/public/content/community/get-involved/index.md b/public/content/community/get-involved/index.md
index 413befd9903..ee1d0dc6ada 100644
--- a/public/content/community/get-involved/index.md
+++ b/public/content/community/get-involved/index.md
@@ -17,7 +17,7 @@ Start by reading about the ethereum.org mission and values in our [code of condu
- Check out [projects related to your area of expertise or programming language of choice](/developers/docs/programming-languages/)
- Watch or participate in the [Consensus and Execution Layer calls](https://www.youtube.com/@EthereumProtocol/streams)
- [Ecosystem Support Program's wishlist](https://esp.ethereum.foundation/wishlist/) - tooling, documentation, and infrastructure areas where the Ethereum Ecosystem Support Program is actively seeking grant applications
-- [Web3Bridge](https://www.web3bridge.com/) - join the aspiring web3 community in their initiative to identify, train, and support hundreds of developers and community members throughout Africa
+- [Web3Bridge](https://www.web3bridgeafrica.com) - join the aspiring web3 community in their initiative to identify, train, and support hundreds of developers and community members throughout Africa
- Join the [Eth R&D Discord](https://discord.com/invite/VmG7Uxc)
- Join the [Ethereum Cat Herders Discord](https://discord.com/invite/Nz6rtfJ8Cu)
@@ -126,7 +126,6 @@ The Ethereum ecosystem is on a mission to fund public goods and impactful projec
- [HausDAO](https://daohaus.club) [@nowdaoit](https://twitter.com/nowdaoit) - _Community governance of DAOhaus_
- [LexDAO](https://lexdao.org) [@lex_DAO](https://twitter.com/lex_DAO) - _Legal engineering_
- [MetaCartel Ventures](https://metacartel.xyz) [@VENTURE_DAO](https://twitter.com/VENTURE_DAO) - _Venture for pre-seed crypto projects_
-- [MetaGame](https://metagame.wtf) [@MetaFam](https://twitter.com/MetaFam) - _MMORPG Game Mechanics for Real Life_
- [MetaFactory](https://metafactory.ai) [@TheMetaFactory](https://twitter.com/TheMetaFactory) - _Digiphysical Apparel Brands_
- [MolochDAO](https://molochdao.com) [@MolochDAO](https://twitter.com/MolochDAO) - _Community focused on funding Ethereum development_
- [Raid Guild](https://raidguild.org) [@RaidGuild](https://twitter.com/RaidGuild) - _Collective of Web3 builders_
diff --git a/public/content/community/grants/index.md b/public/content/community/grants/index.md
index 46e796cb127..41cc1a59cbe 100644
--- a/public/content/community/grants/index.md
+++ b/public/content/community/grants/index.md
@@ -52,13 +52,6 @@ Resources for community-driven projects and governance experiments:
- [DAO Grants](https://docs.google.com/spreadsheets/d/1XHc-p_MHNRdjacc8uOEjtPoWL86olP4GyxAJOFO0zxY/edit#gid=0) - _Google spreadsheet of organizations offering grants_
- [MetaGov Database](https://docs.google.com/spreadsheets/d/1e5g-dlWWsK2DZoZGBgfxyfGNSddLk-V7sLEgfPjEhbA/edit#gid=780420708) - _Comprehensive Web3 grants map_
-### For entrepreneurs and startups {#for-entrepreneurs-and-startups}
-
-Resources for those building products and seeking investment beyond just grants:
-
-- [Web3Native](https://www.web3native.co/) - _Directory of Web3 grants, investors, and accelerator programs_
-- [Cryptoneur Web3 Grants](https://www.cryptoneur.xyz/web3-grants) - _Platform for finding Web3 project funding_
-
### Public goods and impact {#public-goods-and-impact}
These programs focus on funding projects that benefit the broader community, public goods, and impact initiatives. These include grant providers, as well as donation platforms utilizing onchain funding allocation mechanisms including [quadratic funding](/defi/#quadratic-funding):
diff --git a/public/content/community/language-resources/index.md b/public/content/community/language-resources/index.md
index 33fb3fd9cdb..f9c6440baf4 100644
--- a/public/content/community/language-resources/index.md
+++ b/public/content/community/language-resources/index.md
@@ -52,7 +52,7 @@ If you are bilingual and want to help us reach more people, you can also get inv
- [Unitimes](https://mp.weixin.qq.com/s/tvloZSDBSOQN9zDQj_91kA) - community maintained content, covering Ethereum, DeFi, NFT, Web3-related knowledge
- [123ETH](https://123eth.org/) - a Portal to the Ethereum ecosystem
- [Zhen Xiao](http://zhenxiao.com/blockchain/) - free online courses about cryptocurrency and its applications
-- [Ethereum Whitepaper](https://github.com/ethereum/wiki/wiki/[%E4%B8%AD%E6%96%87]-%E4%BB%A5%E5%A4%AA%E5%9D%8A%E7%99%BD%E7%9A%AE%E4%B9%A6) - Chinese version of the Ethereum Whitepaper
+- [Ethereum Whitepaper](/zh/whitepaper/) - Chinese version of the Ethereum Whitepaper
**Ethereum ecosystem**
diff --git a/public/content/community/research/index.md b/public/content/community/research/index.md
index c6f42cad98b..c2d6af85346 100644
--- a/public/content/community/research/index.md
+++ b/public/content/community/research/index.md
@@ -377,7 +377,7 @@ Hacks on Ethereum generally exploit vulnerabilities in individual applications r
- [Wormhole exploit report](https://blog.chainalysis.com/reports/wormhole-hack-february-2022/)
- [List of Ethereum contract hack post-mortems](https://forum.openzeppelin.com/t/list-of-ethereum-smart-contracts-post-mortems/1191)
-- [Rekt News](https://twitter.com/RektHQ?s=20&t=3otjYQdM9Bqk8k3n1a1Adg)
+- [Rekt News](https://x.com/RektHQ?s=20&t=3otjYQdM9Bqk8k3n1a1Adg)
#### Recent research {#recent-research-19}
diff --git a/public/content/contributing/style-guide/content-standardization/index.md b/public/content/contributing/style-guide/content-standardization/index.md
index aed58de1856..7c53baa3481 100644
--- a/public/content/contributing/style-guide/content-standardization/index.md
+++ b/public/content/contributing/style-guide/content-standardization/index.md
@@ -75,7 +75,7 @@ Smart contract is a common noun and should only be capitalized at the beginning
- Smart contract
- smart contract
-** Incorrect usage:**
+**Incorrect usage:**
- Smart Contract
@@ -141,6 +141,8 @@ When using the abbreviated form of zero-knowledge rollup you should shorten zero
- zK rollup
- zk rollup
+## Writing style guidelines {#writing-style-guidelines}
+
### Use active voice {#use-active-voice}
Sentences using active voice are more concise and efficient, making your writing more engaging and easier to comprehend.
@@ -157,7 +159,7 @@ Sentences using active voice are more concise and efficient, making your writing
_This isn't an easy one, especially for non-native English speakers. If you aren't sure, don't worry. We'll help with any of these._
-### Date Format {#date-format}
+### Date format {#date-format}
When including dates in markdown content across Ethereum documentation, it is essential to maintain a consistent and clear presentation. In order to achieve this, we recommend the following guidelines:
@@ -174,7 +176,7 @@ By adhering to these guidelines, we create a unified approach to presenting date
### Linking to internal pages {#internal-links}
-When linking to another page on Ethereum.org, use the relative path over the absolute path. Do not hard-code the language path (i.e. `/en/`) in any links. This maintains consistent functionality across different language versions of the site.
+When linking to another page on ethereum.org, use the relative path over the absolute path. Do not hard-code the language path (i.e. `/en/`) in any links, and do not include the `https://ethereum.org` domain. This maintains consistent functionality across different language versions of the site.
```md
@@ -185,6 +187,7 @@ Read more about [smart contracts](/docs/developers/smart-contracts/)
Read more about [smart contracts](/en/docs/developers/smart-contracts)
Read more about [smart contracts](/docs/developers/smart-contracts)
+Read more about [smart contracts](https://ethereum.org/docs/developers/smart-contracts)
```
Please also add a trailing slash to all links. This keeps links consistent and avoids redirects, which hurts site performance.
@@ -282,3 +285,87 @@ Discussion was held in an offchain forum, and the vote was performed onchain.
<--- Bad--->
Discussion was held in an off-chain forum, and the vote was performed on-chain.
```
+
+### Hyphen (-), en dash (–), and em dash (—): usage guide {#dash-usage-guide}
+
+For further reading, see [Merriam-Webster: How to Use Em Dashes, En Dashes, and Hyphens](https://www.merriam-webster.com/grammar/em-dash-en-dash-how-to-use)
+
+#### Hyphen (-) {#hyphen}
+
+- **Purpose:** Joins words or parts of words.
+- **Use for:** Compound words (well-known), prefixes (re-enter), word breaks at line ends.
+- **Example:** state-of-the-art, self-aware
+- **How to type:**
+ - Mac: `-` key
+ - Windows: `-` key
+ - Linux: `-` key
+
+```md
+
+
+state-of-the-art solution
+re-enter your password
+
+
+
+state of the art solution
+reenter your password
+```
+
+#### En dash (–) {#en-dash}
+
+- **Purpose:** Indicates ranges or relationships.
+- **Use for:** Ranges (dates, numbers), connections (geographical, partnerships).
+- **Example:** 2010–2020, New York–London flight
+- **How to type:**
+ - Mac: `Option` + `-`
+ - Windows: `Alt` + `0150`
+ - Linux: `Ctrl` + `Shift` + `u`, then type `2013`, then press `Space` or `Enter`
+
+```md
+
+
+The event runs 10–12 June.
+The Paris–Berlin flight was delayed.
+
+
+
+The event runs 10-12 June.
+The Paris - Berlin flight was delayed.
+```
+
+#### Em dash (—) {#em-dash}
+
+- **Purpose:** Creates a strong break, sets off information, or shows interruption.
+- **Use for:** Parenthetical statements, abrupt changes, emphasis.
+- **Example:** She was late—again.
+- **How to type:**
+ - Mac: `Option` + `Shift` + `-`
+ - Windows: `Alt` + `0151`
+ - Linux: `Ctrl` + `Shift` + `u`, then type `2014`, then press `Space` or `Enter`
+
+```md
+
+
+He was sure of one thing—he would not give up.
+The results—despite initial doubts—were impressive.
+
+
+
+He was sure of one thing — he would not give up.
+The results -- despite initial doubts -- were impressive.
+```
+
+#### Spacing {#dash-spacing}
+
+No spaces should appear before or after any dash—hyphen, en dash, or em dash—in standard usage.
+
+#### Quick reference table {#dash-reference-table}
+
+| Mark | Symbol | Main use | Example |
+| ------- | ------ | ------------------- | ------------------------- |
+| Hyphen | - | Compound words | well-known author |
+| En dash | – | Ranges, connections | pages 10–20, Paris–Berlin |
+| Em dash | — | Breaks, emphasis | He was late—again. |
+
+**Tip:** Use each dash for its specific purpose, follow spacing rules, and use the correct input method for clear, professional writing.
diff --git a/public/content/contributing/translation-program/content-buckets/index.md b/public/content/contributing/translation-program/content-buckets/index.md
deleted file mode 100644
index 225eaa73bf4..00000000000
--- a/public/content/contributing/translation-program/content-buckets/index.md
+++ /dev/null
@@ -1,345 +0,0 @@
----
-title: Content buckets
-lang: en
-description: Which pages each content bucket of Ethereum.org contains
----
-
-# Content buckets {#content-buckets}
-
-As mentioned in our [Translation Program overview](/contributing/translation-program/), we use 'content buckets' within Crowdin to get the highest priority content released first. When you check out a language to translate, for example, [German](https://crowdin.com/project/ethereum-org/de) you'll see folders for each content bucket.
-
-Below is a breakdown of the website pages each content bucket contains.
-
-## 1) Homepage {#homepage}
-
-- [Ethereum.org homepage](/)
-- Main navbar
-- Footer links
-- Language support
-
-## 2) Essential pages {#essential-pages}
-
-- [What is Ethereum?](/what-is-ethereum/)
-- [What is ether (ETH)?](/eth/)
-- [Get ETH](/get-eth/)
-- [Wallets](/wallets/)
-- [Find wallets](/wallets/find-wallet/)
-- [Network fees](/gas/)
-
-## 3) Exploring {#exploring}
-
-- [Non-fungible tokens (NFT)](/nft/)
-- [Dapps](/apps/)
-- [Stablecoins](/stablecoins/)
-- Template usecase
-
-## 4) Use Ethereum pages {#use-ethereum-pages}
-
-- [Decentralized autonomous organizations (DAOs)](/dao/)
-- [Layer 2](/layer-2/)
-- [Run a node](/run-a-node/)
-- [Developers' Home](/developers/)
-- [Developer learning tools](/developers/learning-tools/)
-- [Developer local environment setup](/developers/local-environment/)
-
-## 5) Use case pages {#use-case-pages}
-
-- [Decentralized finance (DeFi)](/defi/)
-- [Introduction to smart contracts](/smart-contracts/)
-- [Decentralized identity](/decentralized-identity/)
-- [Decentralized social networks](/social-networks/)
-- [Decentralized science (DeSci)](/desci/)
-- [Regenerative finance (ReFi)](/refi/)
-
-## 6) Staking pages {#staking-pages}
-
-- [Staking](/staking/)
-- [Solo staking](/staking/solo/)
-- [Pooled staking](/staking/pools/)
-- [Staking as a service](/staking/saas/)
-- [Staking deposit contract](/staking/deposit-contract/)
-- [Staking withdrawals](/staking/withdrawals/)
-- [Distributed validator technology](/staking/dvt/)
-
-## 7) Learn pages {#learn-pages}
-
-- [Energy consumption](/energy-consumption/)
-- [Governance](/governance/)
-- [Ethereum security and scam prevention](/security/)
-- [Blockchain bridges](/bridges/)
-- [Web3](/web3/)
-- [Zero-knowledge proofs](/zero-knowledge-proofs/)
-
-## 8) Learn hub & guides {#learn-hub}
-
-- [Learn hub](/learn/)
-- [Ethereum guides](/guides/)
-- [How to "create" an Ethereum account](/guides/how-to-create-an-ethereum-account/)
-- [How to use a wallet](/guides/how-to-use-a-wallet/)
-- [How to revoke smart contract access to your crypto funds](/guides/how-to-revoke-token-access/)
-- [How to bridge tokens to layer 2](/guides/how-to-use-a-bridge/)
-- [How to swap tokens](/guides/how-to-swap-tokens/)
-- [How to identify scam tokens](/guides/how-to-id-scam-tokens/)
-- [Learning quizzes](/quizzes/)
-
-## 9) Upgrades {#upgrades}
-
-- [Ethereum roadmap](/roadmap/)
-- [Ethereum vision](/roadmap/vision/)
-- [The Beacon Chain](/roadmap/beacon-chain/)
-- [The Merge](/roadmap/merge/)
-- [How The Merge impacted ETH supply](/roadmap/merge/issuance/)
-- [Ethereum Improvement Proposals (EIPs)](/eips/)
-- [Scaling Ethereum](/roadmap/scaling/)
-- [A more secure Ethereum](/roadmap/security/)
-- [Improving user experience](/roadmap/user-experience/)
-- [Future-proofing Ethereum](/roadmap/future-proofing/)
-- [Danksharding](/roadmap/danksharding/)
-- [Single slot finality](/roadmap/single-slot-finality/)
-- [Proposer-builder separation](/roadmap/pbs/)
-- [Secret leader election](/roadmap/secret-leader-election/)
-- [Account abstraction](/roadmap/account-abstraction/)
-- [Verkle trees](/roadmap/verkle-trees/)
-- [Statelessness, state expiry and history expiry](/roadmap/statelessness/)
-
-## 10) Community pages {#community-pages}
-
-- [Ethereum events](/community/events/)
-- [How can I get involved?](/community/get-involved/)
-- [Ethereum grants](/community/grants/)
-- [Language resources](/community/language-resources/)
-- [Online communities](/community/online/)
-- [Ethereum support](/community/support/)
-- [Community hub](/community/)
-- [Code of conduct](/community/code-of-conduct/#code-of-conduct)
-
-## 11) Foundational developer docs {#foundational-docs}
-
-- [Overview](/developers/docs/)
-- [Intro to Ethereum](/developers/docs/intro-to-ethereum/)
-- [Intro to ether](/developers/docs/intro-to-ether/)
-- [Intro to dapps](/developers/docs/dapps)
-- [Web2 vs Web3](/developers/docs/web2-vs-web3/)
-- [Accounts](/developers/docs/accounts/)
-- [Transactions](/developers/docs/transactions/)
-- [Blocks](/developers/docs/blocks/)
-- [Ethereum virtual machine (EVM)](/developers/docs/evm/)
-- [Opcodes for the EVM](/developers/docs/evm/opcodes/)
-- [Gas](/developers/docs/gas/)
-- [Networks](/developers/docs/networks/)
-- Developer docs sidebar
-
-## 12) Foundational docs - Nodes and clients {#nodes-and-clients}
-
-- [Nodes and clients](/developers/docs/nodes-and-clients/)
-- [Nodes as a service](/developers/docs/nodes-and-clients/nodes-as-a-service/)
-- [Ethereum archive node](/developers/docs/nodes-and-clients/archive-nodes/)
-- [Introduction to Ethereum bootnodes](/developers/docs/nodes-and-clients/bootnodes/)
-- [Light clients](/developers/docs/nodes-and-clients/light-clients/)
-- [Node architecture](/developers/docs/nodes-and-clients/node-architecture/)
-- [Client diversity](/developers/docs/nodes-and-clients/client-diversity/)
-- [Spin up your own Ethereum node](/developers/docs/nodes-and-clients/run-a-node/)
-
-## 13) Foundational docs - Proof-of-Stake {#PoS}
-
-- [Consensus mechanisms](/developers/docs/consensus-mechanisms/)
-- [Proof-of-stake](/developers/docs/consensus-mechanisms/pos/)
-- [Ethereum proof-of-stake attack and defense](/developers/docs/consensus-mechanisms/pos/attack-and-defense/)
-- [Attestations](/developers/docs/consensus-mechanisms/pos/attestations/)
-- [Block proposal](/developers/docs/consensus-mechanisms/pos/block-proposal/)
-- [Proof-of-stake FAQs](/developers/docs/consensus-mechanisms/pos/faqs/)
-- [Keys in proof-of-stake Ethereum](/developers/docs/consensus-mechanisms/pos/keys/)
-- [Proof-of-stake rewards and penalties](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/)
-- [Gasper](/developers/docs/consensus-mechanisms/pos/gasper/)
-- [Weak subjectivity](/developers/docs/consensus-mechanisms/pos/weak-subjectivity/)
-- [Proof-of-stake vs. proof-of-work](/developers/docs/consensus-mechanisms/pos/pos-vs-pow/)
-
-## 14) Foundational docs - Proof-of-Work {#PoW}
-
-- [Proof-of-work](/developers/docs/consensus-mechanisms/pow/)
-- [Mining](/developers/docs/consensus-mechanisms/pow/mining/)
-- [Mining algorithms](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/)
-- [Dagger-Hashimoto](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/)
-- [Ethash](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/)
-
-## 15) Ethereum stack developer docs {#ethereum-stack-docs}
-
-- [Introduction to the Ethereum stack](/developers/docs/ethereum-stack/)
-- [Deployment networks](/developers/docs/development-networks/)
-- [Development frameworks](/developers/docs/frameworks/)
-- [JavaScript APIs](/developers/docs/apis/javascript/)
-- [Backend APIs](/developers/docs/apis/backend/)
-- [JSON-RPC](/developers/docs/apis/json-rpc/)
-- [Data and analytics](/developers/docs/data-and-analytics/)
-- [Block explorers](/developers/docs/data-and-analytics/block-explorers/)
-- [Storage](/developers/docs/storage/)
-- [Integrated Development Environments (IDEs)](/developers/docs/ides/)
-- [Programming languages](/developers/docs/programming-languages/)
-- [Delphi](/developers/docs/programming-languages/delphi/)
-- [.NET](/developers/docs/programming-languages/dot-net/)
-- [Elixir](/developers/docs/programming-languages/elixir/)
-- [Golang](/developers/docs/programming-languages/golang/)
-- [Java](/developers/docs/programming-languages/java/)
-- [JavaScript](/developers/docs/programming-languages/javascript/)
-- [Python](/developers/docs/programming-languages/python/)
-- [Rust](/developers/docs/programming-languages/rust/)
-- [Ruby](/developers/docs/programming-languages/ruby/)
-- [Dart](/developers/docs/programming-languages/dart/)
-
-## 16) Smart contracts - Basics {#smart-contracts-basics}
-
-- [Smart contracts](/developers/docs/smart-contracts/)
-- [Smart contract languages](/developers/docs/smart-contracts/languages/)
-- [Smart contract anatomy](/developers/docs/smart-contracts/anatomy/)
-- [Smart contract libraries](/developers/docs/smart-contracts/libraries)
-- [Compiling smart contracts](/developers/docs/smart-contracts/compiling)
-- [Deploying smart contracts](/developers/docs/smart-contracts/deploying)
-- [Smart contract security](/developers/docs/smart-contracts/security/)
-
-## 17) Smart contracts - Advanced {#smart-contracts-advanced}
-
-- [Testing smart contracts](/developers/docs/smart-contracts/testing)
-- [Composability](/developers/docs/smart-contracts/composability/)
-- [Formal verification of smart contracts](/developers/docs/smart-contracts/formal-verification/)
-- [Verifying smart contracts](/developers/docs/smart-contracts/verifying/)
-- [Upgrading smart contracts](/developers/docs/smart-contracts/upgrading/)
-
-## 18) Whitepaper {#whitepaper}
-
-- [Whitepaper](/whitepaper/)
-
-## 19) Additional Learn pages {#learn-pages2}
-
-- [History](/history/)
-- [Glossary](/glossary/)
-- [Zero-knowledge proofs](/zero-knowledge-proofs/)
-
-## 20) Advanced developer docs {#advanced-docs}
-
-- [Standards](/developers/docs/standards/)
-- [Token standards](/developers/docs/standards/tokens/)
-- [ERC-20](/developers/docs/standards/tokens/erc-20/)
-- [ERC-721](/developers/docs/standards/tokens/erc-721/)
-- [ERC-777](/developers/docs/standards/tokens/erc-777/)
-- [ERC-1155](/developers/docs/standards/tokens/erc-1155/)
-- [ERC-4626](/developers/docs/standards/tokens/erc-4626/)
-- [Maximal extractable value (MEV)](/developers/docs/mev/)
-- [Oracles](/developers/docs/oracles/)
-- [Bridges](/developers/docs/bridges/)
-- [Data availability](/developers/docs/data-availability/)
-- [Design and UX in Web3](/developers/docs/design-and-ux/)
-
-## 21) Advanced developer docs - Scaling {#scaling-docs}
-
-- [Scaling](/developers/docs/scaling/)
-- [Optimistic rollups](/developers/docs/scaling/optimistic-rollups/)
-- [Zero-knowledge rollups](/developers/docs/scaling/zk-rollups/)
-- [State channels](/developers/docs/scaling/state-channels)
-- [Sidechains](/developers/docs/scaling/sidechains)
-- [Plasma](/developers/docs/scaling/plasma)
-- [Validium](/developers/docs/scaling/validium/)
-
-## 22) Research documentation {#research-documentation}
-
-- [Networking layer](/developers/docs/networking-layer/)
-- [Patricia Merkle Trees](/developers/docs/data-structures-and-encoding/patricia-merkle-trie/)
-- [Data structures and encoding](/developers/docs/data-structures-and-encoding/)
-- [Recursive-length prefix (RLP) serialization](/developers/docs/data-structures-and-encoding/rlp/)
-- [Network addresses](/developers/docs/networking-layer/network-addresses/)
-- [Simple serialize](/developers/docs/data-structures-and-encoding/ssz/)
-- [Web3 secret storage definition](/developers/docs/data-structures-and-encoding/web3-secret-storage/)
-- [The Portal network](/developers/docs/networking-layer/portal-network/)
-
-## 23) Miscellaneous {#miscellaneous}
-
-- [About ethereum.org](/about/)
-- [Enterprise Ethereum](/enterprise/)
-- [Brand assets](/assets/)
-- [About the Ethereum Foundation](/foundation/)
-- [Bug bounty program](/bug-bounty/)
-
-## 24) Contributing {#contributing}
-
-- [Contributing to ethereum.org](/contributing/)
-- [Adding developer tools](/contributing/adding-developer-tools/)
-- [Adding exchanges](/contributing/adding-exchanges/)
-- [Adding glossary terms](/contributing/adding-glossary-terms/)
-- [Adding layer 2s](/contributing/adding-layer-2s/)
-- [Adding products](/contributing/adding-products/)
-- [Adding staking products](/contributing/adding-staking-products/)
-- [Adding content resources](/contributing/content-resources/)
-- [Adding DeSci projects](/contributing/adding-desci-projects/)
-- [Adding wallets](/contributing/adding-wallets/)
-- [Adding a quiz](/contributing/quizzes/)
-- [Adding design resources](/contributing/design/adding-design-resources/)
-- [Design contribution to ethereum.org](/contributing/design/)
-- [Design principles](/contributing/design-principles/)
-- [Translation Program](/contributing/translation-program/)
-- [Translation guide](/contributing/translation-program/translation-guide/)
-- [Translator acknowledgements](/contributing/translation-program/)
-- [Our translators](/contributing/translation-program/contributors/)
-- [Translation FAQ](/contributing/translation-program/faq/)
-- [How to translate](/contributing/translation-program/how-to-translate/)
-- [Translation Program mission and vision](/contributing/translation-program/mission-and-vision/)
-- [Translator resources](/contributing/translation-program/resources/)
-
-## 25) Developer tutorials 1 {#tutorials-1}
-
-- [Calling a smart contract from JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/)
-- [How to write & deploy an NFT (Part 1/3 of NFT tutorial series)](/developers/tutorials/how-to-write-and-deploy-an-nft/)
-- [How to mint an NFT (Part 2/3 of NFT tutorial series)](/developers/tutorials/how-to-mint-an-nft/)
-- [How to view your NFT in your wallet (Part 3/3 of NFT tutorial series)](/developers/tutorials/how-to-view-nft-in-metamask/)
-- [Understand the ERC-20 token smart contract](/developers/tutorials/understand-the-erc-20-token-smart-contract/)
-- [Uniswap-v2 contract walkthrough](/developers/tutorials/uniswap-v2-annotated-code/)
-- Submit a tutorial
-
-## 26) Developer tutorials 2 {#tutorials-2}
-
-- [A Python developer's introduction to Ethereum](/developers/tutorials/a-developers-guide-to-ethereum-part-one/)
-- [Downsizing contracts to fight the contract size limit](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/)
-- [Hello world smart contract for beginners](/developers/tutorials/hello-world-smart-contract/)
-- [How to turn your Raspberry Pi 4 into a node just by flashing the MicroSD card](/developers/tutorials/run-node-raspberry-pi/)
-- [Interact with other contracts from Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/)
-- [NFT Minter tutorial](/developers/tutorials/nft-minter/)
-- [Reverse engineering a contract](/developers/tutorials/reverse-engineering-a-contract/)
-- [Sending tokens using ethers.js](/developers/tutorials/send-token-ethersjs/)
-- [The Graph: Fixing Web3 data querying](/developers/tutorials/the-graph-fixing-web3-data-querying/)
-- [Transfers and approval of ERC-20 tokens from a Solidity smart contract](/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/)
-- [Understanding the Yellowpaper's EVM specifications](/developers/tutorials/yellow-paper-evm/)
-
-## 27) Developer tutorials 3 {#tutorials-3}
-
-- [A guide to smart contract security tools](/developers/tutorials/guide-to-smart-contract-security-tools/)
-- [All you can cache](/developers/tutorials/all-you-can-cache/)
-- [EIP-1271: Signing and verifying smart contract signatures](/developers/tutorials/eip-1271-smart-contract-signatures/)
-- [ERC-20 contract walkthrough](/developers/tutorials/erc20-annotated-code/)
-- [ERC-20 with safety rails](/developers/tutorials/erc20-with-safety-rails/)
-- [Getting Started with Ethereum Development](/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/)
-- [How to mock Solidity smart contracts for testing](/developers/tutorials/how-to-mock-solidity-contracts-for-testing/)
-- [Kickstart your dapp frontend development with create-eth-app](/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/)
-- [Logging data from smart contracts with events](/developers/tutorials/logging-events-smart-contracts/)
-- [Merkle proofs for offline data integrity](/developers/tutorials/merkle-proofs-for-offline-data-integrity/)
-- [Sending transactions using Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/)
-- [Smart contract security checklist](/developers/tutorials/secure-development-workflow/)
-- [Testing simple smart contract with Waffle library](/developers/tutorials/waffle-test-simple-smart-contract/)
-- [Vyper ERC-721 contract walkthrough](/developers/tutorials/erc-721-vyper-annotated-code/)
-
-## 28) Developer tutorials 4 {#tutorials-4}
-
-- [Deploying your first smart contract](/developers/tutorials/deploying-your-first-smart-contract/)
-- [How to implement an ERC-721 market](/developers/tutorials/how-to-implement-an-erc721-market/)
-- [How to set up Tellor as your oracle](/developers/tutorials/how-to-use-tellor-as-your-oracle/)
-- [How to use Echidna to test smart contracts](/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/)
-- [How to use Manticore to find bugs in smart contracts](/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/)
-- [How to use Slither to find smart contract bugs](/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/)
-- [Learn foundational Ethereum topics with SQL](/developers/tutorials/learn-foundational-ethereum-topics-with-sql/)
-- [Monitoring Geth with InfluxDB and Grafana](/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/)
-- [Optimism standard bridge contract walkthrough](/developers/tutorials/optimism-std-bridge-annotated-code/)
-- [Set up web3.js to use the Ethereum blockchain in JavaScript](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/)
-- [Short ABIs for calldata optimization](/developers/tutorials/short-abi/)
-- [Smart contract security guidelines](/developers/tutorials/smart-contract-security-guidelines/)
-- [Testing ERC-20 tokens with Waffle](/developers/tutorials/testing-erc-20-tokens-with-waffle/)
-- [Token integration checklist](/developers/tutorials/token-integration-checklist/)
-- [Using WebSockets](/developers/tutorials/using-websockets/)
-- [Waffle: Dynamic mocking and testing contract calls](/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/)
-- [Waffle say hello world tutorial with Hardhat and ethers](/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/)
diff --git a/public/content/contributing/translation-program/faq/index.md b/public/content/contributing/translation-program/faq/index.md
index 59014938f38..b5fbc478f51 100644
--- a/public/content/contributing/translation-program/faq/index.md
+++ b/public/content/contributing/translation-program/faq/index.md
@@ -104,7 +104,7 @@ We recommend you leave names of brands, companies, and personnel untranslated as
To ensure a certain level of quality and consistency in our translations, we work with [Acolad](https://www.acolad.com/), one of the largest language service providers globally. Acolad has 20,000 professional linguists, which means that they can provide professional reviewers for every language and type of content we need.
-The review process is straightforward; once a certain [content bucket](/contributing/translation-program/content-buckets) is 100% translated, we order a review for that content bucket. The review process takes place directly in Crowdin. Once the review is complete, we update the website with the translated content.
+The review process is straightforward; once a set of content is 100% translated, we order a review for that content bucket. The review process takes place directly in Crowdin. Once the review is complete, we update the website with the translated content.
## How do I add content in my language? {#adding-foreign-language-content}
diff --git a/public/content/contributing/translation-program/how-to-translate/index.md b/public/content/contributing/translation-program/how-to-translate/index.md
index 7ca21afb455..c584d5c785f 100644
--- a/public/content/contributing/translation-program/how-to-translate/index.md
+++ b/public/content/contributing/translation-program/how-to-translate/index.md
@@ -43,8 +43,6 @@ A note on content buckets: we use 'content buckets' within Crowdin to get the hi
We encourage you to translate in this numerical order (1 → 2 → 3 → ⋯) to ensure the highest impact pages are translated first.
-[Learn more about ethereum.org content buckets](/contributing/translation-program/content-buckets/)
-
### Translate {#translate}
After selecting the file you want to translate, it will open in the online editor. If you have never used Crowdin before, you can use this quick guide to go over the basics.
diff --git a/public/content/contributing/translation-program/index.md b/public/content/contributing/translation-program/index.md
index 91b52e6878c..c87ec18f936 100644
--- a/public/content/contributing/translation-program/index.md
+++ b/public/content/contributing/translation-program/index.md
@@ -72,7 +72,6 @@ If you are contributing to the Translation Program or thinking about getting inv
- [Translation Style Guide](/contributing/translation-program/translators-guide/) _– instructions and tips for ethereum.org translators_
- [Translation FAQs](/contributing/translation-program/faq/) _– frequently asked questions and answers about the ethereum.org Translation Program_
- [Crowdin online editor guide](https://support.crowdin.com/online-editor/) _– an in-depth guide to using the Crowdin online editor and some of Crowdin's advanced features_
-- [Content buckets](/contributing/translation-program/content-buckets/) _– which pages are included in each content bucket of ethereum.org_
For other useful translation tools, translator communities and Translation Program blog posts, please visit the [Resources page](/contributing/translation-program/resources/).
diff --git a/public/content/contributing/translation-program/playbook/index.md b/public/content/contributing/translation-program/playbook/index.md
index f5f878404d3..12c75079590 100644
--- a/public/content/contributing/translation-program/playbook/index.md
+++ b/public/content/contributing/translation-program/playbook/index.md
@@ -302,7 +302,7 @@ This could be as simple as adding a banner or pop-up with a CTA to your product
If you have a Discord server or Telegram channel, it is easy to use that for outreach, communication with your translators, and acknowledging your contributors.
-Platforms like Twitter can also be helpful for onboarding new community members and publicly acknowledging your contributors.
+Platforms like X (formerly Twitter) can also be helpful for onboarding new community members and publicly acknowledging your contributors.
The Linux Foundation has created an extensive [Report on the 2020 FOSS contributor survey](https://www.linuxfoundation.org/wp-content/uploads/2020FOSSContributorSurveyReport_121020.pdf), analyzing open-source contributors and their motivations.
diff --git a/public/content/contributing/translation-program/resources/index.md b/public/content/contributing/translation-program/resources/index.md
index 1ee64fb7fc2..359d63512b5 100644
--- a/public/content/contributing/translation-program/resources/index.md
+++ b/public/content/contributing/translation-program/resources/index.md
@@ -13,7 +13,6 @@ You can find some useful guides and tools for ethereum.org translators, as well
- [Translation style guide](/contributing/translation-program/translators-guide/) _– instructions and tips for ethereum.org translators_
- [Translation FAQs](/contributing/translation-program/faq/) _– frequently asked questions and answers about the ethereum.org Translation Program_
- [Crowdin online editor guide](https://support.crowdin.com/online-editor/) _– an in-depth guide to using the Crowdin online editor and some of Crowdin's advanced features_
-- [Content buckets](/contributing/translation-program/content-buckets/) _– which pages are included in each content bucket of ethereum.org_
## Tools {#tools}
diff --git a/public/content/developers/docs/apis/backend/index.md b/public/content/developers/docs/apis/backend/index.md
index 47219134ea6..d1e17d5f1bd 100644
--- a/public/content/developers/docs/apis/backend/index.md
+++ b/public/content/developers/docs/apis/backend/index.md
@@ -39,7 +39,7 @@ These libraries abstract away much of the complexity of interacting directly wit
- [blastapi.io](https://blastapi.io/)
- [Documentation](https://docs.blastapi.io)
-- [Discord](https://discord.gg/bwarelabs)
+- [Discord](https://discord.gg/SaRqmRUjjQ)
**BlockPi -** **_Provide more efficient and fast RPC services_**
diff --git a/public/content/developers/docs/consensus-mechanisms/poa/index.md b/public/content/developers/docs/consensus-mechanisms/poa/index.md
index b38ac4e154e..f63d1070a1c 100644
--- a/public/content/developers/docs/consensus-mechanisms/poa/index.md
+++ b/public/content/developers/docs/consensus-mechanisms/poa/index.md
@@ -16,7 +16,7 @@ Proof-of-authority is a modified version of **[proof-of-stake](/developers/docs/
Proof-of-authority requires trusting a set of authorized signers that are set in the [genesis block](/glossary/#genesis-block). In most current implementations, all authorized signers retain equal power and privileges when determining consensus of the chain. The idea behind reputation staking is every authorized validator is well-known to everyone through things like know your customer (KYC), or by having a well-known organization being the only validator—this way if a validator does anything wrong, their identity is known.
-There are multiple implementations of PoA, but the standard Ethereum implementation is **clique**, which implements [EIP-225](https://eips.ethereum.org/EIPS/eip-225). Clique is developer-friendly and an easy-to-implement standard, supporting all client syncing types. Other implementations include [IBFT 2.0](https://besu.hyperledger.org/stable/private-networks/concepts/poa) and [Aura](https://openethereum.github.io/Chain-specification).
+There are multiple implementations of PoA, but the standard Ethereum implementation is **clique**, which implements [EIP-225](https://eips.ethereum.org/EIPS/eip-225). Clique is developer-friendly and an easy-to-implement standard, supporting all client syncing types. Other implementations include [IBFT 2.0](https://besu.hyperledger.org/private-networks/how-to/configure/consensus) and [Aura](https://openethereum.github.io/Chain-specification).
## How it works {#how-it-works}
@@ -65,7 +65,7 @@ If for example there are 10 authorized signers and each signer is allowed to cre
- [PoA in blockchain](https://medium.com/techskill-brew/proof-of-authority-or-poa-in-blockchain-part-11-blockchain-series-be15b3321cba)
- [Clique explained](https://medium.com/@Destiner/clique-cross-client-proof-of-authority-algorithm-for-ethereum-8b2a135201d)
- [Deprecated PoA, Aura specification](https://openethereum.github.io/Chain-specification)
-- [IBFT 2.0, another PoA implementation](https://besu.hyperledger.org/stable/private-networks/concepts/poa)
+- [IBFT 2.0, another PoA implementation](https://besu.hyperledger.org/private-networks/how-to/configure/consensus)
### More of a visual learner? {#visual-learner}
@@ -77,3 +77,4 @@ Watch a visual explanation of proof-of-authority:
- [Proof-of-work](/developers/docs/consensus-mechanisms/pow/)
- [Proof-of-stake](/developers/docs/consensus-mechanisms/pos/)
+
diff --git a/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md
index a8374a84fbb..0d80d39425d 100644
--- a/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md
+++ b/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md
@@ -34,6 +34,6 @@ Finally, checkpoints can be requested from other nodes; perhaps another Ethereum
- [Weak subjectivity in Eth2](https://notes.ethereum.org/@adiasg/weak-subjectvity-eth2)
- [Vitalik: How I learned to love weak subjectivity](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)
-- [Weak subjectivity (Teku docs)](https://docs.teku.consensys.net/en/latest/Concepts/Weak-Subjectivity/)
+- [Weak subjectivity (Teku docs)](https://docs.teku.consensys.io/concepts/weak-subjectivity/)
- [Phase-0 Weak subjectivity guide](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/weak-subjectivity.md)
- [Analysis of weak subjectivity in Ethereum 2.0](https://github.com/runtimeverification/beacon-chain-verification/blob/master/weak-subjectivity/weak-subjectivity-analysis.pdf)
diff --git a/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md
index dea5013e395..6e53fe3a4a5 100644
--- a/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md
+++ b/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md
@@ -52,7 +52,7 @@ Read more about the [benefits of running your own node](/developers/docs/nodes-a
Here is a list of some of the most popular Ethereum node providers, feel free to add any that are missing! Each node service offers different benefits and features in addition to free or paid tiers, you should investigate which ones best suit your needs prior to making a decision.
- [**Alchemy**](https://alchemy.com/)
- - [Docs](https://docs.alchemyapi.io/)
+ - [Docs](https://www.alchemy.com/docs/)
- Features
- Largest free tier with 300M compute units per month (~30M getLatestBlock requests)
- Multichain support for Polygon, Starknet, Optimism, Arbitrum
diff --git a/public/content/developers/tutorials/erc20-annotated-code/index.md b/public/content/developers/tutorials/erc20-annotated-code/index.md
index f61f97ef5a0..d49131777b4 100644
--- a/public/content/developers/tutorials/erc20-annotated-code/index.md
+++ b/public/content/developers/tutorials/erc20-annotated-code/index.md
@@ -22,7 +22,7 @@ This is annotated source code. If you want to implement ERC-20,
## The Interface {#the-interface}
The purpose of a standard like ERC-20 is to allow many tokens implementations that are interoperable across applications, like wallets and decentralized exchanges. To achieve that, we create an
-[interface](https://www.geeksforgeeks.org/solidity-basics-of-interface/). Any code that needs to use the token contract
+[interface](https://www.geeksforgeeks.org/solidity/solidity-basics-of-interface/). Any code that needs to use the token contract
can use the same definitions in the interface and be compatible with all token contracts that use it, whether it is a wallet such as
MetaMask, a dapp such as etherscan.io, or a different contract such as liquidity pool.
@@ -90,7 +90,7 @@ every node in the blockchain run it. This kind of function does not generate a t
**Note:** In theory it might appear that a contract's creator could cheat by returning a smaller total supply than the real value, making each token appear
more valuable than it actually is. However, that fear ignores the true nature of the blockchain. Everything that happens on the blockchain can be verified by
every node. To achieve this, every contract's machine language code and storage is available on every node. While you are not required to publish the Solidity
-code for your contract, nobody would take you seriously unless you publish the source code and the version of Solidity with which it was complied, so it can
+code for your contract, nobody would take you seriously unless you publish the source code and the version of Solidity with which it was compiled, so it can
be verified against the machine language code you provided.
For example, see [this contract](https://eth.blockscout.com/address/0xa530F85085C6FE2f866E7FdB716849714a89f4CD?tab=contract).
diff --git a/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md
index 519cddd9d33..69c0c6554b1 100644
--- a/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md
+++ b/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md
@@ -18,13 +18,13 @@ We’ll take you from signing up with Alchemy to writing your first web3 script!
## 1. Sign Up for a Free Alchemy Account {#sign-up-for-a-free-alchemy-account}
-Creating an account with Alchemy is easy, [sign up for free here](https://auth.alchemyapi.io/signup).
+Creating an account with Alchemy is easy, [sign up for free here](https://auth.alchemy.com/).
## 2. Create an Alchemy App {#create-an-alchemy-app}
To communicate with the Ethereum chain and to use Alchemy’s products, you need an API key to authenticate your requests.
-You can [create API keys from the dashboard](http://dashboard.alchemyapi.io/). To make a new key, navigate to “Create App” as shown below:
+You can [create API keys from the dashboard](https://dashboard.alchemy.com/). To make a new key, navigate to “Create App” as shown below:
Special thanks to [_ShapeShift_](https://shapeshift.com/) _for letting us show their dashboard!_
@@ -144,6 +144,6 @@ The latest block number is 11043912
**Woo! Congrats! You just wrote your first web3 script using Alchemy 🎉**
-Not sure what to do next? Try deploying your first smart contract and get your hands dirty with some solidity programming in our [Hello World Smart Contract Guide](https://docs.alchemyapi.io/tutorials/hello-world-smart-contract), or test your dashboard knowledge with the [Dashboard Demo App](https://docs.alchemyapi.io/tutorials/demo-app)!
+Not sure what to do next? Try deploying your first smart contract and get your hands dirty with some solidity programming in our [Hello World Smart Contract Guide](https://www.alchemy.com/docs/hello-world-smart-contract), or test your dashboard knowledge with the [Dashboard Demo App](https://docs.alchemyapi.io/tutorials/demo-app)!
-_[Sign up with Alchemy for free](https://auth.alchemyapi.io/signup), check out our [documentation](https://docs.alchemyapi.io/), and for the latest news, follow us on [Twitter](https://twitter.com/AlchemyPlatform)_.
+_[Sign up with Alchemy for free](https://auth.alchemy.com/), check out our [documentation](https://www.alchemy.com/docs/), and for the latest news, follow us on [Twitter](https://twitter.com/AlchemyPlatform)_.
diff --git a/public/content/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/developers/tutorials/guide-to-smart-contract-security-tools/index.md
index d997f04f806..f77c4943046 100644
--- a/public/content/developers/tutorials/guide-to-smart-contract-security-tools/index.md
+++ b/public/content/developers/tutorials/guide-to-smart-contract-security-tools/index.md
@@ -48,7 +48,7 @@ Start with Slither's built-in detectors to ensure that no simple bugs are presen
To effectively test and verify your code, you must identify the areas that need attention. As your resources spent on security are limited, scoping the weak or high-value parts of your codebase is important to optimize your effort. Threat modeling can help. Consider reviewing:
- [Rapid Risk Assessments](https://infosec.mozilla.org/guidelines/risk/rapid_risk_assessment.html) (our preferred approach when time is short)
-- [Guide to Data-Centric System Threat Modeling](https://csrc.nist.gov/publications/detail/sp/800-154/draft) (aka NIST 800-154)
+- [Guide to Data-Centric System Threat Modeling](https://csrc.nist.gov/pubs/sp/800/154/ipd) (aka NIST 800-154)
- [Shostack threat modeling](https://www.amazon.com/Threat-Modeling-Designing-Adam-Shostack/dp/1118809998)
- [STRIDE]() / [DREAD]()
- [PASTA](https://wikipedia.org/wiki/Threat_model#P.A.S.T.A.)
diff --git a/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md
index b636638c7dd..cc1512e4753 100644
--- a/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md
+++ b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md
@@ -18,7 +18,7 @@ lang: en
published: 2021-10-25
---
-This guide is for you if you are new to blockchain development and don't know where to start or how to deploy and interact with smart contracts. We will walk through creating and deploying a simple, smart contract on the Goerli test network using [MetaMask](https://metamask.io), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org), and [Alchemy](https://alchemyapi.io/eth).
+This guide is for you if you are new to blockchain development and don't know where to start or how to deploy and interact with smart contracts. We will walk through creating and deploying a simple, smart contract on the Goerli test network using [MetaMask](https://metamask.io), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org), and [Alchemy](https://alchemy.com/eth).
You'll need an Alchemy account to complete this tutorial. [Sign up for a free account](https://www.alchemy.com/).
@@ -32,7 +32,7 @@ There are many ways to make requests to the Ethereum chain. For simplicity, we'l
### Create your app and API key {#create-your-app-and-api-key}
-Once you've created an Alchemy account, you can generate an API key by creating an app. This will allow you to make requests to the Goerli testnet. If you're not familiar with testnets you can [read Alchemy's guide to choosing a network](https://docs.alchemyapi.io/guides/choosing-a-network).
+Once you've created an Alchemy account, you can generate an API key by creating an app. This will allow you to make requests to the Goerli testnet. If you're not familiar with testnets you can [read Alchemy's guide to choosing a network](https://www.alchemy.com/docs/choosing-a-web3-network).
On the Alchemy dashboard, find the **Apps** dropdown in the navigation bar and click **Create App**.
@@ -223,7 +223,7 @@ We’ve created a MetaMask wallet, Alchemy account, and written our smart contra
Every transaction sent from your wallet requires a signature using your unique private key. To provide our program with this permission, we can safely store our private key in an environment file. We will also store an API key for Alchemy here.
-> To learn more about sending transactions, check out [this tutorial](https://docs.alchemyapi.io/alchemy/tutorials/sending-transactions-using-web3-and-alchemy) on sending transactions using web3.
+> To learn more about sending transactions, check out [this tutorial](https://www.alchemy.com/docs/hello-world-smart-contract#step-11-connect-metamask--alchemy-to-your-project) on sending transactions using web3.
First, install the dotenv package in your project directory:
@@ -367,7 +367,7 @@ The `From` address should match your MetaMask account address and the `To` addre
Congrats! You just deployed a smart contract to an Ethereum testnet.
-To understand what’s going on under the hood, let’s navigate to the Explorer tab in our [Alchemy dashboard](https://dashboard.alchemyapi.io/explorer). If you have multiple Alchemy apps make sure to filter by app and select **Hello World**.
+To understand what’s going on under the hood, let’s navigate to the Explorer tab in our [Alchemy dashboard](https://dashboard.alchemy.com/explorer). If you have multiple Alchemy apps make sure to filter by app and select **Hello World**.

@@ -680,9 +680,9 @@ By the end of this tutorial, you'll know how to:
- Read data from your smart contract using the [Alchemy Web3](https://docs.alchemy.com/alchemy/documentation/alchemy-web3) API
- Sign Ethereum transactions using MetaMask
-For this dapp, we'll be using [React](https://reactjs.org/) as our frontend framework; however, it's important to note that we won't be spending much time breaking down its fundamentals, as we'll mostly be focusing on bringing Web3 functionality to our project.
+For this dapp, we'll be using [React](https://react.dev/) as our frontend framework; however, it's important to note that we won't be spending much time breaking down its fundamentals, as we'll mostly be focusing on bringing Web3 functionality to our project.
-As a prerequisite, you should have a beginner-level understanding of React. If not, we recommend completing the official [Intro to React tutorial](https://reactjs.org/tutorial/tutorial.html).
+As a prerequisite, you should have a beginner-level understanding of React. If not, we recommend completing the official [Intro to React tutorial](https://react.dev/learn).
### Clone the starter files {#clone-the-starter-files}
@@ -790,7 +790,7 @@ const onUpdatePressed = async () => {
}
```
-- [`useEffect`](https://reactjs.org/docs/hooks-effect.html)- this is a React hook that is called after your component is rendered. Because it has an empty array `[]` prop passed into it \(see line 4\), it will only be called on the component's _first_ render. Here we'll load the current message stored in our smart contract, call our smart contract and wallet listeners, and update our UI to reflect whether a wallet is already connected.
+- [`useEffect`](https://legacy.reactjs.org/docs/hooks-effect.html)- this is a React hook that is called after your component is rendered. Because it has an empty array `[]` prop passed into it \(see line 4\), it will only be called on the component's _first_ render. Here we'll load the current message stored in our smart contract, call our smart contract and wallet listeners, and update our UI to reflect whether a wallet is already connected.
- `addSmartContractListener`- this function sets up a listener that will watch for our HelloWorld contract's `UpdatedMessages` event and update our UI when the message is changed in our smart contract.
- `addWalletListener`- this function sets up a listener that detects changes in the user's MetaMask wallet state, such as when the user disconnects their wallet or switches addresses.
- `connectWalletPressed`- this function will be called to connect the user's MetaMask wallet to our dapp.
@@ -842,7 +842,7 @@ If you scan this code carefully, you'll notice where we use our various state va
- On lines 6-12, if the user's wallet is connected \(i.e. `walletAddress.length > 0`\), we display a truncated version of the user `walletAddress` in the button with ID "walletButton;" otherwise it simply says "Connect Wallet."
- On line 17, we display the current message stored in the smart contract, which is captured in the `message` string.
-- On lines 23-26, we use a [controlled component](https://reactjs.org/docs/forms.html#controlled-components) to update our `newMessage` state variable when the input in the text field changes.
+- On lines 23-26, we use a [controlled component](https://legacy.reactjs.org/docs/forms.html#controlled-components) to update our `newMessage` state variable when the input in the text field changes.
In addition to our state variables, you'll also see that `connectWalletPressed` and `onUpdatePressed` functions are called when the buttons with IDs `publishButton` and `walletButton` are clicked respectively.
diff --git a/public/content/developers/tutorials/ipfs-decentralized-ui/index.md b/public/content/developers/tutorials/ipfs-decentralized-ui/index.md
index fc554d6156c..0e04779fb4a 100644
--- a/public/content/developers/tutorials/ipfs-decentralized-ui/index.md
+++ b/public/content/developers/tutorials/ipfs-decentralized-ui/index.md
@@ -10,7 +10,7 @@ published: 2024-06-29
You wrote an incredible new dapp. You've even written a [user interface](/developers/tutorials/creating-a-wagmi-ui-for-your-contract/) for it. But now you're afraid that somebody will attempt to censor it by bringing down your user interface, which is just one server off in the cloud. In this tutorial you learn how to avoid censorship by putting your user interface up on **[interplanetary file system (IPFS)](https://ipfs.tech/developers/)** so anybody interested will be able to pin it on a server for future access.
-You could use a third-party service such as [Fleek](https://docs.fleek.xyz/docs) to do all the work. This tutorial is for people who want to do enough to understand what they are doing even if it is more work.
+You could use a third-party service such as [Fleek](https://resources.fleek.xyz/docs/) to do all the work. This tutorial is for people who want to do enough to understand what they are doing even if it is more work.
## Getting started locally {#getting-started-locally}
@@ -18,7 +18,7 @@ There are multiple [third-party IPFS providers](https://docs.ipfs.tech/how-to/wo
1. Install the [IPFS user interface](https://docs.ipfs.tech/install/ipfs-desktop/#install-instructions).
-2. Create a directory with your web site. If you are using [Vite](https://vitejs.dev/), use this command:
+2. Create a directory with your web site. If you are using [Vite](https://vite.dev/), use this command:
```sh
pnpm vite build
diff --git a/public/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md
index 3200f08a4e9..9da4038f225 100644
--- a/public/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md
+++ b/public/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md
@@ -29,7 +29,7 @@ It is using [create-react-app](https://github.com/facebook/create-react-app) und
### React & create-react-app {#react--create-react-app}
-First of all the heart of the app: React and all the additional features coming with _create-react-app_. Only using this is a great option if you do not want to integrate Ethereum. [React](https://reactjs.org/) itself makes building interactive UI's really easy. It may not be as beginner-friendly as [Vue](https://vuejs.org/), but it is still mostly used, has more features and most importantly thousands of additional libraries to choose from. The _create-react-app_ makes it really easy to start with it as well and includes:
+First of all the heart of the app: React and all the additional features coming with _create-react-app_. Only using this is a great option if you do not want to integrate Ethereum. [React](https://react.dev/) itself makes building interactive UI's really easy. It may not be as beginner-friendly as [Vue](https://vuejs.org/), but it is still mostly used, has more features and most importantly thousands of additional libraries to choose from. The _create-react-app_ makes it really easy to start with it as well and includes:
- React, JSX, ES6, TypeScript, Flow syntax support.
- Language extras beyond ES6 like the object spread operator.
@@ -38,7 +38,7 @@ First of all the heart of the app: React and all the additional features coming
- A live development server that warns about common mistakes.
- A build script to bundle JS, CSS, and images for production, with hashes and sourcemaps.
-The _create-eth-app_ in particular is making use of the new [hooks effects](https://reactjs.org/docs/hooks-effect.html). A method to write powerful, yet very small so-called functional components. See below section about Apollo for how they are used in _create-eth-app_.
+The _create-eth-app_ in particular is making use of the new [hooks effects](https://legacy.reactjs.org/docs/hooks-effect.html). A method to write powerful, yet very small so-called functional components. See below section about Apollo for how they are used in _create-eth-app_.
### Yarn Workspaces {#yarn-workspaces}
@@ -78,7 +78,7 @@ On top you can choose from several different templates. So far you can use an Aa
### Aave {#aave}
-[Aave](https://aave.com/) is a decentralized money lending market. Depositors provide liquidity to the market to earn a passive income, while borrowers are able to borrow using collaterals. One unique feature of Aave are those [flash loans](https://docs.aave.com/developers/guides/flash-loans) which allow you to borrow money without any collateral, as long as you return the loan within one transaction. This can be useful for example for giving you extra cash on arbitrage trading.
+[Aave](https://aave.com/) is a decentralized money lending market. Depositors provide liquidity to the market to earn a passive income, while borrowers are able to borrow using collaterals. One unique feature of Aave are those [flash loans](https://aave.com/docs/developers/flash-loans) which allow you to borrow money without any collateral, as long as you return the loan within one transaction. This can be useful for example for giving you extra cash on arbitrage trading.
Traded tokens that earn you interests are called _aTokens_.
@@ -102,4 +102,4 @@ Unfortunately, at the time of this writing the integration is only for Uniswap v
## What's next? {#whats-next}
-If you have questions about _create-eth-app_, go to the [Sablier community server](https://discord.gg/bsS8T47), where you can get in touch with the authors of _create-eth-app_. As some first next steps you might want to integrate a UI framework like [Material UI](https://material-ui.com/), write GraphQL queries for the data that you actually need and setup the deployment.
+If you have questions about _create-eth-app_, go to the [Sablier community server](https://discord.gg/bsS8T47), where you can get in touch with the authors of _create-eth-app_. As some first next steps you might want to integrate a UI framework like [Material UI](https://mui.com/material-ui/), write GraphQL queries for the data that you actually need and setup the deployment.
diff --git a/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md
index beadc961150..ab08643be71 100644
--- a/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md
+++ b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md
@@ -12,7 +12,7 @@ sourceUrl: https://paulapivat.com/post/query_ethereum/
Many Ethereum tutorials target developers, but there’s a lack of educational resources for data analysts or for people who wish to see onchain data without running a client or node.
-This tutorial helps readers understand fundamental Ethereum concepts including transactions, blocks and gas by querying onchain data with structured query language (SQL) through an interface provided by [Dune Analytics](https://dune.xyz/home).
+This tutorial helps readers understand fundamental Ethereum concepts including transactions, blocks and gas by querying onchain data with structured query language (SQL) through an interface provided by [Dune Analytics](https://dune.com/).
Onchain data can help us understand Ethereum, the network, and as an economy for computing power and should serve as a base for understanding challenges facing Ethereum today (i.e., rising gas prices) and, more importantly, discussions around scaling solutions.
@@ -22,7 +22,7 @@ A user’s journey on Ethereum starts with initializing a user-controlled accoun
Any account can be viewed on a block explorer like [Etherscan](https://etherscan.io/) or [Blockscout](https://eth.blockscout.com/). Block explorers are a portal to Ethereum's data. They display, in real-time, data on blocks, transactions, miners, accounts and other onchain activity (see [here](/developers/docs/data-and-analytics/block-explorers/)).
-However, a user may wish to query the data directly to reconcile the information provided by external block explorers. [Dune Analytics](https://duneanalytics.com/) provides this capability to anyone with some knowledge of SQL.
+However, a user may wish to query the data directly to reconcile the information provided by external block explorers. [Dune Analytics](https://dune.com/) provides this capability to anyone with some knowledge of SQL.
For reference, the smart contract account for the Ethereum Foundation (EF) can be viewed on [Blockscout](https://eth.blockscout.com/address/0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe).
@@ -70,7 +70,7 @@ This will yield the same information as provided on Etherscan's transaction page

-You can find dashboard [here](https://duneanalytics.com/paulapivat/Learn-Ethereum). Click on the table to see the query (also see above).
+You can find dashboard [here](https://dune.com/paulapivat/Learn-Ethereum). Click on the table to see the query (also see above).
### Breaking Down Transactions {#breaking_down_transactions}
@@ -111,7 +111,7 @@ Each block contains a reference to it parent block. This is shown below between

-Here is the [query](https://duneanalytics.com/queries/44856/88292) on Dune Analytics:
+Here is the [query](https://dune.com/queries/44856/88292) on Dune Analytics:
```sql
SELECT
@@ -264,6 +264,6 @@ ORDER BY block_time DESC
With this tutorial, we understand foundational Ethereum concepts and how the Ethereum blockchain works by querying and getting a feel for onchain data.
-The dashboard that holds all code used in this tutorial can be found [here](https://duneanalytics.com/paulapivat/Learn-Ethereum).
+The dashboard that holds all code used in this tutorial can be found [here](https://dune.com/paulapivat/Learn-Ethereum).
For more use of data to explore web3 [find me on Twitter](https://twitter.com/paulapivat).
diff --git a/public/content/developers/tutorials/nft-minter/index.md b/public/content/developers/tutorials/nft-minter/index.md
index 293d1edb685..82eafc4c3cc 100644
--- a/public/content/developers/tutorials/nft-minter/index.md
+++ b/public/content/developers/tutorials/nft-minter/index.md
@@ -16,9 +16,9 @@ By building an NFT minter — a simple UI where you can input a link to your dig
- Call smart contract methods from your frontend
- Sign transactions using MetaMask
-In this tutorial, we will be using [React](https://reactjs.org/) as our frontend framework. Because this tutorial is primarily focused on Web3 development, we won't be spending much time breaking down React fundamentals. Instead, we'll be focusing on bringing functionality to our project.
+In this tutorial, we will be using [React](https://react.dev/) as our frontend framework. Because this tutorial is primarily focused on Web3 development, we won't be spending much time breaking down React fundamentals. Instead, we'll be focusing on bringing functionality to our project.
-As a prerequisite, you should have a beginner-level understanding of React—know how components, props, useState/useEffect, and basic function calling works. If you've never heard of any of those terms before, you may want to check out this [Intro to React tutorial](https://reactjs.org/tutorial/tutorial.html). For the more visual learners, we highly recommend this excellent [Full Modern React Tutorial](https://www.youtube.com/playlist?list=PL4cUxeGkcC9gZD-Tvwfod2gaISzfRiP9d) video series by Net Ninja.
+As a prerequisite, you should have a beginner-level understanding of React—know how components, props, useState/useEffect, and basic function calling works. If you've never heard of any of those terms before, you may want to check out this [Intro to React tutorial](https://react.dev/learn/tutorial-tic-tac-toe). For the more visual learners, we highly recommend this excellent [Full Modern React Tutorial](https://www.youtube.com/playlist?list=PL4cUxeGkcC9gZD-Tvwfod2gaISzfRiP9d) video series by Net Ninja.
And if you haven't already, you'll definitely need an Alchemy account to complete this tutorial as well as build anything on the blockchain. Sign up for a free account [here](https://alchemy.com/).
@@ -40,7 +40,7 @@ An NFT's metadata is really what brings it to life, allowing it to have properti
In this tutorial, we're going to focus on part 2, calling an existing NFT's smart contract minting function using our React UI.
-[Here's a link](https://ropsten.etherscan.io/address/0x4C4a07F737Bf57F6632B6CAB089B78f62385aCaE) to the ERC-721 NFT smart contract we will be calling in this tutorial. If you'd like to learn how we made it, we highly recommend that you check out our other tutorial, ["How to Create an NFT"](https://docs.alchemyapi.io/alchemy/tutorials/how-to-create-an-nft).
+[Here's a link](https://ropsten.etherscan.io/address/0x4C4a07F737Bf57F6632B6CAB089B78f62385aCaE) to the ERC-721 NFT smart contract we will be calling in this tutorial. If you'd like to learn how we made it, we highly recommend that you check out our other tutorial, ["How to Create an NFT"](https://www.alchemy.com/docs/how-to-create-an-nft).
Cool, now that we understand how making an NFT works, let's clone our starter files!
@@ -99,7 +99,7 @@ const [description, setDescription] = useState("")
const [url, setURL] = useState("")
```
-Never heard of React state variables or state hooks? Check out [these](https://reactjs.org/docs/hooks-state.html) docs.
+Never heard of React state variables or state hooks? Check out [these](https://legacy.reactjs.org/docs/hooks-state.html) docs.
Here's what each of the variables represent:
@@ -125,7 +125,7 @@ const onMintPressed = async () => {
}
```
-- [`useEffect`](https://reactjs.org/docs/hooks-effect.html) - this is a React hook that is called after your component is rendered. Because it has an empty array `[]` prop passed into it (see line 3), it will only be called on the component's _first_ render. Here we'll call our wallet listener and another wallet function to update our UI to reflect whether a wallet is already connected.
+- [`useEffect`](https://legacy.reactjs.org/docs/hooks-effect.html) - this is a React hook that is called after your component is rendered. Because it has an empty array `[]` prop passed into it (see line 3), it will only be called on the component's _first_ render. Here we'll call our wallet listener and another wallet function to update our UI to reflect whether a wallet is already connected.
- `connectWalletPressed` - this function will be called to connect the user's MetaMask wallet to our dapp.
- `onMintPressed` - this function will be called to mint the user's NFT.
@@ -573,7 +573,7 @@ As with our `connectWallet`function return types, we're returning JSON objects s
Now that we have a way to upload our NFT metadata to IPFS via our `pinJSONToIPFS` function, we're going to need a way to load an instance of our smart contract so we can call its `mintNFT` function.
-As we mentioned earlier, in this tutorial we will be using [this existing NFT smart contract](https://ropsten.etherscan.io/address/0x4C4a07F737Bf57F6632B6CAB089B78f62385aCaE); however, if you'd like to learn how we made it, or make one yourself, we highly recommend you check out our other tutorial, ["How to Create an NFT."](https://docs.alchemyapi.io/alchemy/tutorials/how-to-create-an-nft).
+As we mentioned earlier, in this tutorial we will be using [this existing NFT smart contract](https://ropsten.etherscan.io/address/0x4C4a07F737Bf57F6632B6CAB089B78f62385aCaE); however, if you'd like to learn how we made it, or make one yourself, we highly recommend you check out our other tutorial, ["How to Create an NFT."](https://www.alchemy.com/docs/how-to-create-an-nft).
### The contract ABI {#contract-abi}
@@ -863,6 +863,6 @@ To recap, by building an NFT minter, you successfully learned how to:
- Call smart contract methods from your frontend
- Sign transactions using MetaMask
-Presumably, you'd like to be able to show off the NFTs minted via your dapp in your wallet — so be sure to check out our quick tutorial [How to View Your NFT in Your Wallet](https://docs.alchemyapi.io/alchemy/tutorials/how-to-write-and-deploy-a-nft-smart-contract/how-to-view-your-nft-in-your-wallet)!
+Presumably, you'd like to be able to show off the NFTs minted via your dapp in your wallet — so be sure to check out our quick tutorial [How to View Your NFT in Your Wallet](https://www.alchemy.com/docs/how-to-view-your-nft-in-your-mobile-wallet)!
And, as always, if you have any questions, we're here to help in the [Alchemy Discord](https://discord.gg/gWuC7zB). We can't wait to see how you apply the concepts from this tutorial to your future projects!
diff --git a/public/content/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/developers/tutorials/smart-contract-security-guidelines/index.md
index 234ad0541cd..460908c9961 100644
--- a/public/content/developers/tutorials/smart-contract-security-guidelines/index.md
+++ b/public/content/developers/tutorials/smart-contract-security-guidelines/index.md
@@ -22,7 +22,7 @@ Documentation can be written at different levels, and should be updated while im
- **A plain English description of the system**, describing what the contracts do and any assumptions on the codebase.
- **Schema and architectural diagrams**, including the contract interactions and the state machine of the system. [Slither printers](https://github.com/crytic/slither/wiki/Printer-documentation) can help to generate these schemas.
-- **Thorough code documentation**, the [Natspec format](https://solidity.readthedocs.io/en/develop/natspec-format.html) can be used for Solidity.
+- **Thorough code documentation**, the [Natspec format](https://docs.soliditylang.org/en/develop/natspec-format.html) can be used for Solidity.
### Onchain vs offchain computation {#onchain-vs-offchain-computation}
@@ -62,7 +62,7 @@ The architecture of your codebase should make your code easy to review. Avoid ar
### Avoid known pitfalls {#avoid-known-pitfalls}
- **Be aware of the most common security issues.** There are many online resources to learn about common issues, such as [Ethernaut CTF](https://ethernaut.openzeppelin.com/), [Capture the Ether](https://capturetheether.com/), or [Not so smart contracts](https://github.com/crytic/not-so-smart-contracts/).
-- **Be aware of the warnings sections in the [Solidity documentation](https://solidity.readthedocs.io/en/latest/).** The warnings sections will inform you about non-obvious behavior of the language.
+- **Be aware of the warnings sections in the [Solidity documentation](https://docs.soliditylang.org/en/latest/).** The warnings sections will inform you about non-obvious behavior of the language.
### Dependencies {#dependencies}
diff --git a/public/content/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/developers/tutorials/uniswap-v2-annotated-code/index.md
index 7ea02292bc9..334285b47e6 100644
--- a/public/content/developers/tutorials/uniswap-v2-annotated-code/index.md
+++ b/public/content/developers/tutorials/uniswap-v2-annotated-code/index.md
@@ -10,7 +10,7 @@ lang: en
## Introduction {#introduction}
-[Uniswap v2](https://uniswap.org/whitepaper.pdf) can create an exchange market between any two ERC-20 tokens. In this article we will go over the source code for the contracts that implement this protocol and see why they are written this way.
+[Uniswap v2](https://app.uniswap.org/whitepaper.pdf) can create an exchange market between any two ERC-20 tokens. In this article we will go over the source code for the contracts that implement this protocol and see why they are written this way.
### What Does Uniswap Do? {#what-does-uniswap-do}
@@ -26,7 +26,7 @@ When liquidity providers want their assets back they can burn the pool tokens an
### Why v2? Why not v3? {#why-v2}
-[Uniswap v3](https://uniswap.org/whitepaper-v3.pdf) is an upgrade that is much more complicated than the v2. It is easier to first learn v2 and then go to v3.
+[Uniswap v3](https://app.uniswap.org/whitepaper-v3.pdf) is an upgrade that is much more complicated than the v2. It is easier to first learn v2 and then go to v3.
### Core Contracts vs Periphery Contracts {#contract-types}
@@ -437,7 +437,7 @@ If there is new liquidity on which to collect a protocol fee. You can see the sq
uint liquidity = numerator / denominator;
```
-This complicated calculation of fees is explained in [the whitepaper](https://uniswap.org/whitepaper.pdf) on page 5. We know that between the time `kLast` was calculated and the present no liquidity was added or removed (because we run this calculation every time liquidity is added or removed, before it actually changes), so any change in `reserve0 * reserve1` has to come from transaction fees (without them we'd keep `reserve0 * reserve1` constant).
+This complicated calculation of fees is explained in [the whitepaper](https://app.uniswap.org/whitepaper.pdf) on page 5. We know that between the time `kLast` was calculated and the present no liquidity was added or removed (because we run this calculation every time liquidity is added or removed, before it actually changes), so any change in `reserve0 * reserve1` has to come from transaction fees (without them we'd keep `reserve0 * reserve1` constant).
```solidity
if (liquidity > 0) _mint(feeTo, liquidity);
@@ -705,7 +705,7 @@ contract UniswapV2Factory is IUniswapV2Factory {
address public feeToSetter;
```
-These state variables are necessary to implement the protocol fee (see [the whitepaper](https://uniswap.org/whitepaper.pdf), p. 5).
+These state variables are necessary to implement the protocol fee (see [the whitepaper](https://app.uniswap.org/whitepaper.pdf), p. 5).
The `feeTo` address accumulates the liquidity tokens for the protocol fee, and `feeToSetter` is the address allowed to change `feeTo` to a different address.
```solidity
diff --git a/public/content/developers/tutorials/using-websockets/index.md b/public/content/developers/tutorials/using-websockets/index.md
index a18f09693f5..4e111f2a62a 100644
--- a/public/content/developers/tutorials/using-websockets/index.md
+++ b/public/content/developers/tutorials/using-websockets/index.md
@@ -6,7 +6,7 @@ lang: en
tags: ["alchemy", "websockets", "querying", "javascript"]
skill: beginner
source: Alchemy docs
-sourceUrl: https://docs.alchemyapi.io/guides/using-websockets
+sourceUrl: https://www.alchemy.com/docs/reference/best-practices-for-using-websockets-in-web3
published: 2020-12-01
---
@@ -24,7 +24,7 @@ As with any network connection, you should not assume that a WebSocket will rema
The easiest way to test out WebSockets is to install a command line tool for making WebSocket requests such as [wscat](https://github.com/websockets/wscat). Using wscat, you can send requests as follows:
-_Note: if you have an Alchemy account you can replace `demo` with your own API key. [Sign up for a free Alchemy account here!](https://auth.alchemyapi.io/signup)_
+_Note: if you have an Alchemy account you can replace `demo` with your own API key. [Sign up for a free Alchemy account here!](https://auth.alchemy.com/signup)_
```
wscat -c wss://eth-mainnet.ws.alchemyapi.io/ws/demo
@@ -37,11 +37,11 @@ wscat -c wss://eth-mainnet.ws.alchemyapi.io/ws/demo
## How to use WebSockets {#how-to-use-websockets}
-To begin, open a WebSocket using the WebSocket URL for your app. You can find your app's WebSocket URL by opening the app's page in [your dashboard](https://dashboard.alchemyapi.io/) and clicking "View Key". Note that your app's URL for WebSockets is different from its URL for HTTP requests, but both can be found by clicking "View Key".
+To begin, open a WebSocket using the WebSocket URL for your app. You can find your app's WebSocket URL by opening the app's page in [your dashboard](https://dashboard.alchemy.com/) and clicking "View Key". Note that your app's URL for WebSockets is different from its URL for HTTP requests, but both can be found by clicking "View Key".

-Any of the APIs listed in the [Alchemy API Reference](https://docs.alchemyapi.io/documentation/alchemy-api-reference/) can be used via WebSocket. To do so, use the same payload that would be sent as the body of a HTTP POST request, but instead send that payload through the WebSocket.
+Any of the APIs listed in the [Alchemy API Reference](https://www.alchemy.com/docs/reference/api-overview) can be used via WebSocket. To do so, use the same payload that would be sent as the body of a HTTP POST request, but instead send that payload through the WebSocket.
## With Web3 {#with-web3}
@@ -242,4 +242,4 @@ curl https://eth-mainnet.alchemyapi.io/v2/your-api-key
---
-[Sign up with Alchemy](https://auth.alchemyapi.io/signup) for free, check out [our documentation](https://docs.alchemyapi.io/), and for the latest news, follow us on [Twitter](https://twitter.com/AlchemyPlatform).
+[Sign up with Alchemy](https://auth.alchemy.com) for free, check out [our documentation](https://www.alchemy.com/docs/), and for the latest news, follow us on [Twitter](https://x.com/AlchemyPlatform).
diff --git a/public/content/eips/index.md b/public/content/eips/index.md
index 6c7df76936a..6fdd3ebe67b 100644
--- a/public/content/eips/index.md
+++ b/public/content/eips/index.md
@@ -61,7 +61,6 @@ If you’re interested to read more about EIPs, check out the [EIPs website](htt
### Community education projects {#community-projects}
- [PEEPanEIP](https://www.youtube.com/playlist?list=PL4cwHXAawZxqu0PKKyMzG_3BJV_xZTi1F) — *PEEPanEIP is an educational video series that discusses Ethereum Improvement Proposal (EIPs) and key features of upcoming upgrades.*
-- [EIPs For Nerds](https://ethereum2077.substack.com/t/eip-research) — *EIPs For Nerds provides comprehensive, ELI5-style overviews of various Ethereum Improvement Proposals (EIPs), including core EIPs and application/infrastructure-layer EIPs (ERCs), to educate readers and shape consensus around proposed changes to the Ethereum protocol.*
- [EIPs.wtf](https://www.eips.wtf/) — *EIPs.wtf provides extra information for Ethereum Improvement Proposals (EIPs), including their status, implementation details, related pull requests, and community feedback.*
- [EIP.Fun](https://eipfun.substack.com/) — *EIP.Fun provides the latest news on Ethereum Improvement Proposals (EIPs), updates on EIP meetings, and more.*
- [EIPs Insight](https://eipsinsight.com/) — *EIPs Insight is a representation of state of Ethereum Improvement Proposals (EIPs) process & statistics as per information collected from different resources.*
diff --git a/public/content/enterprise/use-cases/index.md b/public/content/enterprise/use-cases/index.md
index b4ebed0674f..1e49de980ad 100644
--- a/public/content/enterprise/use-cases/index.md
+++ b/public/content/enterprise/use-cases/index.md
@@ -26,7 +26,7 @@ Here are some of the enterprise applications that have been built on top of the
- [Brave Browser](https://basicattentiontoken.org/) - _pays users for their attention to advertisements and users can pay publishers to support them, via the Basic Attention Token_
- [EthereumAds](https://ethereumads.com/) - _lets web site operators sell advertising space and get paid via Ethereum_
- [hCaptcha](https://www.hcaptcha.com/) - _Bot prevention CAPTCHA system which pays web site operators for the work done by users to label data for machine learning. Now deployed by Cloudflare_
-- [Opera MiniPay](https://www.opera.com/products/minipay) - _makes mobile payments more accessible and secure for people in Africa with a non-custodial wallet and leverages phone numbers for easy transactions_
+- [Opera MiniPay](https://www.minipay.to/) - _makes mobile payments more accessible and secure for people in Africa with a non-custodial wallet and leverages phone numbers for easy transactions_
- [Roxpay](https://www.roxpay.ch/) - _automates pay-per-use asset invoicing and payments_
- [SAP Digital Currency Hub](https://community.sap.com/t5/technology-blogs-by-sap/cross-border-payments-made-easy-with-digital-money-experience-the-future/ba-p/13560384) - _cross border payments with stablecoins_
- [Toku](https://www.toku.com/) - _payroll, token grant administration, tax compliance, local employment, benefits & distributed HR solutions_
@@ -46,7 +46,7 @@ Here are some of the enterprise applications that have been built on top of the
### Asset tokenization {#tokenization}
-- [AgroToken](https://agrotoken.io/en/) - _tokenizing and trading agricultural commodities_
+- [JusToken](https://www.justoken.com/) - _tokenizing and trading agricultural commodities_
- [Bitbond](https://www.bitbond.com/) - _improves the issuance, settlement and custody of financial assets with tokenization_
- [Blocksquare](https://blocksquare.io/) - _tokenization infrastructure for real estate_
- [Centrifuge](https://centrifuge.io/) - _tokenized receivables financing, debt, and assets_
@@ -86,7 +86,7 @@ Here are some of the enterprise applications that have been built on top of the
### Insurance {#insurance}
-- [Arbol](https://www.arbolmarket.com/) - _parmetric insurance to cover weather related risks_
+- [Arbol](https://www.arbol.io/) - _parmetric insurance to cover weather related risks_
- [Etherisc](https://etherisc.com/) - _decentralized insurance for a variety of risks_
- [Nayms](https://www.nayms.com/) - _a digital space for the creation of insurance programs, the raising and trading of capital, the writing of risk, and the payment rails for premium and claim transactions, built with AON_
@@ -94,7 +94,7 @@ Here are some of the enterprise applications that have been built on top of the
- [BCdiploma](https://www.bcdiploma.com/) - _digitizes and verifies diplomas, certificates, and micro-credentials_
- [Bhutan National Digital Identity](https://www.bhutanndi.com/) - \_a foundation for Bhutan’s digital economy, facilitating trusted interactions between individuals and organizations
-- [Hyland Credentials](https://www.hylandcredentials.com) - _digital diplomas and other education credentials, licenses, and certificates_
+- [Hyland Credentials](https://www.hyland.com/en/solutions/products/hyland-credentials) - _digital diplomas and other education credentials, licenses, and certificates_
- [Palau Digital Residency Program](https://rns.id/) - _offers global citizens the ability to have a legal Palau government-issued ID_
- [QuarkID](https://quarkid.org/) _is a self-soverign identity protocol for managing essential personal documents such as birth and marriage certificates, academic credentials, and proof of income, developed by the government of Buenos Aires for use in Argentina and other South American countries_
- [Spherity](https://www.spherity.com/) - _offers digital identity management solutions to establish digital trust in ecosystems, focusing on decentralized identities and verifiable credentials_
@@ -106,7 +106,7 @@ Here are some of the enterprise applications that have been built on top of the
- [Fruitlab](https://fruitlab.com/) - _a platform for gamers to earn from watching, sharing and playing online games_
- [Lamborghini](https://venturebeat.com/games/lamborghini-and-animocas-motorverse-tap-base-blockchain-for-in-game-assets/) - _creates in-game assets for Animoca’s Web3 racing game Motorverse_
- [Nike Swoosh](https://www.swoosh.nike/) - _an NFT platform_
-- [Sothbebys Metaverse](https://metaverse.sothebys.com/) - _a digital art NFT marketplace by Sothebys_
+- [Sothbebys Metaverse](https://www.sothebys.com/en/departments/digital-art) - _a digital art NFT marketplace by Sothebys_
- [Soneium](https://soneium.org/) - \_a Layer 2 by Sony to support Web3 games and NFTs
If you would like to add to this list, please see [instructions for contributing](/contributing/).
@@ -135,7 +135,7 @@ Most new blockchain applications are being built on [Layer 2](/layer-2) chains.
- [Hyperledger Besu](https://www.hyperledger.org/use/besu) - _an enterprise focused open-source Ethereum client developed under the Apache 2.0 license and written in Java_
- [Infura](https://infura.io/) - _scalable API access to the Ethereum and IPFS networks_
- [Kaleido](https://kaleido.io/) - _an enterprise-focused development platform that offers simplified blockchain and digital asset applications_
-- [Moralis](http://moralis.io/) - _enterprise grade APIs and Nodes with a SOC2 type 2 certification_
+- [Moralis](https://moralis.com/) - _enterprise grade APIs and Nodes with a SOC2 type 2 certification_
- [Nightfall](https://github.com/EYBlockchain/nightfall_3) - _an application for transferring ERC20, ERC721 and ERC1155 applications under Zero Knowledge, using an Optimistic Rollup, from Ernst & Young_
- [NodeReal](https://nodereal.io/) - _provides scalable blockchain infrastructure and API services provider for the Web3 ecosystem_
- [QuickNode](https://www.quicknode.com/) - _provides reliable and fast nodes with high-level APIs like NFT API, Token API, etc., while delivering a unified product suite and enterprise-grade solutions_
diff --git a/public/content/real-world-assets/index.md b/public/content/real-world-assets/index.md
index 00e72bfde6f..4a79fdc86f0 100644
--- a/public/content/real-world-assets/index.md
+++ b/public/content/real-world-assets/index.md
@@ -25,7 +25,7 @@ Each token can be divided into even smaller fractions. Tether Gold tokens, for i
RWA tokens don’t have any intrinsic value. Rather, they reflect the value of the item that they represent, and so the token’s value changes along with the item’s value.
-## What are the benefits of RWAs? {#rwas-benifits}
+## What are the benefits of RWAs? {#rwas-benefits}
@@ -92,4 +92,4 @@ Dive into [smart contracts](/smart-contracts/) or find out more about a differen
- [How smart contracts work with blockchain](https://www.britannica.com/money/how-smart-contracts-work) on Britannica
- [How tokenized real-world assets are transforming DeFi](https://medium.com/coinmonks/how-tokenized-real-world-assets-are-transforming-defi-4e040f28732a) on Medium
- [What is RWA in crypto? Its blockchain role explained](https://www.bitdegree.org/crypto/tutorials/what-is-rwa-in-crypto) on BitDegree
-- [Top real-world assets (RWAs) coins today by market cap](https://www.forbes.com/digital-assets/categories/real-world-assets-rwa/) on Forbes
\ No newline at end of file
+- [Top real-world assets (RWAs) coins today by market cap](https://www.forbes.com/digital-assets/categories/real-world-assets-rwa/) on Forbes
diff --git a/public/content/refi/index.md b/public/content/refi/index.md
index 7979bd675fd..19b0f74f743 100755
--- a/public/content/refi/index.md
+++ b/public/content/refi/index.md
@@ -75,7 +75,7 @@ By shifting the direction of capital away from extractive practices toward a reg
## Additional reading on ReFi
-- [A high-level overview of carbon currencies and their place in the economy](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency)
+- [A high-level overview of carbon currencies and their place in the economy](https://www.klimadao.finance/resources/the-vision-of-a-carbon-currency)
- [The Ministry for the Future, a novel depicting the role of a carbon-backed currency in fighting climate change](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future)
- [A detailed report by the Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf)
-- [Kevin Owocki and Evan Miyazono’s CoinMarketCap Glossary entry on ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi)
+- [Kevin Owocki and Evan Miyazono’s CoinMarketCap Glossary entry on ReFi](https://coinmarketcap.com/academy/glossary/regenerative-finance-refi)
diff --git a/public/content/roadmap/account-abstraction/index.md b/public/content/roadmap/account-abstraction/index.md
index cc3aa5dcfff..86377629931 100644
--- a/public/content/roadmap/account-abstraction/index.md
+++ b/public/content/roadmap/account-abstraction/index.md
@@ -58,14 +58,14 @@ EIP-4337 enables native smart contract wallet support without modifying Ethereum
## Current progress {#current-progress}
-As part of Ethereum's Pectra upgrade, EIP-7702 is scheduled for May 7, 2025. EIP-4337 has been widely adopted, [with over 26 million smart accounts deployed and more than 170 million UserOperations processed](https://www.bundlebear.com/overview/all).
+As part of Ethereum's Pectra upgrade, EIP-7702 is scheduled for May 7, 2025. EIP-4337 has been widely adopted, [with over 26 million smart accounts deployed and more than 170 million UserOperations processed](https://www.bundlebear.com/erc4337-overview/all).
## Further reading {#further-reading}
-- [erc4337.io](https://www.erc4337.io/)
+- [erc4337.io](https://docs.erc4337.io/)
- [EIP-4337 documentation](https://eips.ethereum.org/EIPS/eip-4337)
- [EIP-7702 documentation](https://eips.ethereum.org/EIPS/eip-7702)
-- [ERC-4337 adoption dashboard](https://www.bundlebear.com/overview/all)
+- [ERC-4337 adoption dashboard](https://www.bundlebear.com/erc4337-overview/all)
- [Vitalik's "Road to Account Abstraction"](https://notes.ethereum.org/@vbuterin/account_abstraction_roadmap#Transaction-inclusion-lists)
- [Vitalik's blog on social recovery wallets](https://vitalik.eth.limo/general/2021/01/11/recovery.html)
- [Awesome Account Abstraction](https://github.com/4337Mafia/awesome-account-abstraction)
diff --git a/public/content/roadmap/fusaka/index.md b/public/content/roadmap/fusaka/index.md
index 495fb6d6005..8e54be7c043 100644
--- a/public/content/roadmap/fusaka/index.md
+++ b/public/content/roadmap/fusaka/index.md
@@ -38,7 +38,7 @@ This keeps hardware and bandwidth requirements for nodes tenable while enabling
Layer 2s scale Ethereum - as their networks grow, they need to post more data to Ethereum. This means that Ethereum will need to increase the number of blobs available to them as time goes on. Although PeerDAS enables scaling blob data, it needs to be done gradually and safely.
-Because Ethereum is code running on thousands of independent nodes that require agreement on same rules, we cannot simply introduces changes like increasing blob count the way you deploy a website update. Any rule change must be a coordinated upgrade where every node, client and validator software upgrades before the same predetermined block.
+Because Ethereum is code running on thousands of independent nodes that require agreement on same rules, we cannot simply introduce changes like increasing blob count the way you deploy a website update. Any rule change must be a coordinated upgrade where every node, client and validator software upgrades before the same predetermined block.
These coordinated upgrades generally include a lot of changes, require a lot of testing, and that takes time. In order to adapt faster to changing layer 2 blob needs, blob parameter only forks introduce a mechanism to increase blobs without having to wait on that upgrade schedule.
@@ -56,7 +56,7 @@ Graph source: [Ethereum Blobs - @hildobby, Dune Analytics](https://dune.com/hild
Layer 2s pay two bills when they post data: the blob fee and the execution gas needed to verify those blobs. If execution gas dominates, the blob fee auction can spiral down to 1 wei and stop being a price signal.
-EIP-7918 pins a proportional reserve price under every blob. When the reserve is higher than the nominal blob base fee, the fee adjustment algorithm treats the block as over target and stops pushing the fee down and allows it increase normally. As a result:
+EIP-7918 pins a proportional reserve price under every blob. When the reserve is higher than the nominal blob base fee, the fee adjustment algorithm treats the block as over target and stops pushing the fee down and allows it to increase normally. As a result:
- the blob fee market always reacts to congestion
- layer 2s pay at least a meaningful slice of the compute they force on nodes
@@ -87,7 +87,7 @@ Until now, the MODEXP precompile accepted numbers of virtually any size. That ma
EIP-[7825](https://eips.ethereum.org/EIPS/eip-7825) adds a cap of 16,777,216 (2^24) gas per transaction. It’s proactive DoS hardening by bounding the worst-case cost of any single transaction as we raise the block gas limit. It makes validation and propagation easier to model to allow us to tackle scaling via raising the gas limit.
-Why exactly 2^24 gas? It’s comfortably smaller than today’s gas limit, is large enough for real contract deployments & heavy precompiles, and a power of 2 makes it easy to implement across clients. This new maximum transaction size is a similar to pre-Pectra average block size, making it a reasonable limit for any operation on Ethereum.
+Why exactly 2^24 gas? It’s comfortably smaller than today’s gas limit, is large enough for real contract deployments & heavy precompiles, and a power of 2 makes it easy to implement across clients. This new maximum transaction size is similar to pre-Pectra average block size, making it a reasonable limit for any operation on Ethereum.
**Resources**: [EIP-7825 technical specification](https://eips.ethereum.org/EIPS/eip-7825)
@@ -126,7 +126,7 @@ The goal is to bound worst-case propagation/validation time and align with conse
**Resources**: [EIP-7934 technical specification](https://eips.ethereum.org/EIPS/eip-7934)
-#### Set default gas limit to XX million {#set-default-gas-limit-to-xx-million}
+#### Set default gas limit to 60 million {#set-default-gas-limit-to-60-million}
Prior to raising the gas limit from 30M to 36M in February 2025 (and subsequently to 45M), this value hadn’t changed since the Merge (September 2022). This EIP aims to make consistent scaling a priority.
@@ -148,7 +148,7 @@ This feature benefits client implementations and security of the network as it p
#### Count leading zeros (CLZ) opcode {#count-leading-zeros-opcode}
-This feature adds a small EVM instruction, **count leading zeroes (CLZ)**. Most everything in the EVM is represented as a 256-bit value—this new opcode returns how many zero bits are at the front. This is a common feature in many instruction set architectures as it enables more efficient arithmetic operations. In practice this collapses today’s hand-rolled bit scans into one step, so finding the first set bit, scanning bytes, or parsing bitfields becomes simpler and cheaper. The opcode is low, fixed-cost and has been benchmarked to be on par with a basic add, which trims bytecode and saves gas for the same work.
+This feature adds a small EVM instruction, **count leading zeros (CLZ)**. Most everything in the EVM is represented as a 256-bit value—this new opcode returns how many zero bits are at the front. This is a common feature in many instruction set architectures as it enables more efficient arithmetic operations. In practice this collapses today’s hand-rolled bit scans into one step, so finding the first set bit, scanning bytes, or parsing bitfields becomes simpler and cheaper. The opcode is low, fixed-cost and has been benchmarked to be on par with a basic add, which trims bytecode and saves gas for the same work.
**Resources**: [EIP-7939 technical specification](https://eips.ethereum.org/EIPS/eip-7939)
@@ -179,7 +179,7 @@ This EIP is in a section apart from the "Core EIPs" because the fork doesn't act
**Resources**: [EIP-7910 technical specification](https://eips.ethereum.org/EIPS/eip-7910)
-## FAQ {#FAQ}
+## FAQ {#faq}
### Does this upgrade affect all Ethereum nodes and validators? {#does-this-upgrade-affect-all-ethereum-nodes-and-validators}
@@ -197,5 +197,6 @@ Yes, the Fusaka upgrade requires updates to both [execution clients and consensu
- [Ethereum roadmap](/roadmap/)
- [Forkcast: Fusaka](https://forkcast.org/upgrade/fusaka)
- [Fusaka Meta EIP](https://eips.ethereum.org/EIPS/eip-7607)
+- [Fusaka testnet blog announcement](https://blog.ethereum.org/2025/09/26/fusaka-testnet-announcement)
- [Bankless: What Fusaka & Pectra will bring Ethereum](https://www.bankless.com/read/what-fusaka-pectra-will-bring-ethereum)
- [Bankless: Ethereum's Next Upgrades: Fusaka, Glamsterdam & Beyond with Preston Van Loon](https://x.com/BanklessHQ/status/1956017743289020633?t=502)
diff --git a/public/content/roadmap/fusaka/peerdas/index.md b/public/content/roadmap/fusaka/peerdas/index.md
index 2325a2db209..e220df2dbe9 100644
--- a/public/content/roadmap/fusaka/peerdas/index.md
+++ b/public/content/roadmap/fusaka/peerdas/index.md
@@ -82,6 +82,7 @@ PeerDAS is only a step [toward a greater scaling vision of FullDAS](https://ethr
## Further reading {#further-reading}
-- [PeerDAS Peer Data Availability sampling by Francesco D'Amato](https://www.youtube.com/watch?v=WOdpO1tH_Us)
+- [PeerDAS: Peer Data Availability sampling by Francesco D'Amato](https://www.youtube.com/watch?v=WOdpO1tH_Us)
- [A Documentation of Ethereum’s PeerDAS](https://eprint.iacr.org/2024/1362.pdf)
- [Proving the Security of PeerDAS without the AGM](https://eprint.iacr.org/2025/1683)
+- [Vitalik on PeerDAS, its impact, and testing Fusaka](https://x.com/VitalikButerin/status/1970983281090085200)
\ No newline at end of file
diff --git a/public/content/roadmap/pectra/7702/index.md b/public/content/roadmap/pectra/7702/index.md
index 8ea5195f375..9fe7faa8dbf 100644
--- a/public/content/roadmap/pectra/7702/index.md
+++ b/public/content/roadmap/pectra/7702/index.md
@@ -118,6 +118,7 @@ Due to the nature of EIP 7702, it is recommended wallets use caution when helpin
| 0x5A7FC11397E9a8AD41BF10bf13F22B0a63f96f6d | [AmbireTech/ambire-common](https://github.com/AmbireTech/ambire-common/blob/feature/eip-7702/contracts/AmbireAccount7702.sol) | [audits](https://github.com/AmbireTech/ambire-common/tree/feature/eip-7702/audits) |
| 0x63c0c19a282a1b52b07dd5a65b58948a07dae32b | [MetaMask/delegation-framework](https://github.com/MetaMask/delegation-framework) | [audits](https://github.com/MetaMask/delegation-framework/tree/main/audits) |
| 0x4Cd241E8d1510e30b2076397afc7508Ae59C66c9 | [Ethereum Foundation AA team](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/accounts/Simple7702Account.sol) | [audits](https://github.com/eth-infinitism/account-abstraction/blob/develop/audits/SpearBit%20Account%20Abstraction%20Security%20Review%20-%20Mar%202025.pdf) |
+| 0x17c11FDdADac2b341F2455aFe988fec4c3ba26e3 | [Luganodes/Pectra-Batch-Contract](https://github.com/Luganodes/Pectra-Batch-Contract) | [audits](https://certificate.quantstamp.com/full/luganodes-pectra-batch-contract/23f0765f-969a-4798-9edd-188d276c4a2b/index.html) |
## Hardware wallet guidelines {#hardware-wallet-guidelines}
diff --git a/public/content/roadmap/scaling/index.md b/public/content/roadmap/scaling/index.md
index b484d16ffde..fe1a2b94ba2 100644
--- a/public/content/roadmap/scaling/index.md
+++ b/public/content/roadmap/scaling/index.md
@@ -38,7 +38,7 @@ This second step is known as ["Danksharding"](/roadmap/danksharding/). Implement
## Decentralizing rollups {#decentralizing-rollups}
-[Rollups](/layer-2) are already scaling Ethereum. A [rich ecosystem of rollup projects](https://l2beat.com/scaling/tvl) is enabling users to transact quickly and cheaply, with a range of security guarantees. However, rollups have been bootstrapped using centralized sequencers (computers that do all the transaction processing and aggregation before submitting them to Ethereum). This is vulnerable to censorship, because the sequencer operators can be sanctioned, bribed or otherwise compromised. At the same time, [rollups vary](https://l2beat.com) in the way they validate incoming data. The best way is for "provers" to submit [fraud proofs](/glossary/#fraud-proof) or validity proofs, but not all rollups are there yet. Even those rollups that do use validity/fraud proofs use a small pool of known provers. Therefore, the next critical step in scaling Ethereum is to distribute responsibility for running sequencers and provers across more people.
+[Rollups](/layer-2) are already scaling Ethereum. A [rich ecosystem of rollup projects](https://l2beat.com/scaling/tvs) is enabling users to transact quickly and cheaply, with a range of security guarantees. However, rollups have been bootstrapped using centralized sequencers (computers that do all the transaction processing and aggregation before submitting them to Ethereum). This is vulnerable to censorship, because the sequencer operators can be sanctioned, bribed or otherwise compromised. At the same time, [rollups vary](https://l2beat.com/scaling/summary) in the way they validate incoming data. The best way is for "provers" to submit [fraud proofs](/glossary/#fraud-proof) or validity proofs, but not all rollups are there yet. Even those rollups that do use validity/fraud proofs use a small pool of known provers. Therefore, the next critical step in scaling Ethereum is to distribute responsibility for running sequencers and provers across more people.
More on rollups
@@ -50,4 +50,4 @@ Work on full Danksharding continues, with progress being made on its prerequisit
[More on the Dencun network upgrade and its impact](/roadmap/dencun/)
-
\ No newline at end of file
+
diff --git a/public/content/roadmap/statelessness/index.md b/public/content/roadmap/statelessness/index.md
index 4f3d6b7767a..ed13803139c 100644
--- a/public/content/roadmap/statelessness/index.md
+++ b/public/content/roadmap/statelessness/index.md
@@ -91,6 +91,7 @@ Weak statelessness, history expiry and state expiry are all in the research phas
## Further reading {#further-reading}
+- [What is Stateless Ethereum?](https://stateless.fyi/)
- [Vitalik statelessness AMA](https://www.reddit.com/r/ethereum/comments/o9s15i/impromptu_technical_ama_on_statelessness_and/)
- [A theory of state size management](https://hackmd.io/@vbuterin/state_size_management)
- [Resurrection-conflict-minimized state bounding](https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739)
@@ -101,3 +102,4 @@ Weak statelessness, history expiry and state expiry are all in the research phas
- [The original stateless client concept notes](https://ethresear.ch/t/the-stateless-client-concept/172)
- [More on state expiry](https://hackmd.io/@vbuterin/state_size_management#A-more-moderate-solution-state-expiry)
- [Even more on state expiry](https://hackmd.io/@vbuterin/state_expiry_paths#Option-2-per-epoch-state-expiry)
+- [Stateless Ethereum Information Page](https://stateless.fyi)
diff --git a/public/content/security/index.md b/public/content/security/index.md
index 21f3a51e237..be6ab6a9381 100644
--- a/public/content/security/index.md
+++ b/public/content/security/index.md
@@ -103,7 +103,7 @@ A high-profile version of this occurred in July 2020, when the Twitter accounts
### Celebrity giveaway {#celebrity-giveaway}
-The celebrity giveaway is another common form the giveaway scam takes. The scammers will take a recorded video interview or conference talk given a celebrity and livestream it on YouTube - making it appear as though the celebrity was giving a live video interview endorsing a cryptocurrency giveaway.
+The celebrity giveaway is another common form the giveaway scam takes. The scammers will take a recorded video interview or conference talk given by a celebrity and livestream it on YouTube - making it appear as though the celebrity was giving a live video interview endorsing a cryptocurrency giveaway.
Vitalik Buterin is used most often in this scam, but many other prominent people involved in crypto are also used (e.g. Elon Musk or Charles Hoskinson). Including a well-known person gives the scammers livestream a sense of legitimacy (this looks sketchy, but Vitalik is involved, so it must be ok!).
diff --git a/public/content/what-are-apps/index.md b/public/content/what-are-apps/index.md
index 8283662aac7..d79a255f304 100644
--- a/public/content/what-are-apps/index.md
+++ b/public/content/what-are-apps/index.md
@@ -60,13 +60,13 @@ When apps are all built on Ethereum, they are all compatible. A token for one ap
-## Further reading
+## Further reading {#further-reading}
- [Ethereum for beginners](/what-is-ethereum)
- [What is a smart contract?](/developers/docs/smart-contracts/)
- [Technical dapp documentation](/developers/docs/dapps/)
-## Frequently asked questions
+## Frequently asked questions {#faq}
Dapp stands for decentralized applications. Those are applications built on blockchain networks like Ethereum. They are called decentralized because underlying network is decentralized.
diff --git a/public/images/devconnect/destino.png b/public/images/devconnect/destino.png
new file mode 100644
index 00000000000..8e407575af9
Binary files /dev/null and b/public/images/devconnect/destino.png differ
diff --git a/public/images/devconnect/devconnect-hero.png b/public/images/devconnect/devconnect-hero.png
new file mode 100644
index 00000000000..0cf875b2f64
Binary files /dev/null and b/public/images/devconnect/devconnect-hero.png differ
diff --git a/public/images/layer-2/blast.png b/public/images/layer-2/blast.png
deleted file mode 100644
index 40f86848b06..00000000000
Binary files a/public/images/layer-2/blast.png and /dev/null differ
diff --git a/public/images/layer-2/ink.png b/public/images/layer-2/ink.png
new file mode 100644
index 00000000000..0c14873daeb
Binary files /dev/null and b/public/images/layer-2/ink.png differ
diff --git a/public/images/layer-2/mode.png b/public/images/layer-2/mode.png
deleted file mode 100644
index b67791df3f7..00000000000
Binary files a/public/images/layer-2/mode.png and /dev/null differ
diff --git a/public/images/layer-2/taiko.png b/public/images/layer-2/taiko.png
deleted file mode 100644
index 5b5415046fd..00000000000
Binary files a/public/images/layer-2/taiko.png and /dev/null differ
diff --git a/public/images/layer-2/unichain.png b/public/images/layer-2/unichain.png
new file mode 100644
index 00000000000..174932ec760
Binary files /dev/null and b/public/images/layer-2/unichain.png differ
diff --git a/public/images/wallets/clave.png b/public/images/wallets/clave.png
new file mode 100644
index 00000000000..e48f08fbd2c
Binary files /dev/null and b/public/images/wallets/clave.png differ
diff --git a/public/images/wallets/railway.png b/public/images/wallets/railway.png
new file mode 100644
index 00000000000..4df3483d4c5
Binary files /dev/null and b/public/images/wallets/railway.png differ
diff --git a/src/components/AssetDownload/AssetDownload.stories.tsx b/src/components/AssetDownload/AssetDownload.stories.tsx
new file mode 100644
index 00000000000..3ed6d86ed79
--- /dev/null
+++ b/src/components/AssetDownload/AssetDownload.stories.tsx
@@ -0,0 +1,38 @@
+import type { Meta, StoryObj } from "@storybook/react"
+
+import AssetDownload from "."
+
+import ethDiamondBlack from "@/public/images/assets/eth-diamond-black.png"
+import hero from "@/public/images/home/hero.png"
+
+const meta = {
+ title: "Molecules / Display Content / AssetDownload",
+ component: AssetDownload,
+ parameters: {
+ layout: "centered",
+ },
+ tags: ["autodocs"],
+} satisfies Meta
+
+export default meta
+
+type Story = StoryObj
+
+export const WithArtist: Story = {
+ args: {
+ title: "Ethereum hero",
+ alt: "Ethereum hero",
+ image: hero,
+ artistName: "Liam Cobb",
+ artistUrl: "https://liamcobb.com/",
+ },
+}
+
+export const BrandAsset: Story = {
+ args: {
+ title: "ETH Diamond Glyph",
+ alt: "ETH Diamond Glyph",
+ image: ethDiamondBlack,
+ svgUrl: "/images/assets/svgs/eth-diamond-glyph.svg",
+ },
+}
diff --git a/src/components/BugBountyCards.tsx b/src/components/BugBountyCards.tsx
index 7ab763870fd..2db59f97921 100644
--- a/src/components/BugBountyCards.tsx
+++ b/src/components/BugBountyCards.tsx
@@ -1,49 +1,16 @@
import { BaseHTMLAttributes } from "react"
-import type { ChildOnlyProp, TranslationKey } from "@/lib/types"
+import type { TranslationKey } from "@/lib/types"
import { cn } from "@/lib/utils/cn"
-import { ButtonLink, ButtonLinkProps } from "./ui/buttons/Button"
-import { Center, Flex, Stack } from "./ui/flex"
+import { ButtonLink } from "./ui/buttons/Button"
+import { Center } from "./ui/flex"
import { useTranslation } from "@/hooks/useTranslation"
type FlexProps = BaseHTMLAttributes
-const CardRow = ({ children }: ChildOnlyProp) => (
- {children}
-)
-
-const SubmitBugBountyButton = ({
- children,
- ...props
-}: Omit) => (
-
- {children}
-
-)
-
-const Card = ({ children, ...props }: FlexProps) => {
- return (
-
- {children}
-
- )
-}
-
type LabelVariant = "low" | "medium" | "high" | "critical"
type LabelProps = FlexProps & {
@@ -62,10 +29,7 @@ const Label = ({ children, variant = "medium", ...props }: LabelProps) => {
return (
)
}
diff --git a/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx b/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx
index d589117c988..5bbf4b52cfe 100644
--- a/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx
+++ b/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx
@@ -5,8 +5,7 @@ import { FilterOption } from "@/lib/types"
import FindWalletLanguageSelectInput from "@/components/FindWalletProductTable/FindWalletLanguageSelectInput"
import Layer2SelectInput from "@/components/FindWalletProductTable/Layer2SelectInput"
-// TODO: Re-enable when at least one privacy-enabled wallet has been listed
-// import PrivacyIcon from "@/components/icons/privacy.svg"
+import PrivacyIcon from "@/components/icons/privacy.svg"
import {
BrowserIcon,
BuyCryptoIcon,
@@ -878,34 +877,33 @@ export const useWalletFilters = (): FilterOption[] => {
},
options: [],
},
- // TODO: Re-enable when at least one privacy-enabled wallet has been listed
- // {
- // filterKey: "privacy",
- // filterLabel: t("page-find-wallet-privacy"),
- // description: t("page-find-wallet-privacy-desc"),
- // inputState: false,
- // input: (filterIndex, itemIndex, inputState, updateFilterState) => {
- // return (
- // {
- // trackCustomEvent({
- // eventCategory: "WalletFilterSidebar",
- // eventAction: `${t("page-find-wallet-privacy")}`,
- // eventName: `privacy ${newInputState}`,
- // })
- // updateFilterState(filterIndex, itemIndex, newInputState)
- // }}
- // />
- // )
- // },
- // options: [],
- // },
+ {
+ filterKey: "privacy",
+ filterLabel: t("page-find-wallet-privacy"),
+ description: t("page-find-wallet-privacy-desc"),
+ inputState: false,
+ input: (filterIndex, itemIndex, inputState, updateFilterState) => {
+ return (
+ {
+ trackCustomEvent({
+ eventCategory: "WalletFilterSidebar",
+ eventAction: `${t("page-find-wallet-privacy")}`,
+ eventName: `privacy ${newInputState}`,
+ })
+ updateFilterState(filterIndex, itemIndex, newInputState)
+ }}
+ />
+ )
+ },
+ options: [],
+ },
],
},
{
diff --git a/src/components/ui/swiper.tsx b/src/components/ui/swiper.tsx
index 8ef188eb1a3..22510e5cbf4 100644
--- a/src/components/ui/swiper.tsx
+++ b/src/components/ui/swiper.tsx
@@ -2,7 +2,13 @@
import * as React from "react"
import { cva, VariantProps } from "class-variance-authority"
-import { EffectCards, Keyboard, Navigation, Pagination } from "swiper/modules"
+import {
+ EffectCards,
+ Grid,
+ Keyboard,
+ Navigation,
+ Pagination,
+} from "swiper/modules"
import {
Swiper as SwiperReact,
type SwiperProps as SwiperReactProps,
@@ -20,6 +26,7 @@ import "swiper/css"
import "swiper/css/navigation"
import "swiper/css/pagination"
import "swiper/css/effect-cards"
+import "swiper/css/grid"
import { useTranslation } from "@/hooks/useTranslation"
@@ -147,7 +154,7 @@ const Swiper = React.forwardRef(
el: ".ui-swiper-pagination",
}}
keyboard
- modules={[Navigation, Pagination, Keyboard, EffectCards]}
+ modules={[Navigation, Pagination, Keyboard, EffectCards, Grid]}
slidesPerView={1}
slidesPerGroup={1}
lazyPreloadPrevNext={0}
diff --git a/src/data/chains.ts b/src/data/chains.ts
index 7307eae6103..7c775299d39 100644
--- a/src/data/chains.ts
+++ b/src/data/chains.ts
@@ -967,6 +967,17 @@ const chains = [
},
chain: "Muster",
},
+ {
+ name: "MegaETH Mainnet",
+ infoURL: "https://megaeth.com",
+ chainId: 4326,
+ nativeCurrency: {
+ name: "Ether",
+ symbol: "ETH",
+ decimals: 18,
+ },
+ chain: "ETH",
+ },
{
name: "OEV Network",
infoURL: "https://api3.org/oev/",
@@ -1682,6 +1693,28 @@ const chains = [
},
chain: "ETH",
},
+ {
+ name: "Doma",
+ infoURL: "https://doma.xyz",
+ chainId: 97477,
+ nativeCurrency: {
+ name: "Ether",
+ symbol: "ETH",
+ decimals: 18,
+ },
+ chain: "ETH",
+ },
+ {
+ name: "Sova",
+ infoURL: "https://sova.io",
+ chainId: 100021,
+ nativeCurrency: {
+ name: "Ether",
+ symbol: "ETH",
+ decimals: 18,
+ },
+ chain: "ETH",
+ },
{
name: "re.al",
infoURL: "https://re.al",
@@ -1826,6 +1859,17 @@ const chains = [
},
chain: "ETH",
},
+ {
+ name: "Silent Data Mainnet",
+ infoURL: "https://www.silentdata.com",
+ chainId: 380929,
+ nativeCurrency: {
+ name: "Ether",
+ symbol: "ETH",
+ decimals: 18,
+ },
+ chain: "Silent Data",
+ },
{
name: "Infinaeon",
infoURL: "hhttps://rpc.infinaeon.com",
@@ -2013,6 +2057,17 @@ const chains = [
},
chain: "WCal",
},
+ {
+ name: "Jovay Mainnet",
+ infoURL: "https://jovay.io",
+ chainId: 5734951,
+ nativeCurrency: {
+ name: "Ether",
+ symbol: "ETH",
+ decimals: 18,
+ },
+ chain: "ETH",
+ },
{
name: "Astar zKyoto",
infoURL: "https://astar.network",
diff --git a/src/data/externalTutorials.json b/src/data/externalTutorials.json
index aeea0309a30..d67de3cc05b 100644
--- a/src/data/externalTutorials.json
+++ b/src/data/externalTutorials.json
@@ -672,5 +672,29 @@
"timeToRead": "50",
"lang": "en",
"publishDate": "05/09/2025"
+ },
+ {
+ "url": "https://docs.dappbooster.dev/recipes/my-first-dapp",
+ "title": "Building your first dApp with dAppBooster",
+ "description": "Getting started with dAppBooster in just a few lines of code.",
+ "author": "BootNode",
+ "authorGithub": "https://github.com/bootnodedev/",
+ "tags": ["dapp", "vite", "typescript", "web3", "react", "frontend", "javascript", "dappbooster", "beginner"],
+ "skillLevel": "beginner",
+ "timeToRead": "15",
+ "lang": "en",
+ "publishDate": "06/27/2025"
+ },
+ {
+ "url": "https://docs.dappbooster.dev/recipes/subgraphs",
+ "title": "Using subgraphs with dAppBooster",
+ "description": "This guide will walk you through the use of the subgraphs plugin in dAppBooster.",
+ "author": "BootNode",
+ "authorGithub": "https://github.com/bootnodedev/",
+ "tags": ["subgraph", "dapp", "vite", "typescript", "web3", "react", "wagmi", "frontend", "javascript", "dappbooster"],
+ "skillLevel": "intermediate",
+ "timeToRead": "30",
+ "lang": "en",
+ "publishDate": "05/26/2025"
}
-]
+]
\ No newline at end of file
diff --git a/src/data/mocks/appsData.json b/src/data/mocks/appsData.json
index 7b8df84a54e..7719d2407a3 100644
--- a/src/data/mocks/appsData.json
+++ b/src/data/mocks/appsData.json
@@ -41,7 +41,8 @@
"contractAddress": "https://aave.com/docs/resources/addresses",
"dateOfLaunch": "9/18/2018",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Sky/Maker - USDS",
@@ -81,7 +82,8 @@
"contractAddress": "https://developers.sky.money/quick-start/deployments-tracker/",
"dateOfLaunch": "9/18/2024",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Ethena - USDE",
@@ -124,7 +126,8 @@
"contractAddress": "https://docs.ethena.fi/api-documentation/overview",
"dateOfLaunch": "2/19/2024",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Uniswap",
@@ -172,7 +175,8 @@
"contractAddress": "https://docs.uniswap.org/contracts/v4/deployments",
"dateOfLaunch": "11/2/2018",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Pendle",
@@ -211,7 +215,8 @@
"contractAddress": "https://github.com/pendle-finance/pendle-core-v2-public/blob/main/deployments/1-core.json",
"dateOfLaunch": "6/17/2021",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Spark",
@@ -250,7 +255,8 @@
"contractAddress": "https://github.com/sparkdotfi/spark-address-registry/tree/master/src",
"dateOfLaunch": "5/9/2023",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Morpho",
@@ -286,7 +292,8 @@
"contractAddress": "https://docs.morpho.org/overview/resources/addresses#addresses",
"dateOfLaunch": "12/20/2022",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Compound",
@@ -325,7 +332,8 @@
"contractAddress": "https://docs.compound.finance/",
"dateOfLaunch": "9/27/2018",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Curve",
@@ -362,7 +370,8 @@
"contractAddress": "https://docs.curve.finance/deployments/amm/",
"dateOfLaunch": "2/20/2020",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Balancer",
@@ -400,7 +409,8 @@
"contractAddress": "https://docs.balancer.fi/developer-reference/contracts/deployment-addresses/mainnet.html",
"dateOfLaunch": "3/31/2020",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Usual ",
@@ -439,7 +449,8 @@
"contractAddress": "https://tech.usual.money/smart-contracts/contract-deployments",
"dateOfLaunch": "5/23/2024",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Fluid",
@@ -477,7 +488,8 @@
"contractAddress": "https://github.com/Instadapp/fluid-contracts-public/blob/main/deployments/deployments.md",
"dateOfLaunch": "10/29/2024",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Frax",
@@ -514,7 +526,8 @@
"contractAddress": "https://docs.frax.com/protocol/assets/frxusd/addresses",
"dateOfLaunch": "12/20/2020",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Aerodrome",
@@ -549,7 +562,8 @@
"contractAddress": "https://aerodrome.finance/security",
"dateOfLaunch": "8/28/2023",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Moonwell",
@@ -586,7 +600,8 @@
"contractAddress": "https://docs.moonwell.fi/moonwell/protocol-information/contracts",
"dateOfLaunch": "8/9/2023",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Franklin Templeton - BENJI",
@@ -623,7 +638,8 @@
"contractAddress": "https://digitalassets.franklintempleton.com/benji/benji-contracts/",
"dateOfLaunch": "11/14/2024",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Synthetix",
@@ -659,7 +675,8 @@
"contractAddress": "https://github.com/Synthetixio/synthetix-deployments",
"dateOfLaunch": "6/26/2018",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "ZeroLend",
@@ -697,7 +714,8 @@
"contractAddress": "https://docs.zerolend.xyz/security/deployed-addresses",
"dateOfLaunch": "1/1/2023",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "SyncSwap",
@@ -735,7 +753,8 @@
"contractAddress": "https://docs.syncswap.xyz/syncswap/smart-contracts/smart-contracts",
"dateOfLaunch": "3/4/2023",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Ekubo",
@@ -771,7 +790,8 @@
"contractAddress": "https://docs.ekubo.org/integration-guides/reference/contract-addresses",
"dateOfLaunch": "8/26/2023",
"lastUpdated": "7/7/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Maple",
@@ -807,7 +827,8 @@
"contractAddress": "https://github.com/maple-labs/address-registry/blob/main/MapleAddressRegistryETH.md",
"dateOfLaunch": "5/12/2021",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Centrifuge",
@@ -844,7 +865,8 @@
"contractAddress": "",
"dateOfLaunch": "5/22/2023",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Goldfinch",
@@ -879,7 +901,8 @@
"contractAddress": "",
"dateOfLaunch": "1/31/2021",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Superstate",
@@ -914,7 +937,8 @@
"contractAddress": "https://docs.superstate.com/introduction-to-superstate/smart-contracts",
"dateOfLaunch": "1/3/2024",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Ondo",
@@ -950,7 +974,8 @@
"contractAddress": "https://docs.ondo.finance/addresses",
"dateOfLaunch": "7/27/2021",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "PayPal - PYUSD",
@@ -990,7 +1015,8 @@
"contractAddress": "https://etherscan.io/token/0x6c3ea9036406852006290770bedfcaba0e23a0e8",
"dateOfLaunch": "8/7/2023",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Etherisc",
@@ -1025,7 +1051,8 @@
"contractAddress": "",
"dateOfLaunch": "7/28/2016",
"lastUpdated": "7/28/2016",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Polymarket",
@@ -1060,7 +1087,8 @@
"contractAddress": "",
"dateOfLaunch": "6/16/2020",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "1inch",
@@ -1102,7 +1130,8 @@
"contractAddress": "https://portal.1inch.dev/documentation/contracts/aggregation-protocol/aggregation-introduction",
"dateOfLaunch": "5/9/2019",
"lastUpdated": "7/15/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Liquity",
@@ -1140,7 +1169,8 @@
"contractAddress": "https://discord.com/invite/HFKpCdgQm6",
"dateOfLaunch": "4/5/2021",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Cowswap",
@@ -1177,7 +1207,8 @@
"contractAddress": "https://docs.cow.fi/cow-protocol/reference/contracts/core",
"dateOfLaunch": "4/28/2021",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "PoolTogether",
@@ -1215,7 +1246,8 @@
"contractAddress": "https://dev.pooltogether.com/protocol/deployments/",
"dateOfLaunch": "6/24/2019",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Yearn",
@@ -1253,7 +1285,8 @@
"contractAddress": "https://docs.yearn.fi/developers/addresses/",
"dateOfLaunch": "7/17/2020",
"lastUpdated": "7/15/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "True Markets",
@@ -1288,7 +1321,8 @@
"contractAddress": "",
"dateOfLaunch": "3/11/2025",
"lastUpdated": "7/15/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Flaunch",
@@ -1323,7 +1357,8 @@
"contractAddress": "https://docs.flaunch.gg/developer-resources/contract-addresses",
"dateOfLaunch": "2/1/2025",
"lastUpdated": "7/15/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Octant",
@@ -1360,7 +1395,8 @@
"contractAddress": "https://github.com/golemfoundation/octant/tree/develop/contracts-v1",
"dateOfLaunch": "8/8/2023",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "SuperFluid",
@@ -1401,7 +1437,8 @@
"contractAddress": "0x4E583d9390082B65Bef884b629DFA426114CED6d",
"dateOfLaunch": "",
"lastUpdated": "7/7/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Splits.org",
@@ -1440,7 +1477,8 @@
"contractAddress": "",
"dateOfLaunch": "2/15/2022",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "JuiceboxETH",
@@ -1475,7 +1513,8 @@
"contractAddress": "https://docs.juicebox.money/v4/addresses/",
"dateOfLaunch": "7/15/2021",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "zkp2p",
@@ -1510,7 +1549,8 @@
"contractAddress": "https://docs.zkp2p.xyz/developer/smart-contracts/deployments",
"dateOfLaunch": "2/3/2025",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Teller",
@@ -1547,7 +1587,8 @@
"contractAddress": "https://docs.teller.org/v2/resources/deployed-contracts",
"dateOfLaunch": "1/4/2021",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "EigenCloud",
@@ -1582,7 +1623,8 @@
"contractAddress": "https://github.com/Layr-Labs/eigenlayer-contracts",
"dateOfLaunch": "6/14/2023",
"lastUpdated": "7/15/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
}
],
"Social": [
@@ -1624,7 +1666,8 @@
"contractAddress": "0xaD031EeE55f595dF6Dbd61e9ef3B908FaD1B3671",
"dateOfLaunch": "1/1/2021",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Rodeo",
@@ -1665,7 +1708,8 @@
"contractAddress": "",
"dateOfLaunch": "12/24/2024",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Towns",
@@ -1701,7 +1745,8 @@
"contractAddress": "https://docs.towns.com/towns-smart-contracts/contracts",
"dateOfLaunch": "2/23/2023",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Farcaster",
@@ -1740,7 +1785,8 @@
"contractAddress": "https://docs.farcaster.xyz/reference/contracts/deployments",
"dateOfLaunch": "2/23/2023",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Orb",
@@ -1776,7 +1822,8 @@
"contractAddress": "",
"dateOfLaunch": "10/18/2024",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Shibuya Films",
@@ -1811,7 +1858,8 @@
"contractAddress": "",
"dateOfLaunch": "2/28/2022",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Hey.xyz",
@@ -1846,7 +1894,8 @@
"contractAddress": "",
"dateOfLaunch": "9/29/2023",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Audius",
@@ -1881,7 +1930,8 @@
"contractAddress": "0x44617F9dCEd9787C3B06a05B35B4C779a2AA1334",
"dateOfLaunch": "10/23/2020",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Paragraph",
@@ -1919,7 +1969,8 @@
"contractAddress": "",
"dateOfLaunch": "10/1/2021",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Ethereum Follow Protocol",
@@ -1958,7 +2009,8 @@
"contractAddress": "https://docs.efp.app/production/deployments/",
"dateOfLaunch": "9/24/2024",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
}
],
"Privacy": [
@@ -2000,7 +2052,8 @@
"contractAddress": "0xa238cbeb142c10ef7ad8442c6d1f9e89e07e7761",
"dateOfLaunch": "2/24/2024",
"lastUpdated": "7/9/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Rarimo",
@@ -2036,7 +2089,8 @@
"contractAddress": "https://docs.rarimo.com/zk-passport/contracts/#deployments",
"dateOfLaunch": "4/24/2025",
"lastUpdated": "7/9/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Privacy Pools",
@@ -2072,7 +2126,8 @@
"contractAddress": "0xf241d57c6debae225c0f2e6ea1529373c9a9c9fb",
"dateOfLaunch": "3/31/2025",
"lastUpdated": "7/7/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Tornado Cash",
@@ -2114,7 +2169,8 @@
"contractAddress": "https://github.com/tornadocash/docs/blob/b91f1a469ff7c7094e535fd41c4586d1080869c4/general/tornado-cash-smart-contracts.md",
"dateOfLaunch": "12/17/2019",
"lastUpdated": "7/7/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "0xbow",
@@ -2149,7 +2205,8 @@
"contractAddress": "https://docs.privacypools.com/deployments",
"dateOfLaunch": "3/31/2025",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
}
],
"Collectibles": [
@@ -2199,7 +2256,8 @@
"contractAddress": "0xA5409eC958C83C3f309868bABaCA7c86DCB077c1 ",
"dateOfLaunch": "12/20/2017",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Blur",
@@ -2237,7 +2295,8 @@
"contractAddress": "https://docs.blur.foundation/contracts",
"dateOfLaunch": "10/19/2022",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Highlight",
@@ -2277,7 +2336,8 @@
"contractAddress": "https://support.highlight.xyz/knowledge-base/for-developers/nft-contracts/official-addresses",
"dateOfLaunch": "7/26/2023",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Manifold",
@@ -2312,7 +2372,8 @@
"contractAddress": "https://github.com/manifoldxyz/royalty-registry-solidity",
"dateOfLaunch": "10/1/2021",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Rarible",
@@ -2351,7 +2412,8 @@
"contractAddress": "https://docs.rarible.org/reference/contract-addresses",
"dateOfLaunch": "8/17/2020",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Pudgy Penguins",
@@ -2388,7 +2450,8 @@
"contractAddress": "https://etherscan.io/address/0xBd3531dA5CF5857e7CfAA92426877b022e612cf8",
"dateOfLaunch": "7/22/2021",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Bored Ape Yacht Club",
@@ -2425,7 +2488,8 @@
"contractAddress": "https://etherscan.io/address/0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D",
"dateOfLaunch": "4/23/2021",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Art Blocks",
@@ -2460,7 +2524,8 @@
"contractAddress": "https://github.com/ArtBlocks/artblocks-contracts/blob/main/packages/contracts/README.md",
"dateOfLaunch": "11/27/2020",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Cool Cats",
@@ -2496,7 +2561,8 @@
"contractAddress": "https://etherscan.io/address/0x1a92f7381b9f03921564a437210bb9396471050c",
"dateOfLaunch": "6/9/2021",
"lastUpdated": "7/4/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Doodles",
@@ -2532,7 +2598,8 @@
"contractAddress": "https://etherscan.io/address/0x8a90cab2b38dba80c64b7734e58ee1db38b8992e",
"dateOfLaunch": "10/16/2021",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Basepaint",
@@ -2568,7 +2635,8 @@
"contractAddress": "https://hackmd.io/@uTlMZA23Qz-cK8e7PqQt0A/rkOAbFIhn",
"dateOfLaunch": "8/8/2023",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Foundation",
@@ -2604,7 +2672,8 @@
"contractAddress": "https://os.foundation.app/docs/creator-tools/drop",
"dateOfLaunch": "2/1/2021",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Sandbox",
@@ -2648,7 +2717,8 @@
"contractAddress": "https://etherscan.io/token/0x3845badade8e6dff049820680d1f14bd3903a5d0",
"dateOfLaunch": "11/29/2021",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "SuperRare",
@@ -2686,7 +2756,8 @@
"contractAddress": "",
"dateOfLaunch": "4/4/2018",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Decentraland",
@@ -2732,7 +2803,8 @@
"contractAddress": "https://github.com/decentraland/marketplace/tree/master/indexer",
"dateOfLaunch": "2/20/2020",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Magic Eden",
@@ -2769,7 +2841,8 @@
"contractAddress": "",
"dateOfLaunch": "9/17/2021",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Azuki",
@@ -2806,7 +2879,8 @@
"contractAddress": "https://nfthud.io/collection/azuki",
"dateOfLaunch": "1/12/2022",
"lastUpdated": "7/6/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "POAP",
@@ -2846,7 +2920,8 @@
"contractAddress": "",
"dateOfLaunch": "1/1/2021",
"lastUpdated": "7/15/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Courtyard",
@@ -2881,7 +2956,8 @@
"contractAddress": "https://docs.courtyard.io/courtyard/resources/useful-links#ethereum-mainnet",
"dateOfLaunch": "5/8/2022",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
}
],
"Gaming": [
@@ -2920,7 +2996,8 @@
"contractAddress": "",
"dateOfLaunch": "6/11/2025",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Remix",
@@ -2960,7 +3037,8 @@
"contractAddress": "",
"dateOfLaunch": "4/4/2021",
"lastUpdated": "2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Illuvium",
@@ -2996,7 +3074,8 @@
"contractAddress": "",
"dateOfLaunch": "7/25/2024",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "true"
},
{
"name": "Parallel",
@@ -3032,7 +3111,8 @@
"contractAddress": "",
"dateOfLaunch": "4/22/2024",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
}
],
"DAO": [
@@ -3072,7 +3152,8 @@
"contractAddress": "",
"dateOfLaunch": "1/8/2020",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Tally",
@@ -3116,7 +3197,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Hats Protocol",
@@ -3159,7 +3241,8 @@
"contractAddress": "0x3bc1A0Ad72417f2d411118085256fC53CBdDd137",
"dateOfLaunch": "6/27/2024",
"lastUpdated": "7/7/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Aragon",
@@ -3196,7 +3279,8 @@
"contractAddress": "",
"dateOfLaunch": "10/30/2018",
"lastUpdated": "7/15/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "DAOhaus",
@@ -3237,7 +3321,8 @@
"contractAddress": "https://docs.daohaus.club/contracts",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Event Horizon",
@@ -3278,7 +3363,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "7/7/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Splits",
@@ -3316,7 +3402,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Safe",
@@ -3360,7 +3447,8 @@
"contractAddress": "",
"dateOfLaunch": "7/7/2022",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Coordinape",
@@ -3399,7 +3487,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Endaoment",
@@ -3436,7 +3525,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "ResearchHub",
@@ -3472,7 +3562,8 @@
"contractAddress": "",
"dateOfLaunch": "2/25/2019",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Prime Intellect",
@@ -3507,7 +3598,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Agora",
@@ -3547,7 +3639,8 @@
"contractAddress": "",
"dateOfLaunch": "5/31/2024",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Sablier",
@@ -3590,7 +3683,8 @@
"contractAddress": "https://github.com/sablier-labs",
"dateOfLaunch": "12/13/2019",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
}
],
"Productivity": [
@@ -3630,7 +3724,8 @@
"contractAddress": "https://docs.ens.domains/learn/deployments",
"dateOfLaunch": "5/4/2017",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Huddle01",
@@ -3670,7 +3765,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Livepeer",
@@ -3708,7 +3804,8 @@
"contractAddress": "https://docs.livepeer.org/references/contract-addresses",
"dateOfLaunch": "4/30/2018",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "ZK / Open Passport",
@@ -3741,7 +3838,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "7/21/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "QuarkID",
@@ -3778,7 +3876,8 @@
"contractAddress": "",
"dateOfLaunch": "1/20/2025",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Rotki",
@@ -3820,7 +3919,8 @@
"contractAddress": "",
"dateOfLaunch": "10/1/2019",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Fileverse - ddocs",
@@ -3857,7 +3957,8 @@
"contractAddress": "",
"dateOfLaunch": "4/7/2024",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Fileverse - dsheets",
@@ -3894,7 +3995,8 @@
"contractAddress": "",
"dateOfLaunch": "6/23/2025",
"lastUpdated": "7/11/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "EAS",
@@ -3934,7 +4036,8 @@
"contractAddress": "https://github.com/ethereum-attestation-service/eas-contracts",
"dateOfLaunch": "2/27/2023",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Unlock",
@@ -3982,7 +4085,8 @@
"contractAddress": "https://docs.unlock-protocol.com/core-protocol/unlock/networks",
"dateOfLaunch": "3/28/2021",
"lastUpdated": "7/15/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Human Passport",
@@ -4028,7 +4132,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "6/13/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Sequence",
@@ -4067,7 +4172,8 @@
"contractAddress": "",
"dateOfLaunch": "1/20/2021",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Eternal AI",
@@ -4105,7 +4211,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Virtuals",
@@ -4142,7 +4249,8 @@
"contractAddress": "",
"dateOfLaunch": "",
"lastUpdated": "",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
}
],
"Bridge": [
@@ -4189,7 +4297,8 @@
"contractAddress": "",
"dateOfLaunch": "9/9/2024",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Layerswap",
@@ -4233,7 +4342,8 @@
"contractAddress": "0x2Fc617E933a52713247CE25730f6695920B3befe",
"dateOfLaunch": "6/11/2021",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Hop",
@@ -4272,7 +4382,8 @@
"contractAddress": "0x914f986a44acb623a277d6bd17368171fcbe4273",
"dateOfLaunch": "7/12/2021",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Stargate",
@@ -4317,7 +4428,8 @@
"contractAddress": "0x296f55f8fb28e498b858d0bcda06d955b2cb3f97",
"dateOfLaunch": "3/18/2022",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Across",
@@ -4360,7 +4472,8 @@
"contractAddress": "0x7355Efc63Ae731f584380a9838292c7046c1e433",
"dateOfLaunch": "11/8/2021",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Meson",
@@ -4405,7 +4518,8 @@
"contractAddress": "",
"dateOfLaunch": "12/1/2021",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "deBridge",
@@ -4444,7 +4558,8 @@
"contractAddress": "0x43de2d77bf8027e25dbd179b491e8d64f38398aa",
"dateOfLaunch": "2/17/2022",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Orbiter Finance",
@@ -4490,7 +4605,8 @@
"contractAddress": "",
"dateOfLaunch": "12/30/2021",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Celer cBridge",
@@ -4532,7 +4648,8 @@
"contractAddress": "0x5427FEFA711Eff984124bFBB1AB6fbf5E3DA1820",
"dateOfLaunch": "6/10/2021",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Synapse",
@@ -4573,7 +4690,8 @@
"contractAddress": "0x7E7A0e201FD38d3ADAA9523Da6C109a07118C96a",
"dateOfLaunch": "8/29/2021",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Gas.zip",
@@ -4617,7 +4735,8 @@
"contractAddress": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762",
"dateOfLaunch": "8/9/2023",
"lastUpdated": "7/3/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Staking Launchpad",
@@ -4668,7 +4787,8 @@
"contractAddress": "0x00000000219ab540356cBB839Cbe05303d7705Fa",
"dateOfLaunch": "12/1/2020",
"lastUpdated": "7/7/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
},
{
"name": "Bungee",
@@ -4713,7 +4833,8 @@
"contractAddress": "https://github.com/SocketDotTech/bungee-contracts-public/tree/master/deployments",
"dateOfLaunch": "10/10/2023",
"lastUpdated": "7/14/2025",
- "ready": "true"
+ "ready": "true",
+ "devconnect": "false"
}
]
}
\ No newline at end of file
diff --git a/src/data/mocks/growThePieBlockspaceData.json b/src/data/mocks/growThePieBlockspaceData.json
index 64d5e31e2c3..cf0a3b797d9 100644
--- a/src/data/mocks/growThePieBlockspaceData.json
+++ b/src/data/mocks/growThePieBlockspaceData.json
@@ -47,5 +47,19 @@
"social": 0.0026860360526779923,
"token_transfers": 0.03147479525602267,
"unlabeled": 0.30152985600916654
+ },
+ "ink": {
+ "nft": 0.006050200017338907,
+ "defi": 0.11765117644545392,
+ "social": 0.0015029766506283954,
+ "token_transfers": 0.05259639266672885,
+ "unlabeled": 0.6267918657739237
+ },
+ "unichain": {
+ "nft": 0.006050200017338907,
+ "defi": 0.11765117644545392,
+ "social": 0.0015029766506283954,
+ "token_transfers": 0.05259639266672885,
+ "unlabeled": 0.6267918657739237
}
-}
\ No newline at end of file
+}
diff --git a/src/data/mocks/growThePieData.json b/src/data/mocks/growThePieData.json
index 8b3b5d0f5f5..8f5bfd2cbe9 100644
--- a/src/data/mocks/growThePieData.json
+++ b/src/data/mocks/growThePieData.json
@@ -1,6 +1,9 @@
{
"txCount": { "value": 20113689, "timestamp": 1732561036299 },
- "txCostsMedianUsd": { "value": 0.10252370826740381, "timestamp": 1732561036299 },
+ "txCostsMedianUsd": {
+ "value": 0.10252370826740381,
+ "timestamp": 1732561036299
+ },
"dailyTxCosts": {
"ethereum": 1.5642321147439395,
"arbitrum": 0.010201116846622714,
@@ -22,7 +25,9 @@
"redstone": 0.0018557582938633012,
"derive": 0.03414083342479006,
"orderly": 0.0010056552980039267,
- "worldchain": 0.006684175070209207
+ "worldchain": 0.006684175070209207,
+ "ink": 0.000084959363439004,
+ "unichain": 0.000060453342918528
},
"activeAddresses": {
"mantle": 32493,
@@ -48,6 +53,8 @@
"zksync_era": 47007,
"polygon_zkevm": 2708,
"zora": 18101,
- "linea": 77067
+ "linea": 77067,
+ "ink": 92296,
+ "unichain": 49158
}
}
diff --git a/src/data/mocks/growThePieMasterData.json b/src/data/mocks/growThePieMasterData.json
index 2e4157c2fc0..7cbdbf5e5f2 100644
--- a/src/data/mocks/growThePieMasterData.json
+++ b/src/data/mocks/growThePieMasterData.json
@@ -25,6 +25,8 @@
"taiko": "2024-05-27",
"worldchain": "2024-10-17",
"zksync-era": "2023-03-24",
- "zora": "2023-06-21"
+ "zora": "2023-06-21",
+ "ink": "2024-12-07",
+ "unichain": "2025-02-12"
}
-}
\ No newline at end of file
+}
diff --git a/src/data/mocks/l2beatData.json b/src/data/mocks/l2beatData.json
index 1241fb4cc3a..cc0ad0ad4c0 100644
--- a/src/data/mocks/l2beatData.json
+++ b/src/data/mocks/l2beatData.json
@@ -2,13 +2,7 @@
"success": true,
"data": {
"chart": {
- "types": [
- "timestamp",
- "native",
- "canonical",
- "external",
- "ethPrice"
- ],
+ "types": ["timestamp", "native", "canonical", "external", "ethPrice"],
"data": [
[1728518400, 12951959828.64, 14204896668.91, 7959907185.79, 2367.4463],
[1728540000, 13095797476.8, 14349993739.95, 8021137975.78, 2402.3308],
@@ -136,8858 +130,8681 @@
}
},
"projects": {
- "arbitrum": {
- "id": "arbitrum",
- "name": "Arbitrum One",
- "slug": "arbitrum",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "Nitro"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "WasmVM"
- },
- {
- "category": "Other",
- "name": "Governance"
- },
- {
- "category": "Other",
- "name": "L3HostChain"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 14519913133.67,
- "ether": 4387357086.39,
- "stablecoin": 4802469953.21,
- "associated": 2367575309.09
- },
- "associatedTokens": [
- "ARB"
- ],
- "change7d": 0.0773180163756924
+ "arbitrum": {
+ "id": "arbitrum",
+ "name": "Arbitrum One",
+ "slug": "arbitrum",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "Nitro"
},
- "stage": "Stage 1",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "warning",
- "description": "Fraud proofs allow 14 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "7d",
- "sentiment": "warning",
- "warning": {
- "value": "The Security Council can upgrade with no delay.",
- "sentiment": "bad"
- },
- "description": "Non-emergency upgrades are initiated on L2 and go through a 8d delay. Since there is a 1d delay to force a tx (forcing the inclusion in the following state update), users have only 7d to exit. \n \n If users post a tx after that time, they would only be able to self propose a state root 12d 17h after the last state root was proposed and then wait for the 6d 8h challenge window, while the upgrade would be confirmed just after the 6d 8h challenge window and the 3d L1 timelock."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
- },
- "base": {
- "id": "base",
- "name": "Base",
- "slug": "base",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Other",
- "name": "L3HostChain"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 8612500120.84,
- "ether": 2758347738.64,
- "stablecoin": 3582063074.24,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.089218876103043
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "good",
- "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
- }
- ]
- },
- "optimism": {
- "id": "optimism",
- "name": "OP Mainnet",
- "slug": "optimism",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Other",
- "name": "L3HostChain"
- },
- {
- "category": "Other",
- "name": "Governance"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 6196279162.59,
- "ether": 1680718678.59,
- "stablecoin": 1191671605.42,
- "associated": 2002120935.2
- },
- "associatedTokens": [
- "OP"
- ],
- "change7d": 0.0699202061201485
+ {
+ "category": "VM",
+ "name": "WasmVM"
},
- "stage": "Stage 1",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "good",
- "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no exit window for users to exit in case of unwanted regular upgrades as they are initiated by the Security Council with instant upgrade power and without proper notice."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
- }
- ]
+ {
+ "category": "Other",
+ "name": "Governance"
+ },
+ {
+ "category": "Other",
+ "name": "L3HostChain"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 14519913133.67,
+ "ether": 4387357086.39,
+ "stablecoin": 4802469953.21,
+ "associated": 2367575309.09
+ },
+ "associatedTokens": ["ARB"],
+ "change7d": 0.0773180163756924
},
- "mantle": {
- "id": "mantle",
- "name": "Mantle",
- "slug": "mantle",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "CustomDA"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1775655355.27,
- "ether": 1000829476.79,
- "stablecoin": 346033277.24,
- "associated": 206593370.7
- },
- "associatedTokens": [
- "MNT"
- ],
- "change7d": 0.153636009521903
+ "stage": "Stage 1",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation rely fully on data that is NOT published on chain. Mantle DA contracts are forked from EigenDA with significant modifications, most importantly removal of slashing conditions. DA fraud proof mechanism is not live yet."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "warning",
+ "description": "Fraud proofs allow 14 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "7d",
+ "sentiment": "warning",
+ "warning": {
+ "value": "The Security Council can upgrade with no delay.",
+ "sentiment": "bad"
+ },
+ "description": "Non-emergency upgrades are initiated on L2 and go through a 8d delay. Since there is a 1d delay to force a tx (forcing the inclusion in the following state update), users have only 7d to exit. \n \n If users post a tx after that time, they would only be able to self propose a state root 12d 17h after the last state root was proposed and then wait for the 6d 8h challenge window, while the upgrade would be confirmed just after the 6d 8h challenge window and the 3d L1 timelock."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "base": {
+ "id": "base",
+ "name": "Base",
+ "slug": "base",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Other",
+ "name": "L3HostChain"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 8612500120.84,
+ "ether": 2758347738.64,
+ "stablecoin": 3582063074.24,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.089218876103043
},
- "blast": {
- "id": "blast",
- "name": "Blast",
- "slug": "blast",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1464031435.75,
- "ether": 1056445834.33,
- "stablecoin": 197270866.46,
- "associated": 186283266.53
- },
- "associatedTokens": [
- "BLAST"
- ],
- "change7d": 0.115509463493146
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "good",
+ "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
+ }
+ ]
+ },
+ "optimism": {
+ "id": "optimism",
+ "name": "OP Mainnet",
+ "slug": "optimism",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Other",
+ "name": "L3HostChain"
+ },
+ {
+ "category": "Other",
+ "name": "Governance"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 6196279162.59,
+ "ether": 1680718678.59,
+ "stablecoin": 1191671605.42,
+ "associated": 2002120935.2
+ },
+ "associatedTokens": ["OP"],
+ "change7d": 0.0699202061201485
},
- "scroll": {
- "id": "scroll",
- "name": "Scroll",
- "slug": "scroll",
- "type": "layer2",
- "category": "ZK Rollup",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1085270515.25,
- "ether": 777698458.3,
- "stablecoin": 52022651.78,
- "associated": 135038048.13
- },
- "associatedTokens": [
- "SCR"
- ],
- "change7d": 0.0759531710709884
+ "stage": "Stage 1",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (SN)",
- "sentiment": "good",
- "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "good",
+ "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no exit window for users to exit in case of unwanted regular upgrades as they are initiated by the Security Council with instant upgrade power and without proper notice."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
+ }
+ ]
+ },
+ "mantle": {
+ "id": "mantle",
+ "name": "Mantle",
+ "slug": "mantle",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "CustomDA"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1775655355.27,
+ "ether": 1000829476.79,
+ "stablecoin": 346033277.24,
+ "associated": 206593370.7
+ },
+ "associatedTokens": ["MNT"],
+ "change7d": 0.153636009521903
},
- "linea": {
- "id": "linea",
- "name": "Linea",
- "slug": "linea",
- "type": "layer2",
- "category": "ZK Rollup",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Other",
- "name": "L3HostChain"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 949499632.91,
- "ether": 765004713.99,
- "stablecoin": 46144671.61,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.149576490782338
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (SN)",
- "sentiment": "good",
- "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1. Unlike most ZK rollups, transaction data is posted instead of state diffs."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation rely fully on data that is NOT published on chain. Mantle DA contracts are forked from EigenDA with significant modifications, most importantly removal of slashing conditions. DA fraud proof mechanism is not live yet."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "blast": {
+ "id": "blast",
+ "name": "Blast",
+ "slug": "blast",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1464031435.75,
+ "ether": 1056445834.33,
+ "stablecoin": 197270866.46,
+ "associated": 186283266.53
+ },
+ "associatedTokens": ["BLAST"],
+ "change7d": 0.115509463493146
},
- "zksync2": {
- "id": "zksync2",
- "name": "ZKsync Era",
- "slug": "zksync-era",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "ZK Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Stack",
- "name": "ZKStack"
- },
- {
- "category": "Other",
- "name": "L3HostChain"
- },
- {
- "category": "Infra",
- "name": "ElasticChain"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 917340067.71,
- "ether": 308914649.32,
- "stablecoin": 62102151.46,
- "associated": 507685862.92
- },
- "associatedTokens": [
- "ZK"
- ],
- "change7d": 0.0939873183552358
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Enqueue via L1",
- "sentiment": "warning",
- "description": "Users can submit transactions to an L1 queue, but can't force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain (SD)",
- "sentiment": "good",
- "description": "All of the data (SD = state diffs) needed for proof construction is published onchain."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted standard upgrade because the central operator can censor withdrawal transactions by implementing a TransactionFilterer with no delay. The standard upgrade delay is 4d 21h."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "warning",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen. There is a decentralized Governance system that can attempt changing Proposers with an upgrade."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "scroll": {
+ "id": "scroll",
+ "name": "Scroll",
+ "slug": "scroll",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1085270515.25,
+ "ether": 777698458.3,
+ "stablecoin": 52022651.78,
+ "associated": 135038048.13
+ },
+ "associatedTokens": ["SCR"],
+ "change7d": 0.0759531710709884
},
- "starknet": {
- "id": "starknet",
- "name": "Starknet",
- "slug": "starknet",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "Starknet",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "CairoVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Infra",
- "name": "SHARP"
- },
- {
- "category": "Other",
- "name": "Governance"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 710326532.1,
- "ether": 254598315.88,
- "stablecoin": 78045589.92,
- "associated": 337840813.07
- },
- "associatedTokens": [
- "STRK"
- ],
- "change7d": 0.130915571108154
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "Onchain (SD)",
- "sentiment": "good",
- "description": "All of the data (SD = state diffs) needed for proof construction is published onchain."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (SN)",
+ "sentiment": "good",
+ "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "linea": {
+ "id": "linea",
+ "name": "Linea",
+ "slug": "linea",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Other",
+ "name": "L3HostChain"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 949499632.91,
+ "ether": 765004713.99,
+ "stablecoin": 46144671.61,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.149576490782338
},
- "mantapacific": {
- "id": "mantapacific",
- "name": "Manta Pacific",
- "slug": "mantapacific",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 555645039.27,
- "ether": 182838295.49,
- "stablecoin": 27547813.67,
- "associated": 276141427.33
- },
- "associatedTokens": [
- "MANTA"
- ],
- "change7d": 0.136510657414638
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (SN)",
+ "sentiment": "good",
+ "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1. Unlike most ZK rollups, transaction data is posted instead of state diffs."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "zksync2": {
+ "id": "zksync2",
+ "name": "ZKsync Era",
+ "slug": "zksync-era",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "ZK Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Stack",
+ "name": "ZKStack"
+ },
+ {
+ "category": "Other",
+ "name": "L3HostChain"
+ },
+ {
+ "category": "Infra",
+ "name": "ElasticChain"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 917340067.71,
+ "ether": 308914649.32,
+ "stablecoin": 62102151.46,
+ "associated": 507685862.92
+ },
+ "associatedTokens": ["ZK"],
+ "change7d": 0.0939873183552358
},
- "mode": {
- "id": "mode",
- "name": "Mode Network",
- "shortName": "Mode",
- "slug": "mode",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 344647264.2,
- "ether": 49719116.99,
- "stablecoin": 6679047.66,
- "associated": 14317558.32
- },
- "associatedTokens": [
- "MODE"
- ],
- "change7d": 0.0989409975685549
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Enqueue via L1",
+ "sentiment": "warning",
+ "description": "Users can submit transactions to an L1 queue, but can't force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain (SD)",
+ "sentiment": "good",
+ "description": "All of the data (SD = state diffs) needed for proof construction is published onchain."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted standard upgrade because the central operator can censor withdrawal transactions by implementing a TransactionFilterer with no delay. The standard upgrade delay is 4d 21h."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "warning",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen. There is a decentralized Governance system that can attempt changing Proposers with an upgrade."
+ }
+ ]
+ },
+ "starknet": {
+ "id": "starknet",
+ "name": "Starknet",
+ "slug": "starknet",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "Starknet",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "CairoVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Infra",
+ "name": "SHARP"
+ },
+ {
+ "category": "Other",
+ "name": "Governance"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 710326532.1,
+ "ether": 254598315.88,
+ "stablecoin": 78045589.92,
+ "associated": 337840813.07
+ },
+ "associatedTokens": ["STRK"],
+ "change7d": 0.130915571108154
},
- "metis": {
- "id": "metis",
- "name": "Metis Andromeda",
- "shortName": "Metis",
- "slug": "metis",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OVM",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "CustomDA"
- },
- {
- "category": "Fork",
- "name": "OVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 326151746.16,
- "ether": 12768832.2,
- "stablecoin": 29328309.8,
- "associated": 283798367.6
- },
- "associatedTokens": [
- "Metis"
- ],
- "change7d": 0.127963261958407
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Enqueue via L1",
- "sentiment": "warning",
- "description": "Users can submit transactions to an L1 queue, but can't force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External (MEMO)",
- "sentiment": "bad",
- "description": "Transaction data is kept in MEMO decentralized storage."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain (SD)",
+ "sentiment": "good",
+ "description": "All of the data (SD = state diffs) needed for proof construction is published onchain."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "mantapacific": {
+ "id": "mantapacific",
+ "name": "Manta Pacific",
+ "slug": "mantapacific",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 555645039.27,
+ "ether": 182838295.49,
+ "stablecoin": 27547813.67,
+ "associated": 276141427.33
+ },
+ "associatedTokens": ["MANTA"],
+ "change7d": 0.136510657414638
},
- "fuel": {
- "id": "fuel",
- "name": "Fuel Ignition",
- "slug": "fuel",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "FuelVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 312221249.25,
- "ether": 189034104.91,
- "stablecoin": 34625689.56,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.158758063821449
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "mode": {
+ "id": "mode",
+ "name": "Mode Network",
+ "shortName": "Mode",
+ "slug": "mode",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 344647264.2,
+ "ether": 49719116.99,
+ "stablecoin": 6679047.66,
+ "associated": 14317558.32
+ },
+ "associatedTokens": ["MODE"],
+ "change7d": 0.0989409975685549
},
- "worldchain": {
- "id": "worldchain",
- "name": "World Chain",
- "slug": "world",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Identity"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Alchemy"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 220075918.87,
- "ether": 5006542.39,
- "stablecoin": 9032698.38,
- "associated": 203996074.86
- },
- "associatedTokens": [
- "WLD"
- ],
- "change7d": 0.648866305013397
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "metis": {
+ "id": "metis",
+ "name": "Metis Andromeda",
+ "shortName": "Metis",
+ "slug": "metis",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OVM",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "CustomDA"
+ },
+ {
+ "category": "Fork",
+ "name": "OVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 326151746.16,
+ "ether": 12768832.2,
+ "stablecoin": 29328309.8,
+ "associated": 283798367.6
+ },
+ "associatedTokens": ["Metis"],
+ "change7d": 0.127963261958407
},
- "real": {
- "id": "real",
- "name": "Re.al",
- "slug": "real",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "RWA"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 189431953.3,
- "ether": 2519399.8,
- "stablecoin": 7424.34,
- "associated": 22292598.52
- },
- "associatedTokens": [
- "RWA"
- ],
- "change7d": 0.333235994666568
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Enqueue via L1",
+ "sentiment": "warning",
+ "description": "Users can submit transactions to an L1 queue, but can't force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (MEMO)",
+ "sentiment": "bad",
+ "description": "Transaction data is kept in MEMO decentralized storage."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "fuel": {
+ "id": "fuel",
+ "name": "Fuel Ignition",
+ "slug": "fuel",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "FuelVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 312221249.25,
+ "ether": 189034104.91,
+ "stablecoin": 34625689.56,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.158758063821449
},
- "fraxtal": {
- "id": "fraxtal",
- "name": "Fraxtal",
- "slug": "fraxtal",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "CustomDA"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 187895720.91,
- "ether": 34838247,
- "stablecoin": 77661341.14,
- "associated": 44254537.02
- },
- "associatedTokens": [
- "FXS",
- "FPIS"
- ],
- "change7d": 0.0730025391630083
- },
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation rely fully on data that is NOT published on chain. Fraxtal uses a separate data availability module developed by the Frax Core Team, and data availability attestations are not published on chain."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1."
+ },
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "worldchain": {
+ "id": "worldchain",
+ "name": "World Chain",
+ "slug": "world",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Identity"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Alchemy"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 220075918.87,
+ "ether": 5006542.39,
+ "stablecoin": 9032698.38,
+ "associated": 203996074.86
+ },
+ "associatedTokens": ["WLD"],
+ "change7d": 0.648866305013397
},
- "zircuit": {
- "id": "zircuit",
- "name": "Zircuit",
- "slug": "zircuit",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 174337451.03,
- "ether": 172258887.46,
- "stablecoin": 1884006.88,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.184385867907863
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "real": {
+ "id": "real",
+ "name": "Re.al",
+ "slug": "real",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "RWA"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 189431953.3,
+ "ether": 2519399.8,
+ "stablecoin": 7424.34,
+ "associated": 22292598.52
+ },
+ "associatedTokens": ["RWA"],
+ "change7d": 0.333235994666568
+ },
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "fraxtal": {
+ "id": "fraxtal",
+ "name": "Fraxtal",
+ "slug": "fraxtal",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "CustomDA"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 187895720.91,
+ "ether": 34838247,
+ "stablecoin": 77661341.14,
+ "associated": 44254537.02
+ },
+ "associatedTokens": ["FXS", "FPIS"],
+ "change7d": 0.0730025391630083
+ },
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation rely fully on data that is NOT published on chain. Fraxtal uses a separate data availability module developed by the Frax Core Team, and data availability attestations are not published on chain."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "zircuit": {
+ "id": "zircuit",
+ "name": "Zircuit",
+ "slug": "zircuit",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 174337451.03,
+ "ether": 172258887.46,
+ "stablecoin": 1884006.88,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.184385867907863
+ },
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "galxegravity": {
+ "id": "galxegravity",
+ "name": "Gravity",
+ "slug": "galxegravity",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 137851764.81,
+ "ether": 1724633.49,
+ "stablecoin": 1760072.07,
+ "associated": 134367059.25
+ },
+ "associatedTokens": ["G"],
+ "change7d": 0.042906591654984
+ },
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1000d delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 11d 23h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "lisk": {
+ "id": "lisk",
+ "name": "Lisk",
+ "slug": "lisk",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Other",
+ "name": "MigratedFromL1"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 136736279.37,
+ "ether": 1545831.78,
+ "stablecoin": 247367.27,
+ "associated": 134778471.42
+ },
+ "associatedTokens": ["LSK"],
+ "change7d": 0.0689482145956715
+ },
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "taiko": {
+ "id": "taiko",
+ "name": "Taiko",
+ "slug": "taiko",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "Taiko",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Other",
+ "name": "BasedSequencing"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 121266589.86,
+ "ether": 24635937.92,
+ "stablecoin": 12668572.04,
+ "associated": 82427826.75
+ },
+ "associatedTokens": ["TAIKO"],
+ "change7d": 0.192005765023217
+ },
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "The system uses a based (or L1-sequenced) rollup sequencing mechanism. Users can propose L2 blocks directly on the Taiko L1 contract. The TaikoAdmin multisig can pause block proposals without delay."
+ },
+ {
+ "name": "State Validation",
+ "value": "SGX proofs",
+ "sentiment": "bad",
+ "description": "Taiko uses a multi-tier proof system to validate the state. However, current tier proofs include either SGX (secure-enclave) execution verification, or approval by a minimum number of Guardians. State validation through the Zk-proof tier is not yet active. \n Each proof goes through a cooldown window allowing for contestation. Contested blocks require proof from a higher level tier. If no contestation is made, or the block has been proven by the highest tier, the proof is considered valid.\n The system allows for an invalid state to be proven by either a compromised SGX instance or compromised Guardians (the highest tier). This can lead to a state being proven as valid when it is not."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Provers can examine the proposed blocks on the TaikoL1 contract, and generate SGX proofs for them. Currently, any prover providing a valid SGX attestation can register a SGX instance and create proofs for proposed blocks."
+ }
+ ]
+ },
+ "bob": {
+ "id": "bob",
+ "name": "BOB",
+ "slug": "bob",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Bitcoin DApps"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 116691306.39,
+ "ether": 13503783.95,
+ "stablecoin": 3350833.27,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0973637660327704
},
- "galxegravity": {
- "id": "galxegravity",
- "name": "Gravity",
- "slug": "galxegravity",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 137851764.81,
- "ether": 1724633.49,
- "stablecoin": 1760072.07,
- "associated": 134367059.25
- },
- "associatedTokens": [
- "G"
- ],
- "change7d": 0.042906591654984
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1000d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 11d 23h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "immutablex": {
+ "id": "immutablex",
+ "name": "Immutable X",
+ "slug": "immutablex",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "StarkEx",
+ "purposes": ["NFT", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "StarkEx"
+ },
+ {
+ "category": "Infra",
+ "name": "SHARP"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 93659353.37,
+ "ether": 17602310.27,
+ "stablecoin": 724926.01,
+ "associated": 69921463.66
+ },
+ "associatedTokens": ["IMX"],
+ "change7d": 0.0658218658810521
},
- "lisk": {
- "id": "lisk",
- "name": "Lisk",
- "slug": "lisk",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Other",
- "name": "MigratedFromL1"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 136736279.37,
- "ether": 1545831.78,
- "stablecoin": 247367.27,
- "associated": 134778471.42
- },
- "associatedTokens": [
- "LSK"
- ],
- "change7d": 0.0689482145956715
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 5/7 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. NFTs will be minted on L1 to exit."
+ }
+ ]
+ },
+ "apex": {
+ "id": "apex",
+ "name": "ApeX",
+ "slug": "apex",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "StarkEx",
+ "purposes": ["Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "StarkEx"
+ },
+ {
+ "category": "Infra",
+ "name": "SHARP"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 79877798.36,
+ "ether": 0,
+ "stablecoin": 79877798.36,
+ "associated": 0
+ },
+ "associatedTokens": ["APEX"],
+ "change7d": 0.00525909245244316
},
- "taiko": {
- "id": "taiko",
- "name": "Taiko",
- "slug": "taiko",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "Taiko",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Other",
- "name": "BasedSequencing"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 121266589.86,
- "ether": 24635937.92,
- "stablecoin": 12668572.04,
- "associated": 82427826.75
- },
- "associatedTokens": [
- "TAIKO"
- ],
- "change7d": 0.192005765023217
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a trade or a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for 7d, users can use the exit hatch to withdraw their funds. Users are required to find a counterparty for the trade by out of system means."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "The system uses a based (or L1-sequenced) rollup sequencing mechanism. Users can propose L2 blocks directly on the Taiko L1 contract. The TaikoAdmin multisig can pause block proposals without delay."
- },
- {
- "name": "State Validation",
- "value": "SGX proofs",
- "sentiment": "bad",
- "description": "Taiko uses a multi-tier proof system to validate the state. However, current tier proofs include either SGX (secure-enclave) execution verification, or approval by a minimum number of Guardians. State validation through the Zk-proof tier is not yet active. \n Each proof goes through a cooldown window allowing for contestation. Contested blocks require proof from a higher level tier. If no contestation is made, or the block has been proven by the highest tier, the proof is considered valid.\n The system allows for an invalid state to be proven by either a compromised SGX instance or compromised Guardians (the highest tier). This can lead to a state being proven as valid when it is not."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Provers can examine the proposed blocks on the TaikoL1 contract, and generate SGX proofs for them. Currently, any prover providing a valid SGX attestation can register a SGX instance and create proofs for proposed blocks."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 3/5 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. Positions will be closed using the average price from the last batch state update."
+ }
+ ]
+ },
+ "zklinknova": {
+ "id": "zklinknova",
+ "name": "zkLink Nova",
+ "slug": "zklinknova",
+ "type": "layer3",
+ "category": "Validium",
+ "provider": "zkLink Nexus",
+ "purposes": ["Universal", "Interoperability"],
+ "isArchived": false,
+ "hostChain": "Linea",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Linea"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 69966371.85,
+ "ether": 28367222.4,
+ "stablecoin": 953767.02,
+ "associated": 22181034.2
+ },
+ "associatedTokens": ["ZKL"],
+ "change7d": -0.0308046828380348
},
- "bob": {
- "id": "bob",
- "name": "BOB",
- "slug": "bob",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Bitcoin DApps"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 116691306.39,
- "ether": 13503783.95,
- "stablecoin": 3350833.27,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0973637660327704
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs",
+ "sentiment": "good",
+ "description": "Zero knowledge cryptography is used to ensure state correctness. Proofs are first verified on Linea and finally on Ethereum."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation rely fully on data that is ultimately NOT published on Ethereum."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "polygonzkevm": {
+ "id": "polygonzkevm",
+ "name": "Polygon zkEVM",
+ "slug": "polygonzkevm",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "Polygon",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "PolygonCDK"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "Infra",
+ "name": "AggLayer"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 68526117.51,
+ "ether": 17993896.25,
+ "stablecoin": 5856976.29,
+ "associated": 42624874.8
+ },
+ "associatedTokens": ["POL", "MATIC"],
+ "change7d": 0.126307660946599
},
- "immutablex": {
- "id": "immutablex",
- "name": "Immutable X",
- "slug": "immutablex",
- "type": "layer2",
- "category": "Validium",
- "provider": "StarkEx",
- "purposes": [
- "NFT",
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "StarkEx"
- },
- {
- "category": "Infra",
- "name": "SHARP"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 93659353.37,
- "ether": 17602310.27,
- "stablecoin": 724926.01,
- "associated": 69921463.66
- },
- "associatedTokens": [
- "IMX"
- ],
- "change7d": 0.0658218658810521
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 5/7 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. NFTs will be minted on L1 to exit."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1. Unlike most ZK rollups transactions are posted instead of state diffs."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The Security Council can remove the delay on upgrades.",
+ "sentiment": "bad"
+ },
+ "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
+ }
+ ]
+ },
+ "rss3": {
+ "id": "rss3",
+ "name": "RSS3 Value Sublayer",
+ "shortName": "RSS3 VSL",
+ "slug": "rss3",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "AI", "Information"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "NearDA"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 64173669.52,
+ "ether": 2866.64,
+ "stablecoin": 144812.67,
+ "associated": 64025990.21
+ },
+ "associatedTokens": ["RSS3"],
+ "change7d": 0.0440296843574286
},
- "apex": {
- "id": "apex",
- "name": "ApeX",
- "slug": "apex",
- "type": "layer2",
- "category": "Validium",
- "provider": "StarkEx",
- "purposes": [
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "StarkEx"
- },
- {
- "category": "Infra",
- "name": "SHARP"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 79877798.36,
- "ether": 0,
- "stablecoin": 79877798.36,
- "associated": 0
- },
- "associatedTokens": [
- "APEX"
- ],
- "change7d": 0.00525909245244316
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a trade or a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for 7d, users can use the exit hatch to withdraw their funds. Users are required to find a counterparty for the trade by out of system means."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 3/5 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. Positions will be closed using the average price from the last batch state update."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation rely fully on data that is NOT published on chain."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "cronoszkevm": {
+ "id": "cronoszkevm",
+ "name": "Cronos zkEVM",
+ "slug": "cronoszkevm",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "ZK Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "CustomDA"
+ },
+ {
+ "category": "Stack",
+ "name": "ZKStack"
+ },
+ {
+ "category": "Infra",
+ "name": "ElasticChain"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 58625520.92,
+ "ether": 12940092.08,
+ "stablecoin": 5714221.45,
+ "associated": 15429120.66
+ },
+ "associatedTokens": ["zkCRO"],
+ "change7d": 0.319012461370929
},
- "zklinknova": {
- "id": "zklinknova",
- "name": "zkLink Nova",
- "slug": "zklinknova",
- "type": "layer3",
- "category": "Validium",
- "provider": "zkLink Nexus",
- "purposes": [
- "Universal",
- "Interoperability"
- ],
- "isArchived": false,
- "hostChain": "Linea",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Linea"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 69966371.85,
- "ether": 28367222.4,
- "stablecoin": 953767.02,
- "associated": 22181034.2
- },
- "associatedTokens": [
- "ZKL"
- ],
- "change7d": -0.0308046828380348
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Enqueue via L1",
+ "sentiment": "warning",
+ "description": "Users can submit transactions to an L1 queue, but can't force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs",
- "sentiment": "good",
- "description": "Zero knowledge cryptography is used to ensure state correctness. Proofs are first verified on Linea and finally on Ethereum."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation rely fully on data that is ultimately NOT published on Ethereum."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation rely fully on data that is NOT published onchain."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted standard upgrade because the central operator can censor withdrawal transactions by implementing a TransactionFilterer with no delay. The standard upgrade delay is 4d 21h."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "warning",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen. There is a decentralized Governance system that can attempt changing Proposers with an upgrade."
+ }
+ ]
+ },
+ "zksync": {
+ "id": "zksync",
+ "name": "ZKsync Lite",
+ "slug": "zksync-lite",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "ZKsync Lite",
+ "purposes": ["Payments", "Exchange", "NFT"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 56413482.52,
+ "ether": 45450022.15,
+ "stablecoin": 9946459.21,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.14804580827824
},
- "polygonzkevm": {
- "id": "polygonzkevm",
- "name": "Polygon zkEVM",
- "slug": "polygonzkevm",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "Polygon",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "PolygonCDK"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "Infra",
- "name": "AggLayer"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 68526117.51,
- "ether": 17993896.25,
- "stablecoin": 5856976.29,
- "associated": 42624874.8
- },
- "associatedTokens": [
- "POL",
- "MATIC"
- ],
- "change7d": 0.126307660946599
- },
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1. Unlike most ZK rollups transactions are posted instead of state diffs."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "warning": {
- "value": "The Security Council can remove the delay on upgrades.",
- "sentiment": "bad"
- },
- "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
- }
- ]
+ "stage": "Stage 1",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 14d, users can use the exit hatch to withdraw their funds."
+ },
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (SN)",
+ "sentiment": "good",
+ "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "7d",
+ "sentiment": "warning",
+ "warning": {
+ "value": "The Security Council can upgrade with no delay.",
+ "sentiment": "bad"
+ },
+ "description": "Users have 7d to exit funds in case of an unwanted upgrade. There is a 21d delay before an upgrade is applied, and withdrawals can take up to 14d to be processed."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a zero knowledge proof of funds."
+ }
+ ]
+ },
+ "degate3": {
+ "id": "degate3",
+ "name": "DeGate V1",
+ "slug": "degate3",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "Loopring",
+ "purposes": ["Exchange", "NFT"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "Fork",
+ "name": "LoopringFork"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 52278697.77,
+ "ether": 1915110.08,
+ "stablecoin": 23386060.13,
+ "associated": 24835003.76
+ },
+ "associatedTokens": ["DG"],
+ "change7d": 0.0297117256993806
},
- "rss3": {
- "id": "rss3",
- "name": "RSS3 Value Sublayer",
- "shortName": "RSS3 VSL",
- "slug": "rss3",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "AI",
- "Information"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "NearDA"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 64173669.52,
- "ether": 2866.64,
- "stablecoin": 144812.67,
- "associated": 64025990.21
- },
- "associatedTokens": [
- "RSS3"
- ],
- "change7d": 0.0440296843574286
+ "stage": "Stage 2",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1 with a 0.01 ETH fee. If the sequencer is down for more than 15d, users can use the exit hatch to withdraw their funds. The sequencer can censor individual deposits, but in such case after 15d users can get their funds back."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation rely fully on data that is NOT published on chain."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (SN)",
+ "sentiment": "good",
+ "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "30d",
+ "sentiment": "good",
+ "description": "Users have 30d to exit funds in case of an unwanted regular upgrade. There is a 45d delay before a regular upgrade is applied, and withdrawals can take up to 15d to be processed."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds."
+ }
+ ]
+ },
+ "aevo": {
+ "id": "aevo",
+ "name": "Aevo",
+ "slug": "aevo",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 51753680.28,
+ "ether": 10188636.1,
+ "stablecoin": 40925920.42,
+ "associated": 0
+ },
+ "associatedTokens": ["AEVO"],
+ "change7d": 0.0388037272728785
},
- "cronoszkevm": {
- "id": "cronoszkevm",
- "name": "Cronos zkEVM",
- "slug": "cronoszkevm",
- "type": "layer2",
- "category": "Validium",
- "provider": "ZK Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "CustomDA"
- },
- {
- "category": "Stack",
- "name": "ZKStack"
- },
- {
- "category": "Infra",
- "name": "ElasticChain"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 58625520.92,
- "ether": 12940092.08,
- "stablecoin": 5714221.45,
- "associated": 15429120.66
- },
- "associatedTokens": [
- "zkCRO"
- ],
- "change7d": 0.319012461370929
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Enqueue via L1",
- "sentiment": "warning",
- "description": "Users can submit transactions to an L1 queue, but can't force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation rely fully on data that is NOT published onchain."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted standard upgrade because the central operator can censor withdrawal transactions by implementing a TransactionFilterer with no delay. The standard upgrade delay is 4d 21h."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "warning",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen. There is a decentralized Governance system that can attempt changing Proposers with an upgrade."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "loopring": {
+ "id": "loopring",
+ "name": "Loopring",
+ "slug": "loopring",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "Loopring",
+ "purposes": ["NFT", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 49655027.89,
+ "ether": 22434322.19,
+ "stablecoin": 4143569.12,
+ "associated": 17833076.49
+ },
+ "associatedTokens": ["LRC"],
+ "change7d": 0.152076774282583
},
- "zksync": {
- "id": "zksync",
- "name": "ZKsync Lite",
- "slug": "zksync-lite",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "ZKsync Lite",
- "purposes": [
- "Payments",
- "Exchange",
- "NFT"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 56413482.52,
- "ether": 45450022.15,
- "stablecoin": 9946459.21,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.14804580827824
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1 with a 0.02 ETH fee. If the sequencer is down for more than 15d, users can use the exit hatch to withdraw their funds. The sequencer can censor individual deposits, but in such case after 15d users can get their funds back."
},
- "stage": "Stage 1",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 14d, users can use the exit hatch to withdraw their funds."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (SN)",
- "sentiment": "good",
- "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "7d",
- "sentiment": "warning",
- "warning": {
- "value": "The Security Council can upgrade with no delay.",
- "sentiment": "bad"
- },
- "description": "Users have 7d to exit funds in case of an unwanted upgrade. There is a 21d delay before an upgrade is applied, and withdrawals can take up to 14d to be processed."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a zero knowledge proof of funds."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (SN)",
+ "sentiment": "good",
+ "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds."
+ }
+ ]
+ },
+ "lyra": {
+ "id": "lyra",
+ "name": "Derive",
+ "slug": "derive",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 49507158.23,
+ "ether": 16889885.65,
+ "stablecoin": 13143190.79,
+ "associated": 0
+ },
+ "associatedTokens": ["LYRA"],
+ "change7d": 0.0194042535747454
},
- "degate3": {
- "id": "degate3",
- "name": "DeGate V1",
- "slug": "degate3",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "Loopring",
- "purposes": [
- "Exchange",
- "NFT"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "Fork",
- "name": "LoopringFork"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 52278697.77,
- "ether": 1915110.08,
- "stablecoin": 23386060.13,
- "associated": 24835003.76
- },
- "associatedTokens": [
- "DG"
- ],
- "change7d": 0.0297117256993806
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 2",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1 with a 0.01 ETH fee. If the sequencer is down for more than 15d, users can use the exit hatch to withdraw their funds. The sequencer can censor individual deposits, but in such case after 15d users can get their funds back."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (SN)",
- "sentiment": "good",
- "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "30d",
- "sentiment": "good",
- "description": "Users have 30d to exit funds in case of an unwanted regular upgrade. There is a 45d delay before a regular upgrade is applied, and withdrawals can take up to 15d to be processed."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "dydx": {
+ "id": "dydx",
+ "name": "dYdX v3",
+ "slug": "dydx",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "StarkEx",
+ "purposes": ["Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "Stack",
+ "name": "StarkEx"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "Other",
+ "name": "Governance"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 43166829.84,
+ "ether": 0,
+ "stablecoin": 43166829.84,
+ "associated": 0
+ },
+ "associatedTokens": ["DYDX"],
+ "change7d": -0.197678222284933
},
- "aevo": {
- "id": "aevo",
- "name": "Aevo",
- "slug": "aevo",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 51753680.28,
- "ether": 10188636.1,
- "stablecoin": 40925920.42,
- "associated": 0
- },
- "associatedTokens": [
- "AEVO"
- ],
- "change7d": 0.0388037272728785
+ "stage": "Stage 1",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a trade or a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for 14d, users can use the exit hatch to withdraw their funds. Users are required to find a counterparty for the trade by out of system means."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "9d",
+ "sentiment": "warning",
+ "description": "There is a 9d exit window (or 2d if shortened by the Priority Controller)."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. Positions will be closed using the average price from the last batch state update."
+ }
+ ]
+ },
+ "nova": {
+ "id": "nova",
+ "name": "Arbitrum Nova",
+ "slug": "nova",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "Nitro"
+ },
+ {
+ "category": "VM",
+ "name": "WasmVM"
+ },
+ {
+ "category": "Other",
+ "name": "Governance"
+ },
+ {
+ "category": "Other",
+ "name": "L3HostChain"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 42252636.93,
+ "ether": 41282992.87,
+ "stablecoin": 757525.55,
+ "associated": 137088.11
+ },
+ "associatedTokens": ["ARB"],
+ "change7d": 0.181607712725109
},
- "loopring": {
- "id": "loopring",
- "name": "Loopring",
- "slug": "loopring",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "Loopring",
- "purposes": [
- "NFT",
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 49655027.89,
- "ether": 22434322.19,
- "stablecoin": 4143569.12,
- "associated": 17833076.49
- },
- "associatedTokens": [
- "LRC"
- ],
- "change7d": 0.152076774282583
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1 with a 0.02 ETH fee. If the sequencer is down for more than 15d, users can use the exit hatch to withdraw their funds. The sequencer can censor individual deposits, but in such case after 15d users can get their funds back."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (SN)",
- "sentiment": "good",
- "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "warning",
+ "description": "Fraud proofs allow 13 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "warning",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 5/6 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "2d",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The Security Council can upgrade with no delay.",
+ "sentiment": "bad"
+ },
+ "description": "Non-emergency upgrades are initiated on L2 and go through a 3d delay. Since there is a 1d delay to force a tx (forcing the inclusion in the following state update), users have only 2d to exit. \n \n If users post a tx after that time, they would only be able to self propose a state root 12d 17h after the last state root was proposed and then wait for the 6d 8h challenge window, while the upgrade would be confirmed just after the 6d 8h challenge window and the 3d L1 timelock."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "kinto": {
+ "id": "kinto",
+ "name": "Kinto",
+ "slug": "kinto",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "RWA"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 39999828.32,
+ "ether": 27088916.2,
+ "stablecoin": 11195958.26,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.116694796352584
},
- "lyra": {
- "id": "lyra",
- "name": "Derive",
- "slug": "derive",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 49507158.23,
- "ether": 16889885.65,
- "stablecoin": 13143190.79,
- "associated": 0
- },
- "associatedTokens": [
- "LYRA"
- ],
- "change7d": 0.0194042535747454
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "warning",
+ "description": "Fraud proofs allow 5 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "xlayer": {
+ "id": "xlayer",
+ "name": "X Layer",
+ "slug": "xlayer",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "Polygon",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Infra",
+ "name": "AggLayer"
+ },
+ {
+ "category": "Stack",
+ "name": "PolygonCDK"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 29748921.51,
+ "ether": 11556721.19,
+ "stablecoin": 6714961.52,
+ "associated": 7585767.08
+ },
+ "associatedTokens": ["OKB"],
+ "change7d": 0.054826351006249
},
- "dydx": {
- "id": "dydx",
- "name": "dYdX v3",
- "slug": "dydx",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "StarkEx",
- "purposes": [
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "Stack",
- "name": "StarkEx"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "Other",
- "name": "Governance"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 43166829.84,
- "ether": 0,
- "stablecoin": 43166829.84,
- "associated": 0
- },
- "associatedTokens": [
- "DYDX"
- ],
- "change7d": -0.197678222284933
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
},
- "stage": "Stage 1",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a trade or a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for 14d, users can use the exit hatch to withdraw their funds. Users are required to find a counterparty for the trade by out of system means."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "9d",
- "sentiment": "warning",
- "description": "There is a 9d exit window (or 2d if shortened by the Priority Controller)."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. Positions will be closed using the average price from the last batch state update."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The Security Council can remove the delay on upgrades.",
+ "sentiment": "bad"
+ },
+ "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
+ }
+ ]
+ },
+ "karak": {
+ "id": "karak",
+ "name": "Karak",
+ "slug": "karak",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 29708868.67,
+ "ether": 24636329.46,
+ "stablecoin": 5072539.21,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.130841457092655
},
- "nova": {
- "id": "nova",
- "name": "Arbitrum Nova",
- "slug": "nova",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "Nitro"
- },
- {
- "category": "VM",
- "name": "WasmVM"
- },
- {
- "category": "Other",
- "name": "Governance"
- },
- {
- "category": "Other",
- "name": "L3HostChain"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 42252636.93,
- "ether": 41282992.87,
- "stablecoin": 757525.55,
- "associated": 137088.11
- },
- "associatedTokens": [
- "ARB"
- ],
- "change7d": 0.181607712725109
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "warning",
- "description": "Fraud proofs allow 13 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "warning",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 5/6 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "2d",
- "sentiment": "bad",
- "warning": {
- "value": "The Security Council can upgrade with no delay.",
- "sentiment": "bad"
- },
- "description": "Non-emergency upgrades are initiated on L2 and go through a 3d delay. Since there is a 1d delay to force a tx (forcing the inclusion in the following state update), users have only 2d to exit. \n \n If users post a tx after that time, they would only be able to self propose a state root 12d 17h after the last state root was proposed and then wait for the 6d 8h challenge window, while the upgrade would be confirmed just after the 6d 8h challenge window and the 3d L1 timelock."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "reya": {
+ "id": "reya",
+ "name": "Reya",
+ "slug": "reya",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 28116918.2,
+ "ether": 384280.19,
+ "stablecoin": 27732638.01,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0120905632803772
},
- "kinto": {
- "id": "kinto",
- "name": "Kinto",
- "slug": "kinto",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "RWA"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 39999828.32,
- "ether": 27088916.2,
- "stablecoin": 11195958.26,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.116694796352584
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "sanko": {
+ "id": "sanko",
+ "name": "Sanko",
+ "slug": "sanko",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Gaming", "Social"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 26478275.82,
+ "ether": 134830.61,
+ "stablecoin": 164891.89,
+ "associated": 25445806.84
+ },
+ "associatedTokens": ["DMT"],
+ "change7d": 0.403519605464031
+ },
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "warning",
- "description": "Fraud proofs allow 5 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "Fraud proofs only allow 3 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/3 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "cyber": {
+ "id": "cyber",
+ "name": "Cyber",
+ "slug": "cyber",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Social"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "CustomDA"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "RaaS",
+ "name": "AltLayer"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 24735455,
+ "ether": 1547203.07,
+ "stablecoin": 16557.48,
+ "associated": 23114679.3
+ },
+ "associatedTokens": ["CYBER"],
+ "change7d": 0.071924973076988
},
- "xlayer": {
- "id": "xlayer",
- "name": "X Layer",
- "slug": "xlayer",
- "type": "layer2",
- "category": "Validium",
- "provider": "Polygon",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Infra",
- "name": "AggLayer"
- },
- {
- "category": "Stack",
- "name": "PolygonCDK"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 29748921.51,
- "ether": 11556721.19,
- "stablecoin": 6714961.52,
- "associated": 7585767.08
- },
- "associatedTokens": [
- "OKB"
- ],
- "change7d": 0.054826351006249
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "warning": {
- "value": "The Security Council can remove the delay on upgrades.",
- "sentiment": "bad"
- },
- "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation rely on data that is NOT published onchain. Cyber uses a custom data availability system without attestations, but allowing data challenges."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "zora": {
+ "id": "zora",
+ "name": "Zora",
+ "slug": "zora",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "NFT"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 24484494.96,
+ "ether": 24196533.6,
+ "stablecoin": 287961.36,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.227443278573365
},
- "karak": {
- "id": "karak",
- "name": "Karak",
- "slug": "karak",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 29708868.67,
- "ether": 24636329.46,
- "stablecoin": 5072539.21,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.130841457092655
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "sorare": {
+ "id": "sorare",
+ "name": "Sorare",
+ "slug": "sorare",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "StarkEx",
+ "purposes": ["NFT", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "StarkEx"
+ },
+ {
+ "category": "Infra",
+ "name": "SHARP"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 20899022.43,
+ "ether": 20899022.43,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.203376639210819
},
- "reya": {
- "id": "reya",
- "name": "Reya",
- "slug": "reya",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 28116918.2,
- "ether": 384280.19,
- "stablecoin": 27732638.01,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0120905632803772
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/4 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. NFTs will be minted on L1 to exit."
+ }
+ ]
+ },
+ "kroma": {
+ "id": "kroma",
+ "name": "Kroma",
+ "slug": "kroma",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 19107377.14,
+ "ether": 5810355.5,
+ "stablecoin": 645832.11,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0553655572348464
},
- "sanko": {
- "id": "sanko",
- "name": "Sanko",
- "slug": "sanko",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Gaming",
- "Social"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 26478275.82,
- "ether": 134830.61,
- "stablecoin": 164891.89,
- "associated": 25445806.84
- },
- "associatedTokens": [
- "DMT"
- ],
- "change7d": 0.403519605464031
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "Fraud proofs only allow 3 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/3 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT, ZK)",
+ "sentiment": "bad",
+ "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. ZK proofs are used to adjudicate the correctness of the last step. The challenge protocol can be subject to delay attacks and can fail under certain conditions. The current system doesn't use posted L2 txs batches on L1 as inputs to prove a fault, meaning that DA is not enforced."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
+ }
+ ]
+ },
+ "orderly": {
+ "id": "orderly",
+ "name": "Orderly Network",
+ "shortName": "Orderly",
+ "slug": "orderly",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 18170986.93,
+ "ether": 629742.57,
+ "stablecoin": 17541244.36,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": -0.0326205153974277
},
- "cyber": {
- "id": "cyber",
- "name": "Cyber",
- "slug": "cyber",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Social"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "CustomDA"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "RaaS",
- "name": "AltLayer"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 24735455,
- "ether": 1547203.07,
- "stablecoin": 16557.48,
- "associated": 23114679.3
- },
- "associatedTokens": [
- "CYBER"
- ],
- "change7d": 0.071924973076988
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation rely on data that is NOT published onchain. Cyber uses a custom data availability system without attestations, but allowing data challenges."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "sxnetwork": {
+ "id": "sxnetwork",
+ "name": "SX Network",
+ "slug": "sxnetwork",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Betting"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 18089436.85,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 18089436.85
+ },
+ "associatedTokens": ["SX"],
+ "change7d": 0.369323332768177
},
- "zora": {
- "id": "zora",
- "name": "Zora",
- "slug": "zora",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "NFT"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 24484494.96,
- "ether": 24196533.6,
- "stablecoin": 287961.36,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.227443278573365
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 4d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "zkfair": {
+ "id": "zkfair",
+ "name": "ZKFair",
+ "slug": "zkfair",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "Polygon",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "PolygonCDK"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 16104367.07,
+ "ether": 1458252.13,
+ "stablecoin": 7634176.19,
+ "associated": 6912540.91
+ },
+ "associatedTokens": ["ZKF"],
+ "change7d": 0.000822836103314683
},
- "sorare": {
- "id": "sorare",
- "name": "Sorare",
- "slug": "sorare",
- "type": "layer2",
- "category": "Validium",
- "provider": "StarkEx",
- "purposes": [
- "NFT",
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "StarkEx"
- },
- {
- "category": "Infra",
- "name": "SHARP"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 20899022.43,
- "ether": 20899022.43,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.203376639210819
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/4 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. NFTs will be minted on L1 to exit."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (SN)",
+ "sentiment": "good",
+ "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 3/5 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The ZkFair Owner can upgrade with no delay.",
+ "sentiment": "bad"
+ },
+ "description": "Even though there is a 1d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
+ }
+ ]
+ },
+ "paradex": {
+ "id": "paradex",
+ "name": "Paradex",
+ "slug": "paradex",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "Starknet",
+ "purposes": ["Universal", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "CairoVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "Fork",
+ "name": "StarknetFork"
+ },
+ {
+ "category": "Infra",
+ "name": "SHARP"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 13897955.03,
+ "ether": 0,
+ "stablecoin": 13897955.03,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.00218541088320001
},
- "kroma": {
- "id": "kroma",
- "name": "Kroma",
- "slug": "kroma",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 19107377.14,
- "ether": 5810355.5,
- "stablecoin": 645832.11,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0553655572348464
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT, ZK)",
- "sentiment": "bad",
- "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. ZK proofs are used to adjudicate the correctness of the last step. The challenge protocol can be subject to delay attacks and can fail under certain conditions. The current system doesn't use posted L2 txs batches on L1 as inputs to prove a fault, meaning that DA is not enforced."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain (SD)",
+ "sentiment": "good",
+ "description": "All of the data (SD = state diffs) needed for proof construction is published onchain."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "thebinaryholdings": {
+ "id": "thebinaryholdings",
+ "name": "The Binary Holdings",
+ "shortName": "Binary",
+ "slug": "thebinaryholdings",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 13758922.67,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.31478608861962
},
- "orderly": {
- "id": "orderly",
- "name": "Orderly Network",
- "shortName": "Orderly",
- "slug": "orderly",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 18170986.93,
- "ether": 629742.57,
- "stablecoin": 17541244.36,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": -0.0326205153974277
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "silicon": {
+ "id": "silicon",
+ "name": "Silicon",
+ "slug": "silicon",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "Polygon",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "PolygonCDK"
+ },
+ {
+ "category": "Infra",
+ "name": "AggLayer"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 13201491.75,
+ "ether": 1619201.13,
+ "stablecoin": 7206378.44,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.039085095985163
},
- "sxnetwork": {
- "id": "sxnetwork",
- "name": "SX Network",
- "slug": "sxnetwork",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Betting"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 18089436.85,
- "ether": 0,
- "stablecoin": 0,
- "associated": 18089436.85
- },
- "associatedTokens": [
- "SX"
- ],
- "change7d": 0.369323332768177
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 4d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/3 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The Security Council can remove the delay on upgrades.",
+ "sentiment": "bad"
+ },
+ "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
+ }
+ ]
+ },
+ "bobanetwork": {
+ "id": "bobanetwork",
+ "name": "Boba Network",
+ "shortName": "Boba",
+ "slug": "bobanetwork",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 12577575.33,
+ "ether": 5237949.65,
+ "stablecoin": 1776192.08,
+ "associated": 4589644.46
+ },
+ "associatedTokens": ["BOBA"],
+ "change7d": 0.0929612214701909
},
- "zkfair": {
- "id": "zkfair",
- "name": "ZKFair",
- "slug": "zkfair",
- "type": "layer2",
- "category": "Validium",
- "provider": "Polygon",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "PolygonCDK"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 16104367.07,
- "ether": 1458252.13,
- "stablecoin": 7634176.19,
- "associated": 6912540.91
- },
- "associatedTokens": [
- "ZKF"
- ],
- "change7d": 0.000822836103314683
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (SN)",
- "sentiment": "good",
- "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 3/5 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "warning": {
- "value": "The ZkFair Owner can upgrade with no delay.",
- "sentiment": "bad"
- },
- "description": "Even though there is a 1d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "deversifi": {
+ "id": "deversifi",
+ "name": "rhino.fi",
+ "slug": "rhinofi",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "StarkEx",
+ "purposes": ["Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "StarkEx"
+ },
+ {
+ "category": "Infra",
+ "name": "SHARP"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 11873190.92,
+ "ether": 5498677.81,
+ "stablecoin": 4252326.88,
+ "associated": 0
+ },
+ "associatedTokens": ["DVF"],
+ "change7d": 0.0419237423124115
},
- "paradex": {
- "id": "paradex",
- "name": "Paradex",
- "slug": "paradex",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "Starknet",
- "purposes": [
- "Universal",
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "CairoVM"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "Fork",
- "name": "StarknetFork"
- },
- {
- "category": "Infra",
- "name": "SHARP"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 13897955.03,
- "ether": 0,
- "stablecoin": 13897955.03,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.00218541088320001
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "Onchain (SD)",
- "sentiment": "good",
- "description": "All of the data (SD = state diffs) needed for proof construction is published onchain."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 4/7 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable. Users can be explicitly censored from withdrawing (Blocklist on L1)."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds."
+ }
+ ]
+ },
+ "winr": {
+ "id": "winr",
+ "name": "WINR",
+ "slug": "winr",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 7275493.91,
+ "ether": 412051.47,
+ "stablecoin": 2051745.9,
+ "associated": 4787659.44
+ },
+ "associatedTokens": ["WINR"],
+ "change7d": 0.160963349188553
},
- "thebinaryholdings": {
- "id": "thebinaryholdings",
- "name": "The Binary Holdings",
- "shortName": "Binary",
- "slug": "thebinaryholdings",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 13758922.67,
- "ether": 0,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.31478608861962
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 1h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 19d 3h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "brine": {
+ "id": "brine",
+ "name": "tanX",
+ "slug": "tanx",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "StarkEx",
+ "purposes": ["Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "StarkEx"
+ },
+ {
+ "category": "Infra",
+ "name": "SHARP"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 6326832.99,
+ "ether": 190488.45,
+ "stablecoin": 5936545.38,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 3.96725138262346
},
- "silicon": {
- "id": "silicon",
- "name": "Silicon",
- "slug": "silicon",
- "type": "layer2",
- "category": "Validium",
- "provider": "Polygon",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "PolygonCDK"
- },
- {
- "category": "Infra",
- "name": "AggLayer"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 13201491.75,
- "ether": 1619201.13,
- "stablecoin": 7206378.44,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.039085095985163
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/3 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "warning": {
- "value": "The Security Council can remove the delay on upgrades.",
- "sentiment": "bad"
- },
- "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/4 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds."
+ }
+ ]
+ },
+ "morph": {
+ "id": "morph",
+ "name": "Morph",
+ "slug": "morph",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [],
+ "tvs": {
+ "breakdown": {
+ "total": 5359541.9,
+ "ether": 2742640.8,
+ "stablecoin": 2096820.41,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 1.82814812957365
},
- "bobanetwork": {
- "id": "bobanetwork",
- "name": "Boba Network",
- "shortName": "Boba",
- "slug": "bobanetwork",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 12577575.33,
- "ether": 5237949.65,
- "stablecoin": 1776192.08,
- "associated": 4589644.46
- },
- "associatedTokens": [
- "BOBA"
- ],
- "change7d": 0.0929612214701909
+ "stage": "UnderReview",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "degen": {
+ "id": "degen",
+ "name": "Degen Chain",
+ "slug": "degen",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Social"],
+ "isArchived": false,
+ "hostChain": "Base",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Base"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 3943546.63,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 3943546.63
+ },
+ "associatedTokens": ["DEGEN"],
+ "change7d": -0.0369610374110584
},
- "deversifi": {
- "id": "deversifi",
- "name": "rhino.fi",
- "slug": "rhinofi",
- "type": "layer2",
- "category": "Validium",
- "provider": "StarkEx",
- "purposes": [
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "StarkEx"
- },
- {
- "category": "Infra",
- "name": "SHARP"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 11873190.92,
- "ether": 5498677.81,
- "stablecoin": 4252326.88,
- "associated": 0
- },
- "associatedTokens": [
- "DVF"
- ],
- "change7d": 0.0419237423124115
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1000d 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 4/7 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable. Users can be explicitly censored from withdrawing (Blocklist on L1)."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 6d 15h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "shape": {
+ "id": "shape",
+ "name": "Shape",
+ "slug": "shape",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Alchemy"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 3836315.09,
+ "ether": 3836315.09,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0796164999344473
},
- "winr": {
- "id": "winr",
- "name": "WINR",
- "slug": "winr",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 7275493.91,
- "ether": 412051.47,
- "stablecoin": 2051745.9,
- "associated": 4787659.44
- },
- "associatedTokens": [
- "WINR"
- ],
- "change7d": 0.160963349188553
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 1h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 19d 3h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "astarzkevm": {
+ "id": "astarzkevm",
+ "name": "Astar zkEVM",
+ "slug": "astarzkevm",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "Polygon",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Stack",
+ "name": "PolygonCDK"
+ },
+ {
+ "category": "Infra",
+ "name": "AggLayer"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 3716293.75,
+ "ether": 2035537.14,
+ "stablecoin": 1676918.14,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0701604665166837
},
- "brine": {
- "id": "brine",
- "name": "tanX",
- "slug": "tanx",
- "type": "layer2",
- "category": "Validium",
- "provider": "StarkEx",
- "purposes": [
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "StarkEx"
- },
- {
- "category": "Infra",
- "name": "SHARP"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 6326832.99,
- "ether": 190488.45,
- "stablecoin": 5936545.38,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 3.96725138262346
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/4 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 3/5 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The Security Council can remove the delay on upgrades.",
+ "sentiment": "bad"
+ },
+ "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
+ }
+ ]
+ },
+ "xai": {
+ "id": "xai",
+ "name": "Xai",
+ "slug": "xai",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 2682737.32,
+ "ether": 215598.46,
+ "stablecoin": 130247.06,
+ "associated": 2336835.36
+ },
+ "associatedTokens": ["XAI"],
+ "change7d": 0.172507890170786
},
- "morph": {
- "id": "morph",
- "name": "Morph",
- "slug": "morph",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [],
- "tvs": {
- "breakdown": {
- "total": 5359541.9,
- "ether": 2742640.8,
- "stablecoin": 2096820.41,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 1.82814812957365
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "UnderReview",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 5/7 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "mint": {
+ "id": "mint",
+ "name": "Mint",
+ "slug": "mint",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "NFT"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 2474608.79,
+ "ether": 1823743.75,
+ "stablecoin": 340795.63,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.113352480744416
},
- "degen": {
- "id": "degen",
- "name": "Degen Chain",
- "slug": "degen",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Social"
- ],
- "isArchived": false,
- "hostChain": "Base",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Base"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 3943546.63,
- "ether": 0,
- "stablecoin": 0,
- "associated": 3943546.63
- },
- "associatedTokens": [
- "DEGEN"
- ],
- "change7d": -0.0369610374110584
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1000d 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 6d 15h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "polynomial": {
+ "id": "polynomial",
+ "name": "Polynomial",
+ "slug": "polynomial",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 2359746.22,
+ "ether": 55973.27,
+ "stablecoin": 2170728.42,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.08117353978076
},
- "shape": {
- "id": "shape",
- "name": "Shape",
- "slug": "shape",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Alchemy"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 3836315.09,
- "ether": 3836315.09,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0796164999344473
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "redstone": {
+ "id": "redstone",
+ "name": "Redstone",
+ "slug": "redstone",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "CustomDA"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 2072912,
+ "ether": 2046926.19,
+ "stablecoin": 25749.9,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.18667240361929
},
- "astarzkevm": {
- "id": "astarzkevm",
- "name": "Astar zkEVM",
- "slug": "astarzkevm",
- "type": "layer2",
- "category": "Validium",
- "provider": "Polygon",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Stack",
- "name": "PolygonCDK"
- },
- {
- "category": "Infra",
- "name": "AggLayer"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 3716293.75,
- "ether": 2035537.14,
- "stablecoin": 1676918.14,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0701604665166837
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 3/5 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "warning": {
- "value": "The Security Council can remove the delay on upgrades.",
- "sentiment": "bad"
- },
- "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation rely on data that is NOT published onchain. Redstone uses a custom data availability provider without attestations, relying though on DA challenges."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "zkspace": {
+ "id": "zkspace",
+ "name": "ZKSpace",
+ "slug": "zkspace",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "ZKsync Lite",
+ "purposes": ["NFT", "Exchange", "Payments"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "Fork",
+ "name": "ZKsyncLiteFork"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1935240.99,
+ "ether": 134024.79,
+ "stablecoin": 23011.72,
+ "associated": 1707170.46
+ },
+ "associatedTokens": ["ZKS"],
+ "change7d": -0.0139578514429549
},
- "xai": {
- "id": "xai",
- "name": "Xai",
- "slug": "xai",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 2682737.32,
- "ether": 215598.46,
- "stablecoin": 130247.06,
- "associated": 2336835.36
- },
- "associatedTokens": [
- "XAI"
- ],
- "change7d": 0.172507890170786
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 3d, users can use the exit hatch to withdraw their funds."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 5/7 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (SN)",
+ "sentiment": "good",
+ "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "5d",
+ "sentiment": "bad",
+ "description": "Users have 5d to exit funds in case of an unwanted regular upgrade. There is a 8d delay before a regular upgrade is applied, and withdrawals can take up to 3d to be processed."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a zero knowledge proof of funds."
+ }
+ ]
+ },
+ "ancient": {
+ "id": "ancient",
+ "name": "Ancient8",
+ "slug": "ancient8",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1510795.21,
+ "ether": 624177.06,
+ "stablecoin": 0,
+ "associated": 886618.15
+ },
+ "associatedTokens": ["A8"],
+ "change7d": 0.100651648600796
},
- "mint": {
- "id": "mint",
- "name": "Mint",
- "slug": "mint",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "NFT"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 2474608.79,
- "ether": 1823743.75,
- "stablecoin": 340795.63,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.113352480744416
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "hychain": {
+ "id": "hychain",
+ "name": "HYCHAIN",
+ "slug": "hychain",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1488688.94,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 1488688.94
+ },
+ "associatedTokens": ["TOPIA"],
+ "change7d": 0.374977337920098
},
- "polynomial": {
- "id": "polynomial",
- "name": "Polynomial",
- "slug": "polynomial",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 2359746.22,
- "ether": 55973.27,
- "stablecoin": 2170728.42,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.08117353978076
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "xchain": {
+ "id": "xchain",
+ "name": "XCHAIN",
+ "slug": "xchain",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1194423.32,
+ "ether": 28089.82,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": -0.000614588273841865
},
- "redstone": {
- "id": "redstone",
- "name": "Redstone",
- "slug": "redstone",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "CustomDA"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 2072912,
- "ether": 2046926.19,
- "stablecoin": 25749.9,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.18667240361929
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation rely on data that is NOT published onchain. Redstone uses a custom data availability provider without attestations, relying though on DA challenges."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 11d 23h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "termstructure": {
+ "id": "termstructure",
+ "name": "Term Structure",
+ "slug": "termstructure",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "provider": "ZKsync Lite",
+ "purposes": ["Payments", "Exchange", "Lending"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "Fork",
+ "name": "ZKsyncLiteFork"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1151246.5,
+ "ether": 232267.11,
+ "stablecoin": 588043.05,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0617048699750415
},
- "zkspace": {
- "id": "zkspace",
- "name": "ZKSpace",
- "slug": "zkspace",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "ZKsync Lite",
- "purposes": [
- "NFT",
- "Exchange",
- "Payments"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "Fork",
- "name": "ZKsyncLiteFork"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1935240.99,
- "ether": 134024.79,
- "stablecoin": 23011.72,
- "associated": 1707170.46
- },
- "associatedTokens": [
- "ZKS"
- ],
- "change7d": -0.0139578514429549
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 14d, users can use the exit hatch to withdraw their funds."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 3d, users can use the exit hatch to withdraw their funds."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (SN)",
- "sentiment": "good",
- "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "5d",
- "sentiment": "bad",
- "description": "Users have 5d to exit funds in case of an unwanted regular upgrade. There is a 8d delay before a regular upgrade is applied, and withdrawals can take up to 3d to be processed."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a zero knowledge proof of funds."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (SN)",
+ "sentiment": "good",
+ "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a zero knowledge proof of funds."
+ }
+ ]
+ },
+ "alienx": {
+ "id": "alienx",
+ "name": "AlienX",
+ "slug": "alienx",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Gaming", "AI", "NFT"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1059826.93,
+ "ether": 1024524.05,
+ "stablecoin": 21837.56,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.182202016057215
},
- "ancient": {
- "id": "ancient",
- "name": "Ancient8",
- "slug": "ancient8",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1510795.21,
- "ether": 624177.06,
- "stablecoin": 0,
- "associated": 886618.15
- },
- "associatedTokens": [
- "A8"
- ],
- "change7d": 0.100651648600796
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "fluence": {
+ "id": "fluence",
+ "name": "Fluence",
+ "slug": "fluence",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 878846.76,
+ "ether": 0,
+ "stablecoin": 2034.38,
+ "associated": 876812.38
+ },
+ "associatedTokens": ["FLT"],
+ "change7d": -0.0442062518831686
},
- "hychain": {
- "id": "hychain",
- "name": "HYCHAIN",
- "slug": "hychain",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1488688.94,
- "ether": 0,
- "stablecoin": 0,
- "associated": 1488688.94
- },
- "associatedTokens": [
- "TOPIA"
- ],
- "change7d": 0.374977337920098
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 40d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "popapex": {
+ "id": "popapex",
+ "name": "Proof of Play Apex",
+ "shortName": "PoP Apex",
+ "slug": "popapex",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 838083.3,
+ "ether": 838083.3,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.19048371904013
},
- "xchain": {
- "id": "xchain",
- "name": "XCHAIN",
- "slug": "xchain",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1194423.32,
- "ether": 28089.82,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": -0.000614588273841865
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1001d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 11d 23h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 24d 16h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "dbk": {
+ "id": "dbk",
+ "name": "DeBank Chain",
+ "slug": "dbk",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 802894.82,
+ "ether": 802894.82,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.181637050442997
},
- "termstructure": {
- "id": "termstructure",
- "name": "Term Structure",
- "slug": "termstructure",
- "type": "layer2",
- "category": "ZK Rollup",
- "provider": "ZKsync Lite",
- "purposes": [
- "Payments",
- "Exchange",
- "Lending"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "Fork",
- "name": "ZKsyncLiteFork"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1151246.5,
- "ether": 232267.11,
- "stablecoin": 588043.05,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0617048699750415
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 14d, users can use the exit hatch to withdraw their funds."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (SN)",
- "sentiment": "good",
- "description": "SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a zero knowledge proof of funds."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "rari": {
+ "id": "rari",
+ "name": "RARI Chain",
+ "slug": "rari",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "NFT"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 731356.58,
+ "ether": 637547.3,
+ "stablecoin": 93684.72,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.513099368987276
},
- "alienx": {
- "id": "alienx",
- "name": "AlienX",
- "slug": "alienx",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Gaming",
- "AI",
- "NFT"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1059826.93,
- "ether": 1024524.05,
- "stablecoin": 21837.56,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.182202016057215
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "swan": {
+ "id": "swan",
+ "name": "Swan Chain",
+ "slug": "swan",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "AI", "Storage"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 710064.73,
+ "ether": 710064.73,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.189566233725809
},
- "fluence": {
- "id": "fluence",
- "name": "Fluence",
- "slug": "fluence",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 878846.76,
- "ether": 0,
- "stablecoin": 2034.38,
- "associated": 876812.38
- },
- "associatedTokens": [
- "FLT"
- ],
- "change7d": -0.0442062518831686
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 40d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "publicgoodsnetwork": {
+ "id": "publicgoodsnetwork",
+ "name": "Public Goods Network",
+ "shortName": "PGN",
+ "slug": "publicgoodsnetwork",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 664698.4,
+ "ether": 582092.55,
+ "stablecoin": 82605.85,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.159333476702434
},
- "popapex": {
- "id": "popapex",
- "name": "Proof of Play Apex",
- "shortName": "PoP Apex",
- "slug": "popapex",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 838083.3,
- "ether": 838083.3,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.19048371904013
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1001d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 24d 16h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "optopia": {
+ "id": "optopia",
+ "name": "Optopia",
+ "slug": "optopia",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "AI"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 650784.65,
+ "ether": 324752.69,
+ "stablecoin": 58821.64,
+ "associated": 267210.32
+ },
+ "associatedTokens": ["OPAI"],
+ "change7d": 0.126418538918653
},
- "dbk": {
- "id": "dbk",
- "name": "DeBank Chain",
- "slug": "dbk",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 802894.82,
- "ether": 802894.82,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.181637050442997
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "alephzero": {
+ "id": "alephzero",
+ "name": "Aleph Zero EVM",
+ "slug": "aleph-zero",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Privacy"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 372801.69,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 372801.69
+ },
+ "associatedTokens": ["AZERO"],
+ "change7d": 0.0414324536760904
},
- "rari": {
- "id": "rari",
- "name": "RARI Chain",
- "slug": "rari",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "NFT"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 731356.58,
- "ether": 637547.3,
- "stablecoin": 93684.72,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.513099368987276
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 4d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "superlumio": {
+ "id": "superlumio",
+ "name": "SuperLumio",
+ "slug": "superlumio",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 255793.38,
+ "ether": 249607.66,
+ "stablecoin": 5366.71,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.174674105604649
},
- "swan": {
- "id": "swan",
- "name": "Swan Chain",
- "slug": "swan",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "AI",
- "Storage"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 710064.73,
- "ether": 710064.73,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.189566233725809
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "ebichain": {
+ "id": "ebichain",
+ "name": "Ebi Chain",
+ "slug": "ebichain",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 238658.39,
+ "ether": 238658.39,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.186449576646522
},
- "publicgoodsnetwork": {
- "id": "publicgoodsnetwork",
- "name": "Public Goods Network",
- "shortName": "PGN",
- "slug": "publicgoodsnetwork",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 664698.4,
- "ether": 582092.55,
- "stablecoin": 82605.85,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.159333476702434
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "honeypot": {
+ "id": "honeypot",
+ "name": "Honeypot (Cartesi)",
+ "shortName": "Honeypot",
+ "slug": "cartesi-honeypot",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "Cartesi Rollups",
+ "purposes": ["Bug bounty"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "CartesiVM"
+ },
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "Stack",
+ "name": "Cartesi"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 230490.19,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0660027137283037
},
- "optopia": {
- "id": "optopia",
- "name": "Optopia",
- "slug": "optopia",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "AI"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 650784.65,
- "ether": 324752.69,
- "stablecoin": 58821.64,
- "associated": 267210.32
- },
- "associatedTokens": [
- "OPAI"
- ],
- "change7d": 0.126418538918653
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is no delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "∞",
+ "sentiment": "good",
+ "description": "Users can exit funds at any time because contracts are not upgradeable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "metal": {
+ "id": "metal",
+ "name": "Metal",
+ "slug": "metal",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 187656.73,
+ "ether": 187544.95,
+ "stablecoin": 111.78,
+ "associated": 0
+ },
+ "associatedTokens": ["MTL"],
+ "change7d": 0.192628491975515
},
- "alephzero": {
- "id": "alephzero",
- "name": "Aleph Zero EVM",
- "slug": "aleph-zero",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Privacy"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 372801.69,
- "ether": 0,
- "stablecoin": 0,
- "associated": 372801.69
- },
- "associatedTokens": [
- "AZERO"
- ],
- "change7d": 0.0414324536760904
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 4d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "Fraud proofs only allow 2 WHITELISTED actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "popboss": {
+ "id": "popboss",
+ "name": "Proof of Play Boss",
+ "shortName": "PoP Boss",
+ "slug": "popboss",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 172103.01,
+ "ether": 172103.01,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.239890476575737
},
- "superlumio": {
- "id": "superlumio",
- "name": "SuperLumio",
- "slug": "superlumio",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 255793.38,
- "ether": 249607.66,
- "stablecoin": 5366.71,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.174674105604649
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 24d 16h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "myria": {
+ "id": "myria",
+ "name": "Myria",
+ "slug": "myria",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "StarkEx",
+ "purposes": ["NFT", "Exchange", "Gaming"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "StarkEx"
+ },
+ {
+ "category": "Infra",
+ "name": "SHARP"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 165657.93,
+ "ether": 165657.93,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": ["MYRIA"],
+ "change7d": 0.186764849055967
},
- "ebichain": {
- "id": "ebichain",
- "name": "Ebi Chain",
- "slug": "ebichain",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Exchange"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 238658.39,
- "ether": 238658.39,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.186449576646522
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Force via L1",
+ "sentiment": "good",
+ "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST)",
+ "sentiment": "good",
+ "description": "STARKs are zero knowledge proofs that ensure state correctness."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/5 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Use escape hatch",
+ "sentiment": "good",
+ "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. NFTs will be minted on L1 to exit."
+ }
+ ]
+ },
+ "ham": {
+ "id": "ham",
+ "name": "Ham",
+ "slug": "ham",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Social"],
+ "isArchived": false,
+ "hostChain": "Base",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "L3ParentChain",
+ "name": "Base"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 158456.43,
+ "ether": 158347.83,
+ "stablecoin": 81.44,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.191572043492833
},
- "honeypot": {
- "id": "honeypot",
- "name": "Honeypot (Cartesi)",
- "shortName": "Honeypot",
- "slug": "cartesi-honeypot",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "Cartesi Rollups",
- "purposes": [
- "Bug bounty"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "CartesiVM"
- },
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "Stack",
- "name": "Cartesi"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 230490.19,
- "ether": 0,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0660027137283037
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is no delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "∞",
- "sentiment": "good",
- "description": "Users can exit funds at any time because contracts are not upgradeable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "cheese": {
+ "id": "cheese",
+ "name": "CheeseChain",
+ "slug": "cheese",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 115431.53,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 115431.53
+ },
+ "associatedTokens": ["CHEESE"],
+ "change7d": -0.187586603260365
},
- "metal": {
- "id": "metal",
- "name": "Metal",
- "slug": "metal",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 187656.73,
- "ether": 187544.95,
- "stablecoin": 111.78,
- "associated": 0
- },
- "associatedTokens": [
- "MTL"
- ],
- "change7d": 0.192628491975515
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "parallel": {
+ "id": "parallel",
+ "name": "Parallel",
+ "slug": "parallel",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 78548.03,
+ "ether": 78548.03,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.186404445827988
},
- "popboss": {
- "id": "popboss",
- "name": "Proof of Play Boss",
- "shortName": "PoP Boss",
- "slug": "popboss",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 172103.01,
- "ether": 172103.01,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.239890476575737
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 5d 14h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 24d 16h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 8h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "edgeless": {
+ "id": "edgeless",
+ "name": "Edgeless",
+ "slug": "edgeless",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "CustomDA"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 61505.01,
+ "ether": 61505.01,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.187286185245571
},
- "myria": {
- "id": "myria",
- "name": "Myria",
- "slug": "myria",
- "type": "layer2",
- "category": "Validium",
- "provider": "StarkEx",
- "purposes": [
- "NFT",
- "Exchange",
- "Gaming"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "StarkEx"
- },
- {
- "category": "Infra",
- "name": "SHARP"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 165657.93,
- "ether": 165657.93,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [
- "MYRIA"
- ],
- "change7d": 0.186764849055967
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Force via L1",
- "sentiment": "good",
- "description": "Users can force the sequencer to include a withdrawal transaction by submitting a request through L1. If the sequencer censors or is down for for more than 7d, users can use the exit hatch to withdraw their funds."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST)",
- "sentiment": "good",
- "description": "STARKs are zero knowledge proofs that ensure state correctness."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 2/5 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Use escape hatch",
- "sentiment": "good",
- "description": "Users are able to trustlessly exit by submitting a Merkle proof of funds. NFTs will be minted on L1 to exit."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "everclear": {
+ "id": "everclear",
+ "name": "Everclear Hub",
+ "slug": "everclear",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Interoperability"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 59513.86,
+ "ether": 59513.86,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": ["NEXT"],
+ "change7d": 0.186449476698276
},
- "ham": {
- "id": "ham",
- "name": "Ham",
- "slug": "ham",
- "type": "layer3",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Social"
- ],
- "isArchived": false,
- "hostChain": "Base",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "L3ParentChain",
- "name": "Base"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 158456.43,
- "ether": 158347.83,
- "stablecoin": 81.44,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.191572043492833
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 4d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "river": {
+ "id": "river",
+ "name": "River",
+ "slug": "river",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 59061.73,
+ "ether": 59061.73,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.18644952022118
},
- "cheese": {
- "id": "cheese",
- "name": "CheeseChain",
- "slug": "cheese",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 115431.53,
- "ether": 0,
- "stablecoin": 0,
- "associated": 115431.53
- },
- "associatedTokens": [
- "CHEESE"
- ],
- "change7d": -0.187586603260365
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "hypr": {
+ "id": "hypr",
+ "name": "Hypr",
+ "slug": "hypr",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 58268.16,
+ "ether": 58268.16,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.186449733829403
},
- "parallel": {
- "id": "parallel",
- "name": "Parallel",
- "slug": "parallel",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 78548.03,
- "ether": 78548.03,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.186404445827988
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d challenge period."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 8h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "oevnetwork": {
+ "id": "oevnetwork",
+ "name": "OEV Network",
+ "slug": "oev",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Oracles"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 55514.85,
+ "ether": 55514.85,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.192865222088619
},
- "edgeless": {
- "id": "edgeless",
- "name": "Edgeless",
- "slug": "edgeless",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "CustomDA"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 61505.01,
- "ether": 61505.01,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.187286185245571
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "molten": {
+ "id": "molten",
+ "name": "Molten Network",
+ "shortName": "Molten",
+ "slug": "molten",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 49359.4,
+ "ether": 21.18,
+ "stablecoin": 35317.94,
+ "associated": 14020.28
+ },
+ "associatedTokens": ["MOLTEN"],
+ "change7d": 0.0350861998642376
},
- "everclear": {
- "id": "everclear",
- "name": "Everclear Hub",
- "slug": "everclear",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Interoperability"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 59513.86,
- "ether": 59513.86,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [
- "NEXT"
- ],
- "change7d": 0.186449476698276
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 4d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "wirex": {
+ "id": "wirex",
+ "name": "Pay Chain",
+ "slug": "wirex",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "Polygon",
+ "purposes": ["Universal", "Payments"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gateway"
+ },
+ {
+ "category": "Stack",
+ "name": "PolygonCDK"
+ },
+ {
+ "category": "Infra",
+ "name": "AggLayer"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 40374.61,
+ "ether": 1654.05,
+ "stablecoin": 38720.56,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.026423902039953
},
- "river": {
- "id": "river",
- "name": "River",
- "slug": "river",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 59061.73,
- "ether": 59061.73,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.18644952022118
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
+ },
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The Security Council can remove the delay on upgrades.",
+ "sentiment": "bad"
+ },
+ "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
+ }
+ ]
+ },
+ "xterio": {
+ "id": "xterio",
+ "name": "Xterio Chain",
+ "slug": "xterio",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "CustomDA"
+ },
+ {
+ "category": "RaaS",
+ "name": "AltLayer"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 22983.01,
+ "ether": 22983.01,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.186450118835965
},
- "hypr": {
- "id": "hypr",
- "name": "Hypr",
- "slug": "hypr",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 58268.16,
- "ether": 58268.16,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.186449733829403
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation rely on data that is NOT published onchain. Xterio uses a custom data availability provider without attestations, relying though on DA challenges."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "syndicateframe": {
+ "id": "syndicateframe",
+ "name": "Syndicate Frame Chain",
+ "shortName": "Frame Chain",
+ "slug": "syndicateframe",
+ "type": "layer3",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Social"],
+ "isArchived": false,
+ "hostChain": "Base",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "L3ParentChain",
+ "name": "Base"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 18786.69,
+ "ether": 18786.69,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.186449358926589
},
- "oevnetwork": {
- "id": "oevnetwork",
- "name": "OEV Network",
- "slug": "oev",
- "type": "layer2",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Oracles"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 55514.85,
- "ether": 55514.85,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.192865222088619
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 12d 17h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "deri": {
+ "id": "deri",
+ "name": "Deri",
+ "slug": "deri",
+ "type": "layer3",
+ "category": "Optimistic Rollup",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 17037.6,
+ "ether": 17037.6,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.186450002263208
},
- "molten": {
- "id": "molten",
- "name": "Molten Network",
- "shortName": "Molten",
- "slug": "molten",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 49359.4,
- "ether": 21.18,
- "stablecoin": 35317.94,
- "associated": 14020.28
- },
- "associatedTokens": [
- "MOLTEN"
- ],
- "change7d": 0.0350861998642376
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 1d challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 20d 2h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "lambda": {
+ "id": "lambda",
+ "name": "Lambda Chain",
+ "slug": "lambda",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Storage"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 14647.21,
+ "ether": 14637.21,
+ "stablecoin": 10,
+ "associated": 0
+ },
+ "associatedTokens": ["LAMB"],
+ "change7d": 0.186299958613328
},
- "wirex": {
- "id": "wirex",
- "name": "Pay Chain",
- "slug": "wirex",
- "type": "layer2",
- "category": "Validium",
- "provider": "Polygon",
- "purposes": [
- "Universal",
- "Payments"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Gateway"
- },
- {
- "category": "Stack",
- "name": "PolygonCDK"
- },
- {
- "category": "Infra",
- "name": "AggLayer"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 40374.61,
- "ether": 1654.05,
- "stablecoin": 38720.56,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.026423902039953
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "warning": {
- "value": "The Security Council can remove the delay on upgrades.",
- "sentiment": "bad"
- },
- "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "ethernity": {
+ "id": "ethernity",
+ "name": "Ethernity",
+ "slug": "ethernity",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "AI"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumBlobs"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 10776.49,
+ "ether": 10680.13,
+ "stablecoin": 23.64,
+ "associated": 33.13
+ },
+ "associatedTokens": ["ERN"],
+ "change7d": 0.18546333382102
},
- "xterio": {
- "id": "xterio",
- "name": "Xterio Chain",
- "slug": "xterio",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "CustomDA"
- },
- {
- "category": "RaaS",
- "name": "AltLayer"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 22983.01,
- "ether": 22983.01,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.186450118835965
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation rely on data that is NOT published onchain. Xterio uses a custom data availability provider without attestations, relying though on DA challenges."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "hook": {
+ "id": "hook",
+ "name": "Hook",
+ "slug": "hook",
+ "type": "layer3",
+ "category": "Optimistic Rollup",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "NFT", "Exchange"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [],
+ "tvs": {
+ "breakdown": {
+ "total": 7489.72,
+ "ether": 7028.35,
+ "stablecoin": 461.37,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.173051080531636
},
- "syndicateframe": {
- "id": "syndicateframe",
- "name": "Syndicate Frame Chain",
- "shortName": "Frame Chain",
- "slug": "syndicateframe",
- "type": "layer3",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Social"
- ],
- "isArchived": false,
- "hostChain": "Base",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "L3ParentChain",
- "name": "Base"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 18786.69,
- "ether": 18786.69,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.186449358926589
+ "stage": "UnderReview",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "l3x": {
+ "id": "l3x",
+ "name": "L3X",
+ "slug": "l3x",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 5710.42,
+ "ether": 5708.4,
+ "stablecoin": 2.02,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.182335427286543
},
- "deri": {
- "id": "deri",
- "name": "Deri",
- "slug": "deri",
- "type": "layer3",
- "category": "Optimistic Rollup",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 17037.6,
- "ether": 17037.6,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.186450002263208
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 1d challenge period."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 20d 2h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 1d challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 20d 2h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "funki": {
+ "id": "funki",
+ "name": "Funki",
+ "slug": "funki",
+ "type": "layer2",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [],
+ "tvs": {
+ "breakdown": {
+ "total": 4315.41,
+ "ether": 3612.79,
+ "stablecoin": 6,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.154346779370854
},
- "lambda": {
- "id": "lambda",
- "name": "Lambda Chain",
- "slug": "lambda",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Storage"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 14647.21,
- "ether": 14637.21,
- "stablecoin": 10,
- "associated": 0
- },
- "associatedTokens": [
- "LAMB"
- ],
- "change7d": 0.186299958613328
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "stack": {
+ "id": "stack",
+ "name": "Stack",
+ "slug": "stack",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Universal", "Social"],
+ "isArchived": false,
+ "hostChain": "Base",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Base"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 3271.86,
+ "ether": 3271.86,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.184761118473939
+ },
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External",
+ "sentiment": "bad",
+ "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "race": {
+ "id": "race",
+ "name": "Race Network",
+ "slug": "race",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["RWA"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 3071.48,
+ "ether": 0,
+ "stablecoin": 3067.67,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.498063697995415
},
- "ethernity": {
- "id": "ethernity",
- "name": "Ethernity",
- "slug": "ethernity",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "AI"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "DA",
- "name": "EthereumBlobs"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 10776.49,
- "ether": 10680.13,
- "stablecoin": 23.64,
- "associated": 33.13
- },
- "associatedTokens": [
- "ERN"
- ],
- "change7d": 0.18546333382102
+ "stage": "UnderReview",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "clique": {
+ "id": "clique",
+ "name": "Clique",
+ "slug": "clique",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["AI", "Gaming"],
+ "isArchived": false,
+ "hostChain": "Base",
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [
+ {
+ "category": "L3ParentChain",
+ "name": "Base"
+ },
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1926.77,
+ "ether": 1926.77,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.191990992495809
},
- "hook": {
- "id": "hook",
- "name": "Hook",
- "slug": "hook",
- "type": "layer3",
- "category": "Optimistic Rollup",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "NFT",
- "Exchange"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [],
- "tvs": {
- "breakdown": {
- "total": 7489.72,
- "ether": 7028.35,
- "stablecoin": 461.37,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.173051080531636
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "UnderReview",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "kontos": {
+ "id": "kontos",
+ "name": "Kontos",
+ "slug": "kontos",
+ "type": "layer2",
+ "category": "ZK Rollup",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [],
+ "tvs": {
+ "breakdown": {
+ "total": 1553.1,
+ "ether": 1385.3,
+ "stablecoin": 154.2,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0866158259287764
},
- "l3x": {
- "id": "l3x",
- "name": "L3X",
- "slug": "l3x",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 5710.42,
- "ether": 5708.4,
- "stablecoin": 2.02,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.182335427286543
+ "stage": "UnderReview",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 1d challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 20d 2h of inactivity from the currently whitelisted Proposers."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "donatuz": {
+ "id": "donatuz",
+ "name": "Donatuz",
+ "slug": "donatuz",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "OP Stack",
+ "purposes": ["Social"],
+ "isArchived": false,
+ "hostChain": "Base",
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [
+ {
+ "category": "L3ParentChain",
+ "name": "Base"
+ },
+ {
+ "category": "DA",
+ "name": "EigenDA"
+ },
+ {
+ "category": "Stack",
+ "name": "OPStack"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "RaaS",
+ "name": "Conduit"
+ },
+ {
+ "category": "Infra",
+ "name": "Superchain"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 1490.81,
+ "ether": 1490.81,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.186449985276913
},
- "funki": {
- "id": "funki",
- "name": "Funki",
- "slug": "funki",
- "type": "layer2",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [],
- "tvs": {
- "breakdown": {
- "total": 4315.41,
- "ether": 3612.79,
- "stablecoin": 6,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.154346779370854
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "nal": {
+ "id": "nal",
+ "name": "Nal",
+ "slug": "nal",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "provider": "OP Stack",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [],
+ "tvs": {
+ "breakdown": {
+ "total": 1012.94,
+ "ether": 0,
+ "stablecoin": 1012.94,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.000651993519579452
},
- "stack": {
- "id": "stack",
- "name": "Stack",
- "slug": "stack",
- "type": "layer3",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Universal",
- "Social"
- ],
- "isArchived": false,
- "hostChain": "Base",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "L3ParentChain",
- "name": "Base"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 3271.86,
- "ether": 3271.86,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.184761118473939
+ "stage": "UnderReview",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 1d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "External",
- "sentiment": "bad",
- "description": "Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "fuelv1": {
+ "id": "fuelv1",
+ "name": "Fuel v1",
+ "slug": "fuelv1",
+ "type": "layer2",
+ "category": "Optimistic Rollup",
+ "purposes": ["Payments"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 768.03,
+ "ether": 750.02,
+ "stablecoin": 18.01,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.181293835363603
},
- "race": {
- "id": "race",
- "name": "Race Network",
- "slug": "race",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "RWA"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 3071.48,
- "ether": 0,
- "stablecoin": 3067.67,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.498063697995415
+ "stage": "Stage 2",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1."
},
- "stage": "UnderReview",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (1R)",
+ "sentiment": "good",
+ "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Single round proofs (1R) only require a single transaction to resolve."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "∞",
+ "sentiment": "good",
+ "description": "Users can exit funds at any time because contracts are not upgradeable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
+ }
+ ]
+ },
+ "pmon": {
+ "id": "pmon",
+ "name": "PMON Chain",
+ "slug": "pmon",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Gaming", "NFT"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "DA",
+ "name": "Celestia"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ },
+ {
+ "category": "RaaS",
+ "name": "AltLayer"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 598.57,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 598.57
+ },
+ "associatedTokens": ["PMON"],
+ "change7d": 0.12148464579469
},
- "clique": {
- "id": "clique",
- "name": "Clique",
- "slug": "clique",
- "type": "layer3",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "AI",
- "Gaming"
- ],
- "isArchived": false,
- "hostChain": "Base",
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [
- {
- "category": "L3ParentChain",
- "name": "Base"
- },
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1926.77,
- "ether": 1926.77,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.191990992495809
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "bugbuster": {
+ "id": "bugbuster",
+ "name": "Bug Buster",
+ "slug": "bugbuster",
+ "type": "layer3",
+ "category": "Optimistic Rollup",
+ "provider": "Cartesi Rollups",
+ "purposes": ["Bug bounty"],
+ "isArchived": false,
+ "hostChain": "OP Mainnet",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "Stack",
+ "name": "Cartesi"
+ },
+ {
+ "category": "VM",
+ "name": "AppChain"
+ },
+ {
+ "category": "VM",
+ "name": "CartesiVM"
+ },
+ {
+ "category": "DA",
+ "name": "EthereumCalldata"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Optimism"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 520.03,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.0660066006600659
},
- "kontos": {
- "id": "kontos",
- "name": "Kontos",
- "slug": "kontos",
- "type": "layer2",
- "category": "ZK Rollup",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [],
- "tvs": {
- "breakdown": {
- "total": 1553.1,
- "ether": 1385.3,
- "stablecoin": 154.2,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0866158259287764
+ "stage": "Stage 0",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
},
- "stage": "UnderReview",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "Currently the system permits invalid state roots. More details in project overview."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on the base chain, which ultimately gets published on Ethereum."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Cannot withdraw",
+ "sentiment": "bad",
+ "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
+ }
+ ]
+ },
+ "gpt": {
+ "id": "gpt",
+ "name": "GPT Protocol",
+ "slug": "gpt",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "Polygon",
+ "purposes": ["Universal", "AI"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gateway"
+ },
+ {
+ "category": "Stack",
+ "name": "PolygonCDK"
+ },
+ {
+ "category": "Infra",
+ "name": "AggLayer"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 247.28,
+ "ether": 14.96,
+ "stablecoin": 0,
+ "associated": 232.32
+ },
+ "associatedTokens": ["GPT"],
+ "change7d": 1.87936655798789
},
- "donatuz": {
- "id": "donatuz",
- "name": "Donatuz",
- "slug": "donatuz",
- "type": "layer3",
- "category": "Optimium",
- "provider": "OP Stack",
- "purposes": [
- "Social"
- ],
- "isArchived": false,
- "hostChain": "Base",
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [
- {
- "category": "L3ParentChain",
- "name": "Base"
- },
- {
- "category": "DA",
- "name": "EigenDA"
- },
- {
- "category": "Stack",
- "name": "OPStack"
- },
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "RaaS",
- "name": "Conduit"
- },
- {
- "category": "Infra",
- "name": "Superchain"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 1490.81,
- "ether": 1490.81,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.186449985276913
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The Security Council can remove the delay on upgrades.",
+ "sentiment": "bad"
+ },
+ "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
+ }
+ ]
+ },
+ "witness": {
+ "id": "witness",
+ "name": "Witness Chain",
+ "slug": "witness",
+ "type": "layer2",
+ "category": "Validium",
+ "provider": "Polygon",
+ "purposes": ["Universal", "IoT", "Oracles"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "PolygonCDK"
+ },
+ {
+ "category": "Infra",
+ "name": "AggLayer"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 29.85,
+ "ether": 29.85,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0.186406995230525
},
- "nal": {
- "id": "nal",
- "name": "Nal",
- "slug": "nal",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "provider": "OP Stack",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [],
- "tvs": {
- "breakdown": {
- "total": 1012.94,
- "ether": 0,
- "stablecoin": 1012.94,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.000651993519579452
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "No mechanism",
+ "sentiment": "bad",
+ "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
},
- "stage": "UnderReview",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "ZK proofs (ST, SN)",
+ "sentiment": "good",
+ "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "warning": {
+ "value": "The Security Council can remove the delay on upgrades.",
+ "sentiment": "bad"
+ },
+ "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
+ }
+ ]
+ },
+ "apechain": {
+ "id": "apechain",
+ "name": "ApeChain",
+ "slug": "apechain",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Arbitrum"
+ },
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "associatedTokens": []
},
- "fuelv1": {
- "id": "fuelv1",
- "name": "Fuel v1",
- "slug": "fuelv1",
- "type": "layer2",
- "category": "Optimistic Rollup",
- "purposes": [
- "Payments"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 768.03,
- "ether": 750.02,
- "stablecoin": 18.01,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.181293835363603
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 4d delay on this operation."
},
- "stage": "Stage 2",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (1R)",
- "sentiment": "good",
- "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Single round proofs (1R) only require a single transaction to resolve."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on Ethereum L1."
- },
- {
- "name": "Exit Window",
- "value": "∞",
- "sentiment": "good",
- "description": "Users can exit funds at any time because contracts are not upgradeable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 5/7 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "dodochain": {
+ "id": "dodochain",
+ "name": "DODOchain",
+ "slug": "dodochain",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Interoperability"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [],
+ "tvs": {
+ "associatedTokens": []
},
- "pmon": {
- "id": "pmon",
- "name": "PMON Chain",
- "slug": "pmon",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Gaming",
- "NFT"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "DA",
- "name": "Celestia"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- },
- {
- "category": "RaaS",
- "name": "AltLayer"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 598.57,
- "ether": 0,
- "stablecoin": 0,
- "associated": 598.57
- },
- "associatedTokens": [
- "PMON"
- ],
- "change7d": 0.12148464579469
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "inevm": {
+ "id": "inevm",
+ "name": "inEVM",
+ "slug": "inevm",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Interoperability"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "RaaS",
+ "name": "Caldera"
+ },
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 0,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0
},
- "bugbuster": {
- "id": "bugbuster",
- "name": "Bug Buster",
- "slug": "bugbuster",
- "type": "layer3",
- "category": "Optimistic Rollup",
- "provider": "Cartesi Rollups",
- "purposes": [
- "Bug bounty"
- ],
- "isArchived": false,
- "hostChain": "OP Mainnet",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "Stack",
- "name": "Cartesi"
- },
- {
- "category": "VM",
- "name": "AppChain"
- },
- {
- "category": "VM",
- "name": "CartesiVM"
- },
- {
- "category": "DA",
- "name": "EthereumCalldata"
- },
- {
- "category": "L3ParentChain",
- "name": "Optimism"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 520.03,
- "ether": 0,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.0660066006600659
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "Stage 0",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 12h delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "None",
- "sentiment": "bad",
- "description": "Currently the system permits invalid state roots. More details in project overview."
- },
- {
- "name": "Data Availability",
- "value": "Onchain",
- "sentiment": "good",
- "description": "All of the data needed for proof construction is published on the base chain, which ultimately gets published on Ethereum."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Cannot withdraw",
- "sentiment": "bad",
- "description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "muster": {
+ "id": "muster",
+ "name": "Muster",
+ "slug": "muster",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Gaming"],
+ "isArchived": false,
+ "hostChain": "Arbitrum One",
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [],
+ "tvs": {
+ "associatedTokens": []
},
- "gpt": {
- "id": "gpt",
- "name": "GPT Protocol",
- "slug": "gpt",
- "type": "layer2",
- "category": "Validium",
- "provider": "Polygon",
- "purposes": [
- "Universal",
- "AI"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "RaaS",
- "name": "Gateway"
- },
- {
- "category": "Stack",
- "name": "PolygonCDK"
- },
- {
- "category": "Infra",
- "name": "AggLayer"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 247.28,
- "ether": 14.96,
- "stablecoin": 0,
- "associated": 232.32
- },
- "associatedTokens": [
- "GPT"
- ],
- "change7d": 1.87936655798789
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "warning": {
- "value": "The Security Council can remove the delay on upgrades.",
- "sentiment": "bad"
- },
- "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "playblock": {
+ "id": "playblock",
+ "name": "PlayBlock",
+ "slug": "playblock",
+ "type": "layer3",
+ "category": "Optimium",
+ "provider": "Arbitrum",
+ "purposes": ["Universal", "Gaming"],
+ "isArchived": false,
+ "hostChain": "Arbitrum Nova",
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "category": "DA",
+ "name": "DAC"
+ },
+ {
+ "category": "L3ParentChain",
+ "name": "Nova"
+ },
+ {
+ "category": "RaaS",
+ "name": "Gelato"
+ },
+ {
+ "category": "Stack",
+ "name": "Orbit"
+ },
+ {
+ "category": "VM",
+ "name": "EVM"
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 0,
+ "ether": 0,
+ "stablecoin": 0,
+ "associated": 0
+ },
+ "associatedTokens": [],
+ "change7d": 0
},
- "witness": {
- "id": "witness",
- "name": "Witness Chain",
- "slug": "witness",
- "type": "layer2",
- "category": "Validium",
- "provider": "Polygon",
- "purposes": [
- "Universal",
- "IoT",
- "Oracles"
- ],
- "isArchived": false,
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "PolygonCDK"
- },
- {
- "category": "Infra",
- "name": "AggLayer"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "breakdown": {
- "total": 29.85,
- "ether": 29.85,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0.186406995230525
+ "stage": "NotApplicable",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "No mechanism",
- "sentiment": "bad",
- "description": "There is no mechanism to have transactions be included if the sequencer is down or censoring. Although the functionality exists in the code, it is currently disabled."
- },
- {
- "name": "State Validation",
- "value": "ZK proofs (ST, SN)",
- "sentiment": "good",
- "description": "STARKs and SNARKs are zero knowledge proofs that ensure state correctness. STARKs proofs are wrapped in SNARKs proofs for efficiency. SNARKs require a trusted setup."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "warning": {
- "value": "The Security Council can remove the delay on upgrades.",
- "sentiment": "bad"
- },
- "description": "Even though there is a 10d Timelock for upgrades, forced transactions are disabled. Even if they were to be enabled, user withdrawals can be censored up to 15d."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "If the Proposer fails, users can leverage the source available prover to submit proofs to the L1 bridge. There is a 5d delay for proving and a 5d delay for finalizing state proven in this way. These delays can only be lowered except during the emergency state."
- }
- ]
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "bad",
+ "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 30m challenge period."
+ },
+ {
+ "name": "Data Availability",
+ "value": "External (DAC)",
+ "sentiment": "bad",
+ "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can become a Proposer after 19d 2h of inactivity from the currently whitelisted Proposers."
+ }
+ ]
+ },
+ "teva": {
+ "id": "teva",
+ "name": "Teva Chain",
+ "slug": "teva",
+ "type": "layer3",
+ "category": "ZK Rollup",
+ "provider": "ZK Stack",
+ "purposes": ["Gaming"],
+ "isArchived": false,
+ "hostChain": "ZKsync Era",
+ "isUpcoming": false,
+ "isUnderReview": true,
+ "badges": [],
+ "tvs": {
+ "associatedTokens": []
},
- "apechain": {
- "id": "apechain",
- "name": "ApeChain",
- "slug": "apechain",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Arbitrum"
- },
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
- }
- ],
- "tvs": {
- "associatedTokens": []
+ "stage": "UnderReview",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 4d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 5/7 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
+ {
+ "name": "State Validation",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Exit Window",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Under Review",
+ "sentiment": "UnderReview",
+ "description": "This risk is currently under review."
+ }
+ ]
+ },
+ "ink": {
+ "id": "ink",
+ "name": "Ink",
+ "slug": "ink",
+ "type": "layer2",
+ "hostChain": "Ethereum",
+ "category": "Optimistic Rollup",
+ "providers": ["OP Stack"],
+ "purposes": ["Universal"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "id": "EVM",
+ "type": "VM",
+ "name": "EVM",
+ "description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
+ "action": {
+ "type": "scalingFilter",
+ "id": "vm",
+ "value": "EVM"
}
- ]
- },
- "dodochain": {
- "id": "dodochain",
- "name": "DODOchain",
- "slug": "dodochain",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Interoperability"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [],
- "tvs": {
- "associatedTokens": []
- },
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
+ },
+ {
+ "id": "EthereumBlobs",
+ "type": "DA",
+ "name": "Ethereum with blobs",
+ "description": "This project is posting its data to Ethereum as blobs",
+ "action": {
+ "type": "publicDaHighlight",
+ "slug": "ethereum"
}
- ]
- },
- "inevm": {
- "id": "inevm",
- "name": "inEVM",
- "slug": "inevm",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Interoperability"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "RaaS",
- "name": "Caldera"
- },
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
+ },
+ {
+ "id": "OPStack",
+ "type": "Stack",
+ "name": "Built on OP Stack",
+ "description": "The project is built on the OP Stack",
+ "action": {
+ "type": "scalingFilter",
+ "id": "stack",
+ "value": "OP Stack"
}
- ],
- "tvs": {
- "breakdown": {
- "total": 0,
- "ether": 0,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 6d 8h challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/1 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 25d 10h of inactivity from the currently whitelisted Proposers."
+ {
+ "id": "Superchain",
+ "type": "Infra",
+ "name": "Part of the Superchain",
+ "description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
+ "action": {
+ "type": "scalingFilter",
+ "id": "infrastructure",
+ "value": "Superchain"
}
- ]
- },
- "muster": {
- "id": "muster",
- "name": "Muster",
- "slug": "muster",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Gaming"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum One",
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [],
- "tvs": {
- "associatedTokens": []
- },
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
+ },
+ {
+ "id": "Gelato",
+ "type": "RaaS",
+ "name": "Gelato",
+ "description": "This project was deployed via the rollup-as-a-service provider Gelato",
+ "action": {
+ "type": "scalingFilter",
+ "id": "raas",
+ "value": "Gelato"
+ }
+ }
+ ],
+ "stage": "Stage 1",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There can be up to a 12h delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "good",
+ "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no exit window for users to exit in case of unwanted regular upgrades as they are initiated by the Security Council with instant upgrade power and without proper notice."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 102760330,
+ "native": 0,
+ "canonical": 28028614,
+ "external": 74731710,
+ "ether": 28028612,
+ "stablecoin": 69044360,
+ "btc": 5687351,
+ "other": 0.7,
+ "associated": 0
+ },
+ "change7d": 0.00299159143196492,
+ "associatedTokens": []
+ }
+ },
+ "unichain": {
+ "id": "unichain",
+ "name": "Unichain",
+ "slug": "unichain",
+ "type": "layer2",
+ "hostChain": "Ethereum",
+ "category": "Optimistic Rollup",
+ "providers": ["OP Stack"],
+ "purposes": ["Universal", "Exchange"],
+ "isArchived": false,
+ "isUpcoming": false,
+ "isUnderReview": false,
+ "badges": [
+ {
+ "id": "EVM",
+ "type": "VM",
+ "name": "EVM",
+ "description": "This project uses the Ethereum Virtual Machine to run its smart contracts and supports the Solidity programming language",
+ "action": {
+ "type": "scalingFilter",
+ "id": "vm",
+ "value": "EVM"
}
- ]
- },
- "playblock": {
- "id": "playblock",
- "name": "PlayBlock",
- "slug": "playblock",
- "type": "layer3",
- "category": "Optimium",
- "provider": "Arbitrum",
- "purposes": [
- "Universal",
- "Gaming"
- ],
- "isArchived": false,
- "hostChain": "Arbitrum Nova",
- "isUpcoming": false,
- "isUnderReview": false,
- "badges": [
- {
- "category": "DA",
- "name": "DAC"
- },
- {
- "category": "L3ParentChain",
- "name": "Nova"
- },
- {
- "category": "RaaS",
- "name": "Gelato"
- },
- {
- "category": "Stack",
- "name": "Orbit"
- },
- {
- "category": "VM",
- "name": "EVM"
+ },
+ {
+ "id": "EthereumBlobs",
+ "type": "DA",
+ "name": "Ethereum with blobs",
+ "description": "This project is posting its data to Ethereum as blobs",
+ "action": {
+ "type": "publicDaHighlight",
+ "slug": "ethereum"
}
- ],
- "tvs": {
- "breakdown": {
- "total": 0,
- "ether": 0,
- "stablecoin": 0,
- "associated": 0
- },
- "associatedTokens": [],
- "change7d": 0
},
- "stage": "NotApplicable",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Self sequence",
- "sentiment": "good",
- "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There is a 2d delay on this operation."
- },
- {
- "name": "State Validation",
- "value": "Fraud proofs (INT)",
- "sentiment": "bad",
- "description": "No actor outside of the single Proposer can submit fraud proofs. Interactive proofs (INT) require multiple transactions over time to resolve. The challenge protocol can be subject to delay attacks. There is a 30m challenge period."
- },
- {
- "name": "Data Availability",
- "value": "External (DAC)",
- "sentiment": "bad",
- "description": "Proof construction relies fully on data that is NOT published onchain. There exists a Data Availability Committee (DAC) with a threshold of 1/2 that is tasked with protecting and supplying the data."
- },
- {
- "name": "Exit Window",
- "value": "None",
- "sentiment": "bad",
- "description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable."
- },
- {
- "name": "Proposer Failure",
- "value": "Self propose",
- "sentiment": "good",
- "description": "Anyone can become a Proposer after 19d 2h of inactivity from the currently whitelisted Proposers."
+ {
+ "id": "OPStack",
+ "type": "Stack",
+ "name": "Built on OP Stack",
+ "description": "The project is built on the OP Stack",
+ "action": {
+ "type": "scalingFilter",
+ "id": "stack",
+ "value": "OP Stack"
}
- ]
- },
- "teva": {
- "id": "teva",
- "name": "Teva Chain",
- "slug": "teva",
- "type": "layer3",
- "category": "ZK Rollup",
- "provider": "ZK Stack",
- "purposes": [
- "Gaming"
- ],
- "isArchived": false,
- "hostChain": "ZKsync Era",
- "isUpcoming": false,
- "isUnderReview": true,
- "badges": [],
- "tvs": {
- "associatedTokens": []
- },
- "stage": "UnderReview",
- "risks": [
- {
- "name": "Sequencer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "State Validation",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Data Availability",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
- {
- "name": "Exit Window",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
- },
+ },
+ {
+ "id": "Superchain",
+ "type": "Infra",
+ "name": "Part of the Superchain",
+ "description": "The project is part of the Superchain, meaning it's included in the Superchain registry or uses the Superchain config",
+ "action": {
+ "type": "scalingFilter",
+ "id": "infrastructure",
+ "value": "Superchain"
+ }
+ }
+ ],
+ "stage": "Stage 1",
+ "risks": [
+ {
+ "name": "Sequencer Failure",
+ "value": "Self sequence",
+ "sentiment": "good",
+ "description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There can be up to a 12h delay on this operation."
+ },
+ {
+ "name": "State Validation",
+ "value": "Fraud proofs (INT)",
+ "sentiment": "good",
+ "description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve."
+ },
+ {
+ "name": "Data Availability",
+ "value": "Onchain",
+ "sentiment": "good",
+ "description": "All of the data needed for proof construction is published on Ethereum L1."
+ },
+ {
+ "name": "Exit Window",
+ "value": "None",
+ "sentiment": "bad",
+ "description": "There is no exit window for users to exit in case of unwanted regular upgrades as they are initiated by the Security Council with instant upgrade power and without proper notice."
+ },
+ {
+ "name": "Proposer Failure",
+ "value": "Self propose",
+ "sentiment": "good",
+ "description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
+ }
+ ],
+ "tvs": {
+ "breakdown": {
+ "total": 777191100,
+ "native": 0,
+ "canonical": 419098200,
+ "external": 358092930,
+ "ether": 499260000,
+ "stablecoin": 171902140,
+ "btc": 95350096,
+ "other": 10678896,
+ "associated": 4971530
+ },
+ "change7d": 0.00821442117542293,
+ "associatedTokens": [
{
- "name": "Proposer Failure",
- "value": "Under Review",
- "sentiment": "UnderReview",
- "description": "This risk is currently under review."
+ "symbol": "UNI",
+ "icon": "https://assets.coingecko.com/coins/images/12504/large/uni.jpg?1696512319"
}
]
}
}
-}
\ No newline at end of file
+ }
+}
diff --git a/src/data/networks/networks.ts b/src/data/networks/networks.ts
index 88105a8bbde..52ddcc12f29 100644
--- a/src/data/networks/networks.ts
+++ b/src/data/networks/networks.ts
@@ -4,14 +4,13 @@ import { ChainName, NonEVMChainName } from "@/lib/types"
import ArbitrumLogo from "@/public/images/layer-2/arbitrum.jpg"
import BaseLogo from "@/public/images/layer-2/base.png"
-import BlastImage from "@/public/images/layer-2/blast.png"
import EthereumLogo from "@/public/images/layer-2/ethereum.png"
+import InkLogo from "@/public/images/layer-2/ink.png"
import LineaLogo from "@/public/images/layer-2/linea.png"
-import ModeLogo from "@/public/images/layer-2/mode.png"
import OptimismLogo from "@/public/images/layer-2/optimism.png"
import ScrollLogo from "@/public/images/layer-2/scroll.png"
import StarknetLogo from "@/public/images/layer-2/starknet.png"
-import TaikoLogo from "@/public/images/layer-2/taiko.png"
+import UnichainLogo from "@/public/images/layer-2/unichain.png"
import ZkSyncEraLogo from "@/public/images/layer-2/zksyncEra.jpg"
export interface Rollup {
@@ -92,22 +91,6 @@ export const layer2Data: Rollups = [
growthepieLink: "https://www.growthepie.com/chains/optimism",
feeToken: ["ETH"],
},
- {
- l2beatID: "blast",
- growthepieID: "blast",
- name: "Blast",
- chainName: "Blast",
- logo: BlastImage,
- networkType: "optimistic",
- description: "page-layer-2-blast-description",
- website: "https://blast.io/en",
- applicationsLink: "https://www.ethereum-ecosystem.com/apps?filters=blast",
- blockExplorerLink: "https://blastscan.io/",
- bridgeLink: "https://blast.io/en/bridge",
- l2BeatLink: "https://l2beat.com/scaling/projects/blast",
- growthepieLink: "https://www.growthepie.com/chains/blast",
- feeToken: ["ETH"],
- },
{
l2beatID: "zksync2",
growthepieID: "zksync_era",
@@ -173,35 +156,35 @@ export const layer2Data: Rollups = [
feeToken: ["ETH", "STRK"],
},
{
- l2beatID: "mode",
- growthepieID: "mode",
- name: "Mode",
- chainName: "Mode",
- logo: ModeLogo,
+ l2beatID: "unichain",
+ growthepieID: "unichain",
+ name: "Unichain",
+ chainName: "Unichain",
+ logo: UnichainLogo,
networkType: "optimistic",
- description: "page-layer-2-mode-description",
- website: "https://mode.network/",
- applicationsLink: "https://mode.network/ecosystem",
- blockExplorerLink: "https://explorer.mode.network/",
- bridgeLink: "https://app.mode.network/",
- l2BeatLink: "https://l2beat.com/scaling/projects/mode",
- growthepieLink: "https://www.growthepie.com/chains/mode",
+ description: "page-layer-2-unichain-description",
+ website: "https://www.unichain.org/",
+ applicationsLink: "https://www.unichain.org/explore",
+ blockExplorerLink: "https://uniscan.xyz/",
+ bridgeLink: "https://www.unichain.org/bridge",
+ l2BeatLink: "https://l2beat.com/scaling/projects/unichain",
+ growthepieLink: "https://www.growthepie.com/chains/unichain",
feeToken: ["ETH"],
},
{
- l2beatID: "taiko",
- growthepieID: "taiko",
- name: "Taiko",
- chainName: "Taiko Alethia",
- logo: TaikoLogo,
+ l2beatID: "ink",
+ growthepieID: "ink",
+ name: "Ink",
+ chainName: "Ink",
+ logo: InkLogo,
networkType: "optimistic",
- description: "page-layer-2-taiko-description",
- website: "https://taiko.xyz",
- applicationsLink: "https://taiko.xyz/ecosystem",
- blockExplorerLink: "https://taikoscan.io/",
- bridgeLink: "https://bridge.taiko.xyz/",
- l2BeatLink: "https://l2beat.com/scaling/projects/taiko",
- growthepieLink: "https://www.growthepie.com/chains/taiko",
+ description: "page-layer-2-ink-description",
+ website: "https://inkonchain.com/",
+ applicationsLink: "https://inkonchain.com/apps",
+ blockExplorerLink: "https://explorer.inkonchain.com/",
+ bridgeLink: "https://inkonchain.com/bridge",
+ l2BeatLink: "https://l2beat.com/scaling/projects/ink",
+ growthepieLink: "https://www.growthepie.com/chains/ink",
feeToken: ["ETH"],
},
]
diff --git a/src/data/published.json b/src/data/published.json
index a49532e84ad..7d40a2dc613 100644
--- a/src/data/published.json
+++ b/src/data/published.json
@@ -1 +1 @@
-{"date":"2025-09-24"}
+{"date":"2025-10-09"}
diff --git a/src/data/roadmap/releases.tsx b/src/data/roadmap/releases.tsx
index 415b8b5c1d7..5b6f6eab212 100644
--- a/src/data/roadmap/releases.tsx
+++ b/src/data/roadmap/releases.tsx
@@ -179,10 +179,11 @@ export const getReleasesData = (t: TranslationFunction): Release[] => [
{t("page-roadmap-glamsterdam-discussed-item-1")}
+
{t("page-roadmap-glamsterdam-discussed-item-2")}
),
- href: "https://eips.ethereum.org/EIPS/eip-7773",
+ href: "https://forkcast.org/upgrade/glamsterdam/#scheduled-for-inclusion",
},
]
diff --git a/src/data/tenYearEventRegions.ts b/src/data/tenYearEventRegions.ts
new file mode 100644
index 00000000000..b7b79834f69
--- /dev/null
+++ b/src/data/tenYearEventRegions.ts
@@ -0,0 +1,1043 @@
+const tenYearEventRegions: Record<
+ string,
+ {
+ label: string
+ events: {
+ host: string
+ eventLink: string
+ city: string
+ country: string
+ countryFlag: string
+ }[]
+ }
+> = {
+ africa: {
+ label: "Africa",
+ events: [
+ {
+ host: "ETHCongo",
+ eventLink: "https://lu.ma/1mha555b?locale=fr",
+ city: "Kinshasa",
+ country: "Democratic Republic of the Congo",
+ countryFlag: "🇨🇩",
+ },
+ {
+ host: "ETHAccra",
+ eventLink: "https://lu.ma/ethereum-10y-accra",
+ city: "Accra",
+ country: "Ghana",
+ countryFlag: "🇬🇭",
+ },
+ {
+ host: "Ethereum 10th Anniversary Meetup: Reflecting on a Decade, Building the Future",
+ eventLink: "https://lu.ma/d75tlbfw",
+ city: "Kaduna",
+ country: "Nigeria",
+ countryFlag: "🇳🇬",
+ },
+ {
+ host: "BLOCKFUSE LABS",
+ eventLink: "https://lu.ma/sttk0wd5",
+ city: "Jos",
+ country: "Nigeria",
+ countryFlag: "🇳🇬",
+ },
+ {
+ host: "Africa Blockchain Community",
+ eventLink: "https://lu.ma/xatik06o",
+ city: "Lomé",
+ country: "Togo",
+ countryFlag: "🇹🇬",
+ },
+ {
+ host: "Built Different Foundation",
+ eventLink: "https://lu.ma/6yotpgq5",
+ city: "Harare",
+ country: "Zimbabwe",
+ countryFlag: "🇿🇼",
+ },
+ {
+ host: "Ayemou Loic",
+ eventLink:
+ "https://app.unlock-protocol.com/event/meetup-les-10-ans-d-anniversaire-d-ethereum",
+ city: "Abidjan",
+ country: "Côte D'Ivoire",
+ countryFlag: "🇨🇮",
+ },
+ {
+ host: "Greenpill Cape Town",
+ eventLink: "https://lu.ma/lpzufbzd",
+ city: "Cape Town",
+ country: "South Africa",
+ countryFlag: "🇿🇦",
+ },
+ {
+ host: "Eth@10 Nakuru",
+ eventLink: "https://cheppar.co.ke/events",
+ city: "Nakuru",
+ country: "Kenya",
+ countryFlag: "🇰🇪",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Cape Town",
+ eventLink: "https://lu.ma/ethereum-10y-capetown",
+ city: "Cape Town",
+ country: "South Africa",
+ countryFlag: "🇿🇦",
+ },
+ {
+ host: "Celebrating Ethereum at 10 - Web3bridge",
+ eventLink: "https://lu.ma/zw79xsf5",
+ city: "Lagos",
+ country: "Nigeria",
+ countryFlag: "🇳🇬",
+ },
+ {
+ host: "Ethereum in Ghana - Celebrating 10 years of Ethereum",
+ eventLink: "https://lu.ma/1cvbffff",
+ city: "Accra",
+ country: "Ghana",
+ countryFlag: "🇬🇭",
+ },
+ {
+ host: "Ethereum @10 Kampala",
+ eventLink: "https://lu.ma/jnsc4gml",
+ city: "Kampala",
+ country: "Uganda",
+ countryFlag: "🇺🇬",
+ },
+ {
+ host: "ETH @10: A Decade of Decentralization",
+ eventLink: "https://lu.ma/lyqt4lni",
+ city: "Kilifi",
+ country: "Kenya",
+ countryFlag: "🇰🇪",
+ },
+ {
+ host: "Celebrating 10 Years of Ethereum - Kisumu Edition",
+ eventLink:
+ "https://app.unlock-protocol.com/event/celebrating-10-years-of-ethereum-kisumu-edition",
+ city: "Kisumu",
+ country: "Kenya",
+ countryFlag: "🇰🇪",
+ },
+ {
+ host: "10 Years of Ethereum - Enttebe",
+ eventLink: "https://lu.ma/1ex31w1b",
+ city: "Entebbe",
+ country: "Uganda",
+ countryFlag: "🇺🇬",
+ },
+ {
+ host: "Ethereum 10yr anniversary Nairobi",
+ eventLink: "https://lu.ma/59ez75wu",
+ city: "Nairobi",
+ country: "Kenya",
+ countryFlag: "🇰🇪",
+ },
+ {
+ host: "Celebrating Ethereum At 10 - Greenpill Nigeria (Enugu)",
+ eventLink: "https://lu.ma/3y7ldrag",
+ city: "Enugu",
+ country: "Nigeria",
+ countryFlag: "🇳🇬",
+ },
+ {
+ host: "Ethereum at 10 Meetup",
+ eventLink: "https://lu.ma/hlkglzcg",
+ city: "Awka",
+ country: "Nigeria",
+ countryFlag: "🇳🇬",
+ },
+ ],
+ },
+ asia: {
+ label: "Asia",
+ events: [
+ {
+ host: "Shenzhen University",
+ eventLink: "https://lu.ma/ejoo0fb5",
+ city: "Shenzen",
+ country: "China",
+ countryFlag: "🇨🇳",
+ },
+ {
+ host: "Gryffindors",
+ eventLink: "https://lu.ma/e1ctjffh",
+ city: "Chennai",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "SyPy (Security & Privacy) Research Group",
+ eventLink:
+ "https://platform.serotonin.co/events/10-years-of-ethereum-iiit-hyderabad-hyderabad-india-maabsu",
+ city: "Hyderabad",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Coding Catalyst",
+ eventLink: "https://lu.ma/b9tnoyl2",
+ city: "Delhi",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Kerala Blockchain Academy",
+ eventLink: "https://lu.ma/atm8y7xp",
+ city: "Kerala",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Sahu ",
+ eventLink: "https://lu.ma/sc3s8xcl",
+ city: "Bhopal",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Indian Blockchain Fraternity",
+ eventLink: "https://lu.ma/90y38i0g",
+ city: "Bulandshahr",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "10 Year Anniversary Tel Aviv",
+ eventLink: "https://lu.ma/4qvn1wv9",
+ city: "Tel Aviv",
+ country: "Israel",
+ countryFlag: "🇮🇱",
+ },
+ {
+ host: "ETHPanda",
+ eventLink: "https://lu.ma/xecstovh",
+ city: "Hangzhou",
+ country: "China",
+ countryFlag: "🇨🇳",
+ },
+ {
+ host: "10Y of Eth Legacy x Vadodara Edition",
+ eventLink: "https://lu.ma/xmxuaex0",
+ city: "Vadora",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "10 years of Ethereum celebration - by Devfolio",
+ eventLink: "https://lu.ma/id8ftmym",
+ city: "Bengaluru",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Tokyo",
+ eventLink: "https://lu.ma/ethereum-10y-tokyo",
+ city: "Tokyo",
+ country: "Japan",
+ countryFlag: "🇯🇵",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Seoul",
+ eventLink: "https://lu.ma/ethereum-10y-seoul",
+ city: "Seoul",
+ country: "South Korea",
+ countryFlag: "🇰🇷",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Taipei",
+ eventLink: "https://lu.ma/ethereum-10y-taipei",
+ city: "Taipei",
+ country: "Taiwan",
+ countryFlag: "🇹🇼",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Mumbai",
+ eventLink: "https://lu.ma/ethereum-10y-mumbai",
+ city: "Mumbai",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Dubai",
+ eventLink: "https://lu.ma/ethereum-10y-dubai",
+ city: "Dubai",
+ country: "United Arab Emirates",
+ countryFlag: "🇦🇪",
+ },
+ {
+ host: "DHK dao - 以太坊十週年香港社群聚會",
+ eventLink: "https://lu.ma/okp0cgyl",
+ city: "Hong Kong",
+ country: "Hong Kong",
+ countryFlag: "🇭🇰",
+ },
+ {
+ host: "hack & snack",
+ eventLink: "https://lu.ma/6jfoae47",
+ city: "Chennai ",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Ethereum 10 Years: Past, Now, and Future",
+ eventLink: "https://lu.ma/s9x0eqej",
+ city: "Shanghai",
+ country: "China",
+ countryFlag: "🇨🇳",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Bangalore",
+ eventLink: "https://lu.ma/ethereum-10y-bangalore",
+ city: "Bangaluru",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Meetup: 10 Years of Ethereum",
+ eventLink: "https://9424105689699.huodongxing.com/event/8817760675500",
+ city: "Shanghai",
+ country: "China",
+ countryFlag: "🇨🇳",
+ },
+ {
+ host: "10 Years of Ethereum Celebration @ Coimbatore",
+ eventLink: "https://lu.ma/v5ga41na",
+ city: "Coimbatore",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "ETH 10 year celebrate",
+ eventLink: "https://lu.ma/qirbb7w4",
+ city: "Bursa",
+ country: "Turkiye",
+ countryFlag: "🇹🇷",
+ },
+ {
+ host: "Ethereum 10 Year Anniversary Hyderabad",
+ eventLink: "https://lu.ma/ethereum-10y-hyderabad",
+ city: "Hyderabad",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "Chai onChain: Ethereum Day Meetup – 10 Years of Decentralization",
+ eventLink: "https://lu.ma/5pz6q4rq",
+ city: "Bhopal",
+ country: "India",
+ countryFlag: "🇮🇳",
+ },
+ {
+ host: "DEPCON ",
+ eventLink: "https://lu.ma/g64yev2s?tk=kD3tkD",
+ city: "Tokyo",
+ country: "Japan",
+ countryFlag: "🇯🇵",
+ },
+ ],
+ },
+ "central & south america": {
+ label: "Central & South America",
+ events: [
+ {
+ host: "Nodo Serrano",
+ eventLink: "https://lu.ma/lb7dtked",
+ city: "Tandil",
+ country: "Argentina",
+ countryFlag: "🇦🇷",
+ },
+ {
+ host: "CochaBlock",
+ eventLink:
+ "https://app.unlock-protocol.com/event/celebra-los-10-aos-de-ethereum-junto-a-cocha-block-2",
+ city: "Cochabamba",
+ country: "Bolivia",
+ countryFlag: "🇧🇴",
+ },
+ {
+ host: "Ethereum Bolivia",
+ eventLink:
+ "https://app.unlock-protocol.com/event/una-dcada-de-ethereum-bolivia-se-suma-al-bloque-1",
+ city: "Santa Cruz de la Sierra",
+ country: "Bolivia",
+ countryFlag: "🇧🇴",
+ },
+ {
+ host: "ETH Floripa",
+ eventLink: "https://lu.ma/kq1nul4t",
+ city: "Florianópolis",
+ country: "Brazil",
+ countryFlag: "🇧🇷",
+ },
+ {
+ host: "Arias ",
+ eventLink:
+ "https://platform.serotonin.co/events/10-years-of-ethereum-in-santa-teresa-puntarenas-costa-rica-hbv_q6",
+ city: "Santa Teresa",
+ country: "Costa Rica",
+ countryFlag: "🇨🇷",
+ },
+ {
+ host: "ERC55",
+ eventLink: "https://lu.ma/f1txuy3q",
+ city: "São Paulo",
+ country: "Brazil",
+ countryFlag: "🇧🇷",
+ },
+ {
+ host: "Ethereum TGU",
+ eventLink: "https://lu.ma/lll5ayb5?tk=ZZaz4c",
+ city: "Tegucigalpa",
+ country: "Honduras",
+ countryFlag: "🇭🇳",
+ },
+ {
+ host: "SEED Latam",
+ eventLink: "https://lu.ma/c3plwb2s",
+ city: "Buenos Aires",
+ country: "Argentina",
+ countryFlag: "🇦🇷",
+ },
+ {
+ host: "ETH Beagá - Especial 10 Anos de Ethereum!",
+ eventLink: "https://lu.ma/faazu5m2",
+ city: "Belo Horizonte - MG, 31210-010",
+ country: "Brazil",
+ countryFlag: "🇧🇷",
+ },
+ {
+ host: "ETHEREUM 10 Years: The Decade of Decentralization!",
+ eventLink: "https://lu.ma/lgsk4olh",
+ city: "Rio de Janeiro",
+ country: "Brazil",
+ countryFlag: "🇧🇷",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Buenos Aires",
+ eventLink: "https://lu.ma/ethereum-10y-buenosaires",
+ city: "Buenos Aires",
+ country: "Argentina",
+ countryFlag: "🇦🇷",
+ },
+ {
+ host: "Aniversario 10 ETHEREUM",
+ eventLink: "https://lu.ma/j7u5jtv5",
+ city: "Montevideo",
+ country: "Uruguay",
+ countryFlag: "🇺🇾",
+ },
+ {
+ host: "Destino Devconnect La sucursal del cielo + 10Y Ethereum",
+ eventLink: "https://lu.ma/kl71zv1d",
+ city: "Cali",
+ country: "Colombia",
+ countryFlag: "🇨🇴",
+ },
+ {
+ host: "Ethereum Lima: 10 años en red",
+ eventLink: "https://lu.ma/ni4cbjda?tk=K5AVxg",
+ city: "Lima",
+ country: "Peru",
+ countryFlag: "🇵🇪",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Medellín",
+ eventLink: "https://lu.ma/ethereum-10y-medellin",
+ city: "Medellin",
+ country: "Colombia",
+ countryFlag: "🇨🇴",
+ },
+ {
+ host: "10 anos de Ethereum - Valencia, Venezuela",
+ eventLink: "https://lu.ma/9f6fmx8n",
+ city: "Valencia",
+ country: "Venezuela",
+ countryFlag: "🇻🇪",
+ },
+ {
+ host: "10 anos de Ethereum - Maracaibo, Venezuela",
+ eventLink: "https://lu.ma/duo2r0a1",
+ city: "Maracaibo",
+ country: "Venezuela",
+ countryFlag: "🇻🇪",
+ },
+ {
+ host: "10 anos de Ethereum - La Victoria, Venezuela",
+ eventLink: "https://lu.ma/zx726y38",
+ city: "La Victoria",
+ country: "Venezuela",
+ countryFlag: "🇻🇪",
+ },
+ {
+ host: "10 años de Eth",
+ eventLink: "https://lu.ma/fqiip4t6",
+ city: "Santiago",
+ country: "Chile",
+ countryFlag: "🇨🇱",
+ },
+ ],
+ },
+ europe: {
+ label: "Europe",
+ events: [
+ {
+ host: "PWN DAO Foundation",
+ eventLink: "https://lu.ma/xdjlepmh",
+ city: "Prague",
+ country: "Czech Republic",
+ countryFlag: "🇨🇿",
+ },
+ {
+ host: "Ethereum France",
+ eventLink:
+ "https://www.meetup.com/ethereum-france/events/308225477/?slug=ethereum-france&isFirstPublish=true",
+ city: "Paris",
+ country: "France",
+ countryFlag: "🇫🇷",
+ },
+ {
+ host: "Aachen Blockchain Club",
+ eventLink: "https://lu.ma/fpj1t4nl",
+ city: "Aachen",
+ country: "Germany",
+ countryFlag: "🇩🇪",
+ },
+ {
+ host: "Crypto Roundtable Germany",
+ eventLink: "https://lu.ma/0wh4fh5d",
+ city: "Markt Indersdorf",
+ country: "Germany",
+ countryFlag: "🇩🇪",
+ },
+ {
+ host: "SpaghettETH",
+ eventLink:
+ "https://platform.serotonin.co/events/decentralized-by-nature-ethereums-10th-at-stone-oven-house-ror-italy-isrcoe",
+ city: "Rorà",
+ country: "Italy",
+ countryFlag: "🇮🇹",
+ },
+ {
+ host: "Napoli Tech Hub",
+ eventLink: "https://lu.ma/kmav1aak",
+ city: "Naples",
+ country: "Italy",
+ countryFlag: "🇮🇹",
+ },
+ {
+ host: "UrbeETH",
+ eventLink: "https://lu.ma/bk5s41kn",
+ city: "Rome",
+ country: "Italy",
+ countryFlag: "🇮🇹",
+ },
+ {
+ host: "The Block Lisboa",
+ eventLink: "https://www.meetup.com/theblock/events/308390462/",
+ city: "Lisbon",
+ country: "Portugal",
+ countryFlag: "🇵🇹",
+ },
+ {
+ host: "ETHBratislava",
+ eventLink: "https://lu.ma/t41op9nb",
+ city: "Bratislava",
+ country: "Slovakia",
+ countryFlag: "🇸🇰",
+ },
+ {
+ host: "EPFL",
+ eventLink: "TBDhttps://lu.ma/8njndqrw",
+ city: "Lausanne",
+ country: "Switzerland",
+ countryFlag: "🇨🇭",
+ },
+ {
+ host: "Kyiv Ethereum Community",
+ eventLink: "https://lu.ma/c8lzm78l",
+ city: "Kyiv",
+ country: "Ukraine",
+ countryFlag: "🇺🇦",
+ },
+ {
+ host: "Imperial College London",
+ eventLink: "https://lu.ma/8ejysqky",
+ city: "London",
+ country: "United Kingdom",
+ countryFlag: "🇬🇧",
+ },
+ {
+ host: "Brighton Blockchain",
+ eventLink:
+ "https://www.meetup.com/brighton-blockchain/events/307527140/",
+ city: "Brighton",
+ country: "United Kingdom",
+ countryFlag: "🇬🇧",
+ },
+ {
+ host: "Migalabs",
+ eventLink: "https://lu.ma/5phjvy78",
+ city: "Barcelona",
+ country: "Spain",
+ countryFlag: "🇪🇸",
+ },
+ {
+ host: "Ethereum London (since 2014)",
+ eventLink: "https://lu.ma/13zp2s26",
+ city: "London",
+ country: "United Kingdom",
+ countryFlag: "🇬🇧",
+ },
+ {
+ host: "Clave Team",
+ eventLink: "https://lu.ma/qhi7xt2u",
+ city: "Istanbul",
+ country: "Turkey",
+ countryFlag: "🇹🇷",
+ },
+ {
+ host: "Ethereum Slovenia",
+ eventLink: "https://www.meetup.com/ethereum-slovenia/events/308604528/",
+ city: "Ljubljana",
+ country: "Slovenia",
+ countryFlag: "🇸🇮",
+ },
+ {
+ host: "Ethereum DEV NL #ETHDEVNL",
+ eventLink: "https://www.meetup.com/ethereum-dev-nl/events/308536430/",
+ city: "Amsterdam",
+ country: "Netherlands",
+ countryFlag: "🇳🇱",
+ },
+ {
+ host: "10 Years of Ethereum: ETH Slovenia Celebration Party",
+ eventLink: "https://www.meetup.com/ethereum-slovenia/events/308604528",
+ city: "Ljubljana ",
+ country: "Slovenia",
+ countryFlag: "🇸🇮",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Zug",
+ eventLink: "https://lu.ma/ethereum-10y-zug",
+ city: "Zug",
+ country: "Switzerland",
+ countryFlag: "🇨🇭",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Belgrade",
+ eventLink: "https://lu.ma/ethereum-10y-belgrade",
+ city: "Belgrade",
+ country: "Serbia",
+ countryFlag: "🇷🇸",
+ },
+ {
+ host: "Ethereum 10Y Anniversary London",
+ eventLink: "https://lu.ma/ethereum-10y-london",
+ city: "London",
+ country: "United Kingdom",
+ countryFlag: "🏴",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Lisbon",
+ eventLink: "https://lu.ma/ethereum-10y-lisbon",
+ city: "Lisbon",
+ country: "Portugal",
+ countryFlag: "🇵🇹",
+ },
+ {
+ host: "Glasgow Ethereum Meetup",
+ eventLink:
+ "https://www.meetup.com/glasgow-ethereum-meetup/events/308521185",
+ city: "Glasgow",
+ country: "Scotland",
+ countryFlag: "🏴",
+ },
+ {
+ host: "10 Years Meetup Group Anniversary",
+ eventLink:
+ "https://www.meetup.com/copenhagen-ethereum-meetup/events/308349278/?_xtd=gqFyqTMzNzQzMDM2MqFwo2FwaQ%253D%253D&from=ref",
+ city: "Copenhagen",
+ country: "Denmark",
+ countryFlag: "🇩🇰",
+ },
+ {
+ host: "ETHCluj - Ethereum 10 Year Anniversary",
+ eventLink: "https://lu.ma/sfxc7yrs",
+ city: "Cluj-Napoca",
+ country: "Romania",
+ countryFlag: "🇷🇴",
+ },
+ {
+ host: "10 Years of Ethereum Meetup Budapest 🎆",
+ eventLink: "https://www.meetup.com/ethereum-hungary/events/309101560",
+ city: "Budapest",
+ country: "Hungary",
+ countryFlag: "🇭🇺",
+ },
+ {
+ host: "Ethereum's 10 years Celebration",
+ eventLink: "https://lu.ma/somvvz9w",
+ city: "Ecublens",
+ country: "Switzerland",
+ countryFlag: "🇨🇭",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Geneva",
+ eventLink: "https://lu.ma/ishq2lb4",
+ city: "Geneva",
+ country: "Switzerland",
+ countryFlag: "🇨🇭",
+ },
+ {
+ host: "Ethereum Turns 10: Munich Beergarden Edition",
+ eventLink: "https://lu.ma/v4vojkba",
+ city: "Munich",
+ country: "Germany",
+ countryFlag: "🇩🇪",
+ },
+ {
+ host: "Ethereum Turns 10, Košice Edition",
+ eventLink: "https://lu.ma/oer88mb2",
+ city: "Košice",
+ country: "Slovakia",
+ countryFlag: "🇸🇰",
+ },
+ {
+ host: "ETH 10Y Berlin",
+ eventLink: "https://lu.ma/qvuga9h9",
+ city: "Berlin",
+ country: "Germany",
+ countryFlag: "🇩🇪",
+ },
+ {
+ host: "10 Years of Ethereum: ETHBelgium Community Meetup",
+ eventLink: "https://lu.ma/tyjgfeof",
+ city: "Brussels",
+ country: "Belgium",
+ countryFlag: "🇧🇪",
+ },
+ {
+ host: "10 Years of Ethereum Mainnet in Copenhagen",
+ eventLink:
+ "https://www.meetup.com/copenhagen-ethereum-meetup/events/309986816/",
+ city: "Copenhagen",
+ country: "Denmark",
+ countryFlag: "🇩🇰",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Vienna",
+ eventLink: "https://lu.ma/xqrduobq",
+ city: "Vienna",
+ country: "Austria",
+ countryFlag: "🇦🇹",
+ },
+ {
+ host: "10 years of Ethereum - Iceland Edition",
+ eventLink: "https://lu.ma/q9fxutzd",
+ city: "Reykjavic ",
+ country: "Iceland",
+ countryFlag: "🇮🇸",
+ },
+ {
+ host: "Crypto Céilí",
+ eventLink: "https://lu.ma/7zd11wah",
+ city: "Dublin",
+ country: "Ireland",
+ countryFlag: "🇮🇪",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Warsaw",
+ eventLink: "https://lu.ma/ethereum-10y-warsaw",
+ city: "Warsaw",
+ country: "Poland",
+ countryFlag: "🇵🇱",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Berlin",
+ eventLink: "https://lu.ma/ethereum-10y-berlin",
+ city: "Berlin",
+ country: "Germany",
+ countryFlag: "🇩🇪",
+ },
+ {
+ host: "CryptoCanal Coworking x ETHGlobal x ETH Bday Edition 😎",
+ eventLink: "https://lu.ma/ol5cwfly",
+ city: "Amsterdam",
+ country: "Netherlands",
+ countryFlag: "🇳🇱",
+ },
+ {
+ host: "Deset Godina Ethereuma Zagreb",
+ eventLink: "https://lu.ma/p5z0t93b?tk=OTc4lD",
+ city: "Zagreb",
+ country: "Croatia",
+ countryFlag: "🇭🇷",
+ },
+ {
+ host: "ETHSofia Warmup: ETH turns 10!",
+ eventLink: "https://lu.ma/au2g7o93",
+ city: "Sofia",
+ country: "Bulgaria",
+ countryFlag: "🇧🇬",
+ },
+ {
+ host: "ETHVenice - 10 years of ethereum",
+ eventLink: "https://10yethanyvenice.eventbrite.com/",
+ city: "Venice",
+ country: "Italy",
+ countryFlag: "🇮🇹",
+ },
+ ],
+ },
+ "north america": {
+ label: "North America",
+ events: [
+ {
+ host: "Ethereum Monterrey",
+ eventLink: "https://lu.ma/8njndqrw",
+ city: "Monterrey",
+ country: "Mexico",
+ countryFlag: "🇲🇽",
+ },
+ {
+ host: "Ethereum Austin",
+ eventLink: "https://www.meetup.com/ethereum-austin/events/307661745",
+ city: "Austin",
+ country: "United States",
+ countryFlag: "🇺🇸",
+ },
+ {
+ host: "Highline Beta",
+ eventLink: "https://lu.ma/cjxur5u6",
+ city: "Toronto",
+ country: "Canada",
+ countryFlag: "🇨🇦",
+ },
+ {
+ host: "Ethereum 10Y Anniversary New York",
+ eventLink: "https://lu.ma/ethereum-10y-newyork",
+ city: "New York",
+ country: "United States",
+ countryFlag: "🇺🇸",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Toronto",
+ eventLink: "https://lu.ma/ethereum-10y-toronto",
+ city: "Toronto",
+ country: "Canada",
+ countryFlag: "🇨🇦",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Waterloo",
+ eventLink: "https://lu.ma/ethereum-10y-waterloo",
+ city: "Waterloo",
+ country: "Canada",
+ countryFlag: "🇨🇦",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Vancouver",
+ eventLink: "https://lu.ma/ethereum-10y-vancouver",
+ city: "Vancouver",
+ country: "Canada",
+ countryFlag: "🇨🇦",
+ },
+ {
+ host: "Ethereum 10Y Anniversary San Francisco",
+ eventLink: "https://lu.ma/ethereum-10y-sanfrancisco",
+ city: "San Francisco",
+ country: "United States",
+ countryFlag: "🇺🇸",
+ },
+ {
+ host: "Allo Capital",
+ eventLink: "https://lu.ma/0a9pnh0u",
+ city: "Boulder",
+ country: "United States",
+ countryFlag: "🇺🇸",
+ },
+ {
+ host: "Ethereum 10 Year Anniversary Celebration: Aspen🌳",
+ eventLink: "https://lu.ma/y5as6urz",
+ city: "Aspen",
+ country: "United States",
+ countryFlag: "🇺🇸",
+ },
+ {
+ host: "Ethereum in Atlanta - A Decade on the Block",
+ eventLink: "https://lu.ma/o4usi8zx",
+ city: "Atlanta",
+ country: "United States",
+ countryFlag: "🇺🇸",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Mexico City",
+ eventLink: "https://lu.ma/ethereum-10y-mexico",
+ city: "Mexico City",
+ country: "Mexico",
+ countryFlag: "🇲🇽",
+ },
+ {
+ host: "Ethereum 10Y Anniversary Montreal",
+ eventLink: "https://lu.ma/ethereum-10y-montreal",
+ city: "Montreal",
+ country: "Canada",
+ countryFlag: "🇨🇦",
+ },
+ {
+ host: "Proof of Time: Ethereum 10 Year Anniversary",
+ eventLink: "https://lu.ma/ndkrenei",
+ city: "Chicago",
+ country: "United States",
+ countryFlag: "🇺🇸",
+ },
+ {
+ host: "Together We Build: The First Digital Monument To Last Forever",
+ eventLink: "https://dustproject.org/10-years-ethereum",
+ city: "Online",
+ country: "United States",
+ countryFlag: "🇺🇸",
+ },
+ ],
+ },
+ oceania: {
+ label: "Oceania",
+ events: [
+ {
+ host: "ETHSydney",
+ eventLink: "https://lu.ma/qx0g2942",
+ city: "Sydney",
+ country: "Australia",
+ countryFlag: "🇦🇺",
+ },
+ {
+ host: "I Love Eth- 10 year Party",
+ eventLink: "https://lu.ma/0426vwx5",
+ city: "Southport",
+ country: "Australia",
+ countryFlag: "🇦🇺",
+ },
+ {
+ host: "10 Years of Ethereum - Sydney’s Pitch Night",
+ eventLink: "https://lu.ma/qx0g2942",
+ city: "Redfern",
+ country: "Australia",
+ countryFlag: "🇦🇺",
+ },
+ {
+ host: "Ethereum 10Y Anniversary New Zealand",
+ eventLink: "https://lu.ma/ethereum-10y-newzealand",
+ city: "Christchurch",
+ country: "New Zealand",
+ countryFlag: "🇳🇿",
+ },
+ {
+ host: "Ethereum turns 10! 🎉",
+ eventLink: "https://lu.ma/upf2dnym",
+ city: "Auckland",
+ country: "New Zealand",
+ countryFlag: "🇳🇿",
+ },
+ ],
+ },
+ "southeast asia": {
+ label: "Southeast Asia",
+ events: [
+ {
+ host: "Sunway Blockchain Club",
+ eventLink: "https://lu.ma/wsiwh8qp",
+ city: "Kuala Lumpur",
+ country: "Malaysia",
+ countryFlag: "🇲🇾",
+ },
+ {
+ host: "Davao DeFi Community",
+ eventLink: "https://lu.ma/gfivritq",
+ city: "Davao City",
+ country: "Philippines",
+ countryFlag: "🇵🇭",
+ },
+ {
+ host: "ReFi Phangan & GreenPill Phangan",
+ eventLink: "https://lu.ma/k057yjjx",
+ city: "Koh Phangan",
+ country: "Thailand",
+ countryFlag: "🇹🇭",
+ },
+ {
+ host: "ETH63",
+ eventLink: "https://lu.ma/5p9rkhqv",
+ city: "Cebu",
+ country: "Philippines",
+ countryFlag: "🇵🇭",
+ },
+ {
+ host: "FAB DAO x GreenSofa (Greenpill Taiwan)",
+ eventLink: "https://lu.ma/j3htc853",
+ city: "Taipei",
+ country: "Taiwan",
+ countryFlag: "🇹🇼",
+ },
+ {
+ host: "10 years of ETHEREUM",
+ eventLink: "https://lu.ma/2eekstuy",
+ city: "Ho Chi Minh city",
+ country: "Vietnam",
+ countryFlag: "🇻��",
+ },
+ {
+ host: "10 years of ETHEREUM HA NOI",
+ eventLink: "https://lu.ma/pf1qkqs0",
+ city: "Hanoi",
+ country: "Vietnam",
+ countryFlag: "🇻🇳",
+ },
+ {
+ host: "10 years of ETHEREUM Da Nang",
+ eventLink: "https://lu.ma/t3vnzx07",
+ city: "De Nang",
+ country: "Vietnam",
+ countryFlag: "🇻🇳",
+ },
+ {
+ host: "Install Privacy, 10 Years of Ethereum",
+ eventLink: "https://lu.ma/v82lfuyb",
+ city: "Chiang Mai",
+ country: "Thailand",
+ countryFlag: "🇹🇭",
+ },
+ {
+ host: "Meetup: 10 Years of Ethereum",
+ eventLink: "https://lu.ma/ethereum-10y-singapore",
+ city: "Singapore",
+ country: "Singapore",
+ countryFlag: "🇸🇬",
+ },
+ {
+ host: "ETHSG celebrates Ethereum's 10th!",
+ eventLink: "https://lu.ma/2596pn6w",
+ city: "Singapore",
+ country: "Singapore",
+ countryFlag: "🇸🇬",
+ },
+ {
+ host: "Ethereum Genesis Day Celebration",
+ eventLink: "https://lu.ma/72lm6mu1",
+ city: "Singapore",
+ country: "Singapore",
+ countryFlag: "🇸🇬",
+ },
+ {
+ host: "Ethereum Genesis - A Decade of Decentralization",
+ eventLink: "https://lu.ma/jr95ihyx",
+ city: "Jakarta",
+ country: "Indonesia",
+ countryFlag: "🇮🇩",
+ },
+ ],
+ },
+}
+
+export default tenYearEventRegions
diff --git a/src/data/tenYearStories.ts b/src/data/tenYearStories.ts
new file mode 100644
index 00000000000..842a97c83d5
--- /dev/null
+++ b/src/data/tenYearStories.ts
@@ -0,0 +1,331 @@
+import type { Story } from "../../app/[locale]/10years/_components/types"
+
+const tenYearStories: Story[] = [
+ {
+ storyEnglish:
+ "I had a transaction with a friend who was overseas, and I was surprised that sending and receiving money through Ethereum was much faster and easier than I thought. It's much more transparent than the existing banking system, and there are no complicated procedures in the middle.",
+ storyOriginal:
+ "특히 해외에 있는 친구랑 거래를 할 일이 있었는데, 이더리움을 통해 돈을 보내고 받는 게 생각보다 훨씬 빠르고 간편해서 놀랐어요. 기존 은행 시스템보다 훨씬 투명하고, 중간에 복잡한 절차도 없고요. 작은 경험들이긴 하지만 이런 것들이 쌓이면서 제 삶에도, 그리고 제 주변에도 이더리움이 긍정적인 변화를 주고 있다는 걸 느껴요.\n",
+ category: "International transfers, Transparency",
+ name: "Inhwan",
+ date: "11.4.",
+ country: "South Korea",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "Ethereum has empowered Kenyan communities by improving financial inclusion, supporting agriculture, fostering education, and enabling cost-effective remittances. big up to ETH",
+ storyOriginal: "",
+ category: "Financial Inclusion, International transfers",
+ name: "Thomas",
+ date: "10.4.",
+ country: "Kenya",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "Self-custody in the increasingly restrictive (and sometimes even hostile) world of traditional finance has opened the doors to a parallel system of finance for me.",
+ storyOriginal: "",
+ category: "Self-Custody",
+ name: "Anon",
+ date: "10.4.",
+ country: "Canada",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "In the past, when the community held some charity events, the fund raising channels were limited and the management transparency was low. With the decentralized nature of Ethereum, we can launch crowdfunding activities worldwide, and all fund flows can be clearly recorded on the blockchain. Community members can check the use of funds at any time, which not only broadens the source of funds, but also improves the transparency and credibility of fund management.",
+ storyOriginal:
+ "以往社区举办一些公益活动时,资金募集渠道有限且管理透明度低。借助以太坊的去中心化特性,我们可以在全球范围内发起众筹活动,并且所有的资金流向都能在区块链上清晰记录。社区成员可以随时查看资金的使用情况,这不仅拓宽了资金来源,还提高了资金管理的透明度和公信力。\n",
+ category: "Community Collaboration, Transparency",
+ name: "Shangzi",
+ date: "14.4.",
+ country: "China",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "Ethereum has reduce poverty on average Nigeria youth. Young guys and ladies either trade or writing codes. This has help to reduce unemployment in my community.",
+ storyOriginal: "",
+ category: "Financial Inclusion",
+ name: "Emmanuel",
+ date: "9.4.",
+ country: "Nigeria",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "In emerging regions, instability, distrust, and social inequality are commonplace. Ethereum offers not only a technological alternative, but a philosophical one. It allows us to build systems where transparency is default, trust is programmable, and access is open.",
+ storyOriginal: "",
+ category: "Self-custody, Transparency, Community Collaboration",
+ name: "Thiago",
+ date: "15.4.",
+ country: "Brazil",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "In March 2020, toward the end of the COVID pandemic, I simply decided to try buying crypto. I bought Bitcoin and Ethereum without really understanding the difference between them at the time. Now, I’m an ETH maxi. As a citizen of my country, I’ve always been interested in one question: why can laws be so easily ignored? How can we make contracts enforceable and finally make the law work? Today, after five years on my crypto journey, I have the answer. And that answer is Ethereum — a tool for autonomous individuals. I believe in a bright future for humanity. I believe in a bright future for Ethereum. Thanks to every builder for making this future real.",
+ storyOriginal: "",
+ category: "Self-custody, Transparency",
+ name: "Dorgo.eth",
+ date: "15.4.",
+ country: "Ukraine",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "How DeFi has made an impact on my life: Spent 8 years working regular jobs, perfect credit, no debt and all banks denied my loan apps after months of back n forth. In less than 30 minutes I took a loan agains't my ETH which allowed me to buy the land and start construction.",
+ storyOriginal: "",
+ category: "Financial Inclusion",
+ name: "Casio",
+ date: "24.3.",
+ country: "",
+ twitter: "https://x.com/0xCasio/status/1506951476433895425",
+ region: "-",
+ },
+ {
+ storyEnglish:
+ "Sent some money back home to Afghanistan to support my family with stablecoins and turns out exchange centers are willing to pay an extra 10$ on 1000$ because there's more demand to keep their capital in stablecoins than holding US Dollars in fiat. Reasons? 1. Government can't control their money 2. Easier to transfer across the country and outside of the country as well. 3. Banks are very difficult to deal with 4. Since the demand for stables is high, They can transfer it to fiat whenever they want. Some of you may not see it because you're focused on memecoins but people with genuine problems are turning to crypto.",
+ storyOriginal: "",
+ category: "International transfers, Self-custody",
+ name: "Abbas",
+ date: "23.1.",
+ country: "Afghanistan",
+ twitter: "https://x.com/KhanAbbas201/status/1882473370664812814",
+ region: "Asia",
+ },
+ {
+ storyEnglish:
+ "I started as a local group in my city Warri south of Nigeria, two years ago, has metamorphosed into a vibrant community of over 400 people with some already developing smart contracts and getting immersed in Ethereum. One of the most significant differences Ethereum made in my community - the web3 Warri - was bringing together individuals with no background in blockchain and transforming them into smart contracts developers. Ethereum has helped my community - the web3 Warri - overcome some of these challenges 1. Centralization: Members of my community now understand that they have control over how they use the internet and their data 2. Seamless and cross-border payments: Most members of my community work as freelancers and remote workers. And receiving their payments have already been a challenger but with Ethereum, they have been able to receive their payments via stable coins and in almost an instance. 3. They also don't need to provide numerous documents to support their identity in making and receiving payments.",
+ storyOriginal: "",
+ category: "International transfers, Financial Inclusion, Self-custody",
+ name: "Charles",
+ date: "16.4.",
+ country: "Nigeria",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "Ethereum has made a huge difference in my life. Around eight months ago, I didn’t know much about development within the blockchain space. But as I started exploring and joined Web3 communities in Costa Rica like Dojo Coding and Web3Mentorhood, my perspective on Web3 completely changed.\n" +
+ "\n" +
+ "Thanks to Ethereum and these communities, I’ve had access to opportunities I never imagined. For instance, I was able to travel outside my country for the first time through Web3 initiatives—something I hadn't achieved through Web2-related activities. Ethereum has also helped spark events in Costa Rica, strengthening crypto adoption and building a more vibrant local ecosystem.\n" +
+ "\n" +
+ "Personally, Ethereum has opened my eyes to a world full of possibilities: collaborating with people from around the globe, constantly learning, and dreaming about building solutions that truly make an impact.",
+ storyOriginal: "",
+ category: "Community collaboration",
+ name: "Sebastián",
+ date: "16.4.",
+ country: "Costa Rica",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "I couldn't withdraw funds on offshore cryptocurrency apps, but Ethereum made it so easy.",
+ storyOriginal:
+ "من نمیتوانستم برداشت مالی در اپلیکیشن های رمز ارز برون مرزی داشته باشم ولی اتریوم این کار رو به این راحتی انجام داد. ",
+ category: "Financial inclusion, International transfers",
+ name: "Lida",
+ date: "17.4.",
+ country: "Iran",
+ twitter:
+ "من نمیتوانستم برداشت مالی در اپلیکیشن های رمز ارز برون مرزی داشته باشم ولی اتریوم این کار رو به این راحتی انجام داد.",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "Ethereum helped us break down many barriers we took for granted. Not just technical ones, but also mental ones: believing that technology was foreign, that you had to speak a certain language, live in a certain place, or have a specific profile to access real opportunities.\n" +
+ "\n" +
+ "For me and my community, it opened the door to global spaces, where what matters is what you contribute, not where you come from. It allowed us to explore, learn, and build on what we already knew but with a totally new vision.\n" +
+ "\n" +
+ "And that also showed us that we can be in both worlds—creative and technological—and add value from there.",
+ storyOriginal: "",
+ category: "Community Collaboration",
+ name: "Yamille\t",
+ date: "17.4.",
+ country: "Peru",
+ twitter: "https://x.com/yamiyami_eth\t",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "what people have used the most are remittances, I believe that’s the most common use and it’s very useful",
+ storyOriginal: "",
+ category: "Financial inclusion, International transfers",
+ name: "Cryptonautas",
+ date: "20.4.",
+ country: "Mexico",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "Growing up in Argentina, I experienced how economic instability, inflation, and a lack of trust in institutions can deeply affect daily life. These challenges pushed me to explore alternative systems that don’t rely on centralized authorities or intermediaries. That’s how I found Ethereum, and it’s made a profound difference in how I view the future.\n" +
+ "\n" +
+ "Ethereum offered me and my community a new way to think about trust, identity, and value. It’s not just a technology; it’s a tool for empowerment. With this public good, financial inclusion becomes real. People who were previously shut out of traditional systems now have access to decentralized finance, secure transactions, and even new forms of income and expression through NFTs, DAOs, and other innovations.",
+ storyOriginal: "",
+ category: "Self-custody, Community Collaboration",
+ name: " 0x3liza.eth",
+ date: "20.4.",
+ country: "Argentina",
+ twitter: "https://x.com/Elizapancake01",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "Ethereum has helped Argentinians overcome the limits of a broken financial system. It gave us a way to earn and save (mostly in stablecoins), despite inflation, currency controls, and constant uncertainty.",
+ storyOriginal: "",
+ category: "Financial Inclusion",
+ name: "Facu",
+ date: "24.4.",
+ country: "Argentina",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "I use Ethereum on a daily basis. With my Gnosis Pay card it's very easy to link my wallet to my daily expenses, and the best of it all is that I can leverage DeFi at the same time. That means that even my current account is earning yield, while keeping my funds accessible and easy to spend.",
+ storyOriginal: "",
+ category: "Payments",
+ name: "Nico",
+ date: "25.4.",
+ country: "Netherlands",
+ twitter: "https://x.com/nicnode",
+ region: "Europe",
+ },
+ {
+ storyEnglish:
+ "My family lives in Bolivia, and when my brother went to study abroad it was extremely expensive to send him money. Bank transfers are extremely expensive, and solutions like MoneyGram or Western Union would take huge cuts on the transfer. It was a big relief when we discovered that we could send him money with crypto at a fraction of the cost.",
+ storyOriginal: "",
+ category: "International transfers",
+ name: "Nico",
+ date: "25.4.",
+ country: "Netherlands",
+ twitter: "https://x.com/nicnode",
+ region: "Europe",
+ },
+ {
+ storyEnglish:
+ "I'm Cuban. I live in Serbia.\n" +
+ "From Cuba, opening a bank account was almost impossible.\n" +
+ "Paying online… even more difficult.\n" +
+ "\n" +
+ "When I arrived in Serbia, I thought everything would be easier.\n" +
+ "But in 2021, something happened to me that I'll never forget.\n" +
+ "A client asked me for a website. He paid me via PayPal.\n" +
+ "And PayPal… blocked my money.\n" +
+ "Just when I needed it most.\n" +
+ "\n" +
+ "That same day, I started looking for solutions.\n" +
+ "And I found Ethereum.\n" +
+ "\n" +
+ "That's when everything changed.\n" +
+ "Thanks to Ethereum, I was able to receive direct payments.\n" +
+ "Without banks. Without blocks. Without asking permission.\n" +
+ "\n" +
+ "Since then, I fell in love with Ethereum.\n" +
+ "Because it's not just money.\n" +
+ "It's freedom.\n" +
+ "It's being able to work and get paid, no matter where you come from.\n" +
+ "\n" +
+ "Every time I have something on another network, I try to move it to Ethereum.\n" +
+ "Because I believe in its potential.\n" +
+ "In its ability to give opportunities to people like me.\n" +
+ "People who come from countries where the system closes its doors to you.\n" +
+ "\n" +
+ "For me, Ethereum isn't just technology.\n" +
+ "It's a tool for living a better life.",
+ storyOriginal:
+ "Soy cubano. Vivo en Serbia.\n" +
+ "Desde Cuba, abrir una cuenta bancaria era casi imposible.\n" +
+ "Pagar online… aún más difícil.\n" +
+ "\n" +
+ "Cuando llegué a Serbia, pensé que todo sería más fácil.\n" +
+ "Pero en 2021 me pasó algo que no olvido.\n" +
+ "Un cliente me pidió una página web. Me pagó por PayPal.\n" +
+ "Y PayPal… me bloqueó el dinero.\n" +
+ "Justo cuando más lo necesitaba.\n" +
+ "\n" +
+ "Ese mismo día me puse a buscar soluciones.\n" +
+ "Y encontré Ethereum.\n" +
+ "\n" +
+ "Ahí cambió todo.\n" +
+ "Gracias a Ethereum pude recibir pagos directo.\n" +
+ "Sin bancos. Sin bloqueos. Sin pedir permiso.\n" +
+ "\n" +
+ "Desde entonces, me enamoré de Ethereum.\n" +
+ "Porque no es solo dinero.\n" +
+ "Es libertad.\n" +
+ "Es poder trabajar y cobrar, sin importar de dónde vengas.\n" +
+ "\n" +
+ "Cada vez que tengo algo en otra red, trato de moverlo a Ethereum.\n" +
+ "Porque creo en su potencial.\n" +
+ "En su capacidad de darle oportunidades a gente como yo.\n" +
+ "Gente que viene de países donde el sistema te cierra las puertas.\n" +
+ "\n" +
+ "Ethereum, para mí, no es solo tecnología.\n" +
+ "Es una herramienta para vivir mejor.",
+ category: "International transfers",
+ name: "imrulo.eth ",
+ date: "26.4.",
+ country: "Serbia",
+ twitter: "https://warpcast.com/guinoki.eth ",
+ region: "Europe",
+ },
+ {
+ storyEnglish:
+ "Ethereum has helped our community overcome several significant challenges, particularly around transparency, trust, and efficient resource allocation. By leveraging smart contracts, we have been able to automate and secure the distribution of funding for social impact projects, ensuring that resources are used for their intended purposes and that all transactions are transparent and publicly auditable. This has greatly reduced the risk of mismanagement and fostered greater trust among stakeholders.",
+ storyOriginal: "",
+ category: "Transparency, Community Collaboration",
+ name: "Rodrigo NuñΞz ",
+ date: "28.4.",
+ country: "Mexico",
+ twitter: "https://x.com/Cypherpunkfish1 ",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "We are using Ethereum to create new coordination mechanisms within a DeSciDAO, allowing us to allocate various forms of capital with smart contracts and accelerate research and citizen science in coral reef conservation initiatives and programs in Mesoamerica, with plans to scale these efforts worldwide.",
+ storyOriginal: "",
+ category: "Transparency, Community Collaboration",
+ name: "MesoReefDAO ",
+ date: "28.4.",
+ country: "Mexico",
+ twitter: "https://x.com/MesoReefDAO ",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "Before Ethereum, opportunities for many developers like me, especially in Nigeria and across Africa, were very limited. Access to global tech communities, funding, mentorship, and even simply being seen was incredibly hard. Ethereum changed that for me and for many people I know. It helped us overcome barriers of geography, background, and limited resources. Through Ethereum, we could contribute to open-source projects, earn real experience, build real products, and be part of something bigger than ourselves, without needing permission from institutions or borders. ",
+ storyOriginal: "",
+ category: "Community Collaboration",
+ name: "Samuel",
+ date: "28.4.",
+ country: "Nigeria",
+ twitter: "",
+ region: "#REF!",
+ },
+ {
+ storyEnglish:
+ "I use Ethereum on a day-to-day basis to build art projects, deploy websites via ENS, manage my tokens, and anonymize accounts to create new projects unrelated to me.",
+ storyOriginal:
+ "J'utilise Ethereum au jour le jour pour construire des projets artistiques, déployer des sites web via ENS, gérer mes tokens, et anonymiser des comptes pour créer de nouveaux projets non reliées à moi.",
+ category: "",
+ name: "Alex",
+ date: "5.5",
+ country: "France",
+ twitter: "",
+ region: "",
+ },
+]
+
+export default tenYearStories
diff --git a/src/data/translationProgress.json b/src/data/translationProgress.json
index 7dbcbf2b2d2..f6bbd6cec9f 100644
--- a/src/data/translationProgress.json
+++ b/src/data/translationProgress.json
@@ -121,7 +121,7 @@
{
"languageId": "el",
"words": {
- "approved": 279537,
+ "approved": 280566,
"total": 312825
}
},
diff --git a/src/data/wallets/wallet-data.ts b/src/data/wallets/wallet-data.ts
index c82086aee6f..f4324162d90 100644
--- a/src/data/wallets/wallet-data.ts
+++ b/src/data/wallets/wallet-data.ts
@@ -12,6 +12,7 @@ import BraavosImage from "@/public/images/wallets/braavos_wallet.png"
import BridgeWalletImage from "@/public/images/wallets/bridge.png"
import BurnerImage from "@/public/images/wallets/burner.png"
import CakeWalletImage from "@/public/images/wallets/cakewallet.png"
+import ClaveWallet from "@/public/images/wallets/clave.png"
import ClearWallet from "@/public/images/wallets/clearwallet.png"
import Coin98Image from "@/public/images/wallets/coin98.png"
import CoinbaseImage from "@/public/images/wallets/coinbase.png"
@@ -37,6 +38,7 @@ import OneKeyImage from "@/public/images/wallets/onekey.png"
import PhantomImage from "@/public/images/wallets/phantom.png"
import PillarImage from "@/public/images/wallets/pillar.png"
import RabbyWalletImage from "@/public/images/wallets/rabbywallet.png"
+import RailwayImage from "@/public/images/wallets/railway.png"
import RainbowImage from "@/public/images/wallets/rainbow.png"
import ReadyImage from "@/public/images/wallets/ready.png"
import SafeImage from "@/public/images/wallets/safe.png"
@@ -151,6 +153,52 @@ export const walletsData: WalletData[] = [
documentation: "",
supported_chains: ["Ethereum Mainnet"],
},
+ {
+ last_updated: "2025-10-01",
+ name: "Railway Wallet",
+ image: RailwayImage,
+ twBackgroundColor: "bg-[#000000]",
+ twGradiantBrandColor: "from-[#000000]",
+ url: "https://www.railway.xyz/",
+ active_development_team: true,
+ languages_supported: ["en"],
+ twitter: "https://x.com/Railway_xyz",
+ discord: "",
+ reddit: "",
+ telegram: "https://t.me/railwaywallet",
+ ios: true,
+ android: true,
+ linux: true,
+ windows: true,
+ macOS: true,
+ firefox: false,
+ chromium: false,
+ hardware: false,
+ open_source: true,
+ repo_url: "https://github.com/Railway-Wallet/Railway-Wallet/",
+ non_custodial: true,
+ security_audit: [],
+ scam_protection: false,
+ hardware_support: false,
+ rpc_importing: true,
+ nft_support: false,
+ connect_to_dapps: false,
+ staking: false,
+ swaps: true,
+ multichain: true,
+ layer_2: true,
+ gas_fee_customization: true,
+ ens_support: true,
+ erc_20_support: true,
+ buy_crypto: false,
+ withdraw_crypto: false,
+ multisig: false,
+ social_recovery: false,
+ onboard_documentation: "https://help.railway.xyz/",
+ documentation: "https://help.railway.xyz/",
+ supported_chains: ["Arbitrum One", "Ethereum Mainnet"],
+ privacy: true,
+ },
{
last_updated: "2025-07-15",
name: "Ready Wallet",
@@ -2166,7 +2214,7 @@ export const walletsData: WalletData[] = [
],
},
{
- last_updated: "2025-01-25",
+ last_updated: "2025-02-10",
name: "Gem Wallet",
image: GemWalletImage,
twBackgroundColor: "bg-[#2D5BE6]",
@@ -2188,6 +2236,9 @@ export const walletsData: WalletData[] = [
"ar",
"vi",
"pl",
+ "id",
+ "hi",
+ "it",
],
twitter: "https://twitter.com/GemWalletApp",
discord: "https://discord.gg/4jpxtwT8r6",
@@ -2207,14 +2258,14 @@ export const walletsData: WalletData[] = [
security_audit: [],
scam_protection: false,
hardware_support: false,
- rpc_importing: false,
+ rpc_importing: true,
nft_support: true,
connect_to_dapps: true,
staking: true,
swaps: true,
multichain: true,
layer_2: true,
- gas_fee_customization: false,
+ gas_fee_customization: true,
ens_support: true,
erc_20_support: true,
buy_crypto: true,
@@ -2228,6 +2279,9 @@ export const walletsData: WalletData[] = [
"Arbitrum One",
"Base",
"OP Mainnet",
+ "Linea",
+ "zkSync Mainnet",
+ "Blast",
],
},
{
@@ -2705,6 +2759,50 @@ export const walletsData: WalletData[] = [
"Blast",
],
},
+ {
+ last_updated: "2025-09-24",
+ name: "Clave",
+ image: ClaveWallet,
+ twBackgroundColor: "bg-[#000000]",
+ twGradiantBrandColor: "from-[#000000]",
+ url: "https://www.getclave.com/",
+ active_development_team: true,
+ languages_supported: ["en"],
+ twitter: "https://x.com/getclave",
+ discord: "https://discord.com/invite/getclave",
+ reddit: "",
+ telegram: "https://t.me/getclave",
+ ios: true,
+ android: true,
+ linux: false,
+ windows: false,
+ macOS: false,
+ firefox: false,
+ chromium: false,
+ hardware: false,
+ open_source: false,
+ repo_url: "https://github.com/getclave",
+ non_custodial: true,
+ security_audit: ["https://github.com/getclave/audits"],
+ scam_protection: true,
+ hardware_support: false,
+ rpc_importing: false,
+ nft_support: false,
+ connect_to_dapps: false,
+ staking: true,
+ swaps: true,
+ layer_2: true,
+ gas_fee_customization: false,
+ ens_support: true,
+ erc_20_support: true,
+ buy_crypto: false,
+ withdraw_crypto: false,
+ multisig: false,
+ social_recovery: true,
+ onboard_documentation: "",
+ documentation: "",
+ supported_chains: ["Arbitrum One", "Base"],
+ },
] as const satisfies Omit[]
export type WalletName = (typeof walletsData)[number]["name"]
diff --git a/src/intl/am/common.json b/src/intl/am/common.json
index 5589565ff6d..15505e03ade 100644
--- a/src/intl/am/common.json
+++ b/src/intl/am/common.json
@@ -431,5 +431,8 @@
"withdrawals": "ቀብድ ማውጣት",
"wrapped-ether": "የታሸገ ኢተር",
"yes": "አዎ",
- "zero-knowledge-proofs": "የዜሮ-ዕውቀት ማረጋገጫዎች"
+ "zero-knowledge-proofs": "የዜሮ-ዕውቀት ማረጋገጫዎች",
+ "ethereum-vs-bitcoin": "ኢቴሬም ከ ቢትኮይን",
+ "nav-ethereum-vs-bitcoin-description": "በኢቴሬም እና በቢትኮይን መካከል ያለውን ልዩነት ይረዱ"
+
}
\ No newline at end of file
diff --git a/src/intl/ar/common.json b/src/intl/ar/common.json
index c8ce960ab56..62f9ded1871 100644
--- a/src/intl/ar/common.json
+++ b/src/intl/ar/common.json
@@ -432,5 +432,8 @@
"withdrawals": "عمليات سحب تجميد العملات",
"wrapped-ether": "Wrapped Ether",
"yes": "نعم",
- "zero-knowledge-proofs": "براهين المعرفة الصفرية"
+ "zero-knowledge-proofs": "براهين المعرفة الصفرية",
+ "ethereum-vs-bitcoin": "الإيثيريوم مقابل البيتكوين",
+ "nav-ethereum-vs-bitcoin-description": "فهم الاختلافات بين الإيثيريوم والبيتكوين"
+
}
\ No newline at end of file
diff --git a/src/intl/az/common.json b/src/intl/az/common.json
index d68e7f098c0..586e388f118 100644
--- a/src/intl/az/common.json
+++ b/src/intl/az/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Payın çıxarılması",
"wrapped-ether": "Tokenləşdirilmiş Ether",
"yes": "Bəli",
- "zero-knowledge-proofs": "Sıfır biliklərlə təsdiqləmə"
+ "zero-knowledge-proofs": "Sıfır biliklərlə təsdiqləmə",
+ "ethereum-vs-bitcoin": "Ethereum və Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ethereum və Bitcoin arasındakı fərqləri anlayın"
+
}
\ No newline at end of file
diff --git a/src/intl/be/common.json b/src/intl/be/common.json
index 30dacc2ef28..a0a912aedbd 100644
--- a/src/intl/be/common.json
+++ b/src/intl/be/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Вывад ставак",
"wrapped-ether": "Wrapped Ether",
"yes": "Так",
- "zero-knowledge-proofs": "Доказ з нулявым раскрыццём"
+ "zero-knowledge-proofs": "Доказ з нулявым раскрыццём",
+ "ethereum-vs-bitcoin": "Ethereum супраць Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Зразумейце адрозненні паміж Ethereum і Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/bg/common.json b/src/intl/bg/common.json
index b812c587bab..6127316f236 100644
--- a/src/intl/bg/common.json
+++ b/src/intl/bg/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Тегления на залози",
"wrapped-ether": "Опакован Етер",
"yes": "Да",
- "zero-knowledge-proofs": "Доказателства за нулево знание"
+ "zero-knowledge-proofs": "Доказателства за нулево знание",
+ "ethereum-vs-bitcoin": "Етереум срещу Биткойн",
+ "nav-ethereum-vs-bitcoin-description": "Разберете разликите между Етереум и Биткойн"
+
}
\ No newline at end of file
diff --git a/src/intl/bn/common.json b/src/intl/bn/common.json
index b211580fed5..3b635230426 100644
--- a/src/intl/bn/common.json
+++ b/src/intl/bn/common.json
@@ -432,5 +432,8 @@
"withdrawals": "স্টেকিং উইথড্রয়াল",
"wrapped-ether": "র্যাপড ইথার",
"yes": "হ্যাঁ",
- "zero-knowledge-proofs": "শূন্য-জ্ঞান প্রমাণ"
+ "zero-knowledge-proofs": "শূন্য-জ্ঞান প্রমাণ",
+ "ethereum-vs-bitcoin": "ইথেরিয়াম বনাম বিটকয়েন",
+ "nav-ethereum-vs-bitcoin-description": "ইথেরিয়াম এবং বিটকয়েনের মধ্যে পার্থক্য বুঝুন"
+
}
\ No newline at end of file
diff --git a/src/intl/bs/common.json b/src/intl/bs/common.json
index a67e951ca29..8a916e0a149 100644
--- a/src/intl/bs/common.json
+++ b/src/intl/bs/common.json
@@ -428,5 +428,8 @@
"withdrawals": "Povlačenje uloga",
"wrapped-ether": "Wrapped Ether",
"yes": "Da",
- "zero-knowledge-proofs": "Dokazi sa nula-znanjem"
+ "zero-knowledge-proofs": "Dokazi sa nula-znanjem",
+ "ethereum-vs-bitcoin": "Ethereum protiv Bitcoina",
+ "nav-ethereum-vs-bitcoin-description": "Razumjeti razlike između Ethereuma i Bitcoina"
+
}
\ No newline at end of file
diff --git a/src/intl/ca/common.json b/src/intl/ca/common.json
index 842a7f5534b..8d7b6e85f2c 100644
--- a/src/intl/ca/common.json
+++ b/src/intl/ca/common.json
@@ -443,5 +443,8 @@
"withdrawals": "Retirada d'apilaments",
"wrapped-ether": "Ether embolicat",
"yes": "Sí",
- "zero-knowledge-proofs": "Proves de coneixement zero"
+ "zero-knowledge-proofs": "Proves de coneixement zero",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Entendre les diferències entre Ethereum i Bitcoin"
+
}
diff --git a/src/intl/cs/common.json b/src/intl/cs/common.json
index 36b0b3f19e3..e78460ec44f 100644
--- a/src/intl/cs/common.json
+++ b/src/intl/cs/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Uzamčení výběrů",
"wrapped-ether": "Zabalený Ether",
"yes": "Ano",
- "zero-knowledge-proofs": "Důkazy s nulovou znalostí"
+ "zero-knowledge-proofs": "Důkazy s nulovou znalostí",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Pochopte rozdíly mezi Ethereem a Bitcoinem"
+
}
diff --git a/src/intl/da/common.json b/src/intl/da/common.json
index 2565190ef86..5d9df271065 100644
--- a/src/intl/da/common.json
+++ b/src/intl/da/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Udtrækning af Indsatser",
"wrapped-ether": "Indpakket Ether",
"yes": "Ja",
- "zero-knowledge-proofs": "Vidensløse beviser"
+ "zero-knowledge-proofs": "Vidensløse beviser",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Forstå forskellene mellem Ethereum og Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/de/common.json b/src/intl/de/common.json
index 2c24e506481..1f3b523b951 100644
--- a/src/intl/de/common.json
+++ b/src/intl/de/common.json
@@ -456,5 +456,8 @@
"withdrawals": "Staking-Auszahlungen",
"wrapped-ether": "Wrapped Ether",
"yes": "Ja",
- "zero-knowledge-proofs": "Null-Wissen-Beweise"
+ "zero-knowledge-proofs": "Null-Wissen-Beweise",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Verstehe die Unterschiede zwischen Ethereum und Bitcoin"
+
}
diff --git a/src/intl/el/common.json b/src/intl/el/common.json
index 4eafad28e61..a20e61b9280 100644
--- a/src/intl/el/common.json
+++ b/src/intl/el/common.json
@@ -449,5 +449,8 @@
"withdrawals": "Αναλήψεις από αποθηκευμένο κεφάλαιο",
"wrapped-ether": "Wrapped Ether",
"yes": "Ναι",
- "zero-knowledge-proofs": "Απόδειξη μηδενικής γνώσης"
+ "zero-knowledge-proofs": "Απόδειξη μηδενικής γνώσης",
+ "ethereum-vs-bitcoin": "Ethereum έναντι Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Κατανοήστε τις διαφορές μεταξύ Ethereum και Bitcoin"
+
}
diff --git a/src/intl/en/common.json b/src/intl/en/common.json
index 7f5ead165ae..8d65f565d5c 100644
--- a/src/intl/en/common.json
+++ b/src/intl/en/common.json
@@ -350,7 +350,7 @@
"nav-stake-description": "Earn rewards for securing Ethereum",
"nav-stake-label": "Stake",
"nav-staking-home-description": "An overview of different options for staking",
- "nav-staking-home-label": "Staking home",
+ "nav-staking-home-label": "Staking homepage",
"nav-staking-pool-description": "Stake and earn rewards with any amount of ETH by joining with others",
"nav-staking-pool-label": "Pooled staking",
"nav-staking-saas-description": "Third-party node operators handle the operation of your validator client",
@@ -485,5 +485,8 @@
"region-wake-island-usa": "Wake Island (USA)",
"region-bonaire-netherlands": "Bonaire (Netherlands)",
"region-saba-netherlands": "Saba (Netherlands)",
- "region-sint-eustatius-netherlands": "Sint Eustatius (Netherlands)"
+ "region-sint-eustatius-netherlands": "Sint Eustatius (Netherlands)",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Understand the differences between Ethereum and Bitcoin"
+
}
diff --git a/src/intl/en/page-bug-bounty.json b/src/intl/en/page-bug-bounty.json
index 0719e9adbb9..bd16ed4b0ce 100644
--- a/src/intl/en/page-bug-bounty.json
+++ b/src/intl/en/page-bug-bounty.json
@@ -13,6 +13,8 @@
"page-upgrades-bug-bounty-misc-bugs-desc-2": "Solidity and Vyper does not hold security guarantees regarding compilation of untrusted input – and we do not issue rewards for crashes of the compiler on maliciously generated data.",
"page-upgrades-bug-bounty-deposit-bugs": "Deposit Contract bugs",
"page-upgrades-bug-bounty-deposit-bugs-desc": "The specifications and source code of the Beacon Chain Deposit Contract is part of the bug bounty program.",
+ "page-upgrades-bug-bounty-deposit-contract-specs": "Deposit Contract Specifications",
+ "page-upgrades-bug-bounty-deposit-contract-source": "Deposit Contract Source Code",
"page-upgrades-bug-bounty-dependency-bugs": "Dependency bugs",
"page-upgrades-bug-bounty-dependency-bugs-desc": "Certain dependencies are crucial for the Ethereum Network to function, and some of these have been added to the bug bounty program. Currently, the list of dependencies included in the bug bounty program are C-KZG-4844 and Go-KZG-4844.",
"page-upgrades-bug-bounty-docking": "merge",
@@ -36,7 +38,7 @@
"page-upgrades-bug-bounty-meta-description": "An overview of the Ethereum bug bounty program: how to get involved and reward information.",
"page-upgrades-bug-bounty-meta-title": "Ethereum Bug Bounty Program",
"page-upgrades-bug-bounty-not-included": "Out of scope",
- "page-upgrades-bug-bounty-not-included-desc": "Only the targets listed under in-scope are part of the Bug Bounty Program. This means that for example our infrastructure; such as webpages, dns, email etc, are not part of the bounty-scope. ERC20 contract bugs are typically not included in the bounty scope. However, we can help reach out to affected parties, such as authors or exchanges in such cases. ENS is maintained by the ENS foundation, and is not part of the bounty scope. Vulnerabilities requiring the user to have publicly exposed an API, such as JSON-RPC or the Beacon API, is out of scope of the bug bounty program.",
+ "page-upgrades-bug-bounty-not-included-desc": "Only the targets listed under in-scope are part of the Bug Bounty Program. Vulnerabilities that do NOT qualify under the program include:",
"page-upgrades-bug-bounty-owasp": "View OWASP method",
"page-upgrades-bug-bounty-points": "The EF will also provide rewards based on:",
"page-upgrades-bug-bounty-points-error": "Error loading data... please refresh.",
@@ -58,7 +60,7 @@
"page-upgrades-bug-bounty-execution-specs": "Execution Layer Specifications",
"page-upgrades-bug-bounty-specs-docs": "Specification documents",
"page-upgrades-bug-bounty-submit": "Submit a bug",
- "page-upgrades-bug-bounty-submit-desc": "For each valid bug you find you’ll earn rewards. The quantity of rewards awarded will vary depending on Severity. The severity is calculated according to the OWASP risk rating model based on Impact on the Ethereum Network and Likelihood.",
+ "page-upgrades-bug-bounty-submit-desc": "For each valid bug you find you’ll earn rewards. The quantity of rewards awarded will vary depending on severity. The severity is calculated according to the OWASP risk rating model based on Impact on the Ethereum Network and Likelihood.",
"page-upgrades-bug-bounty-subtitle": "Earn up to 250,000 USD and a place on the leaderboard by finding protocol, client and language compiler bugs affecting the Ethereum network.",
"page-upgrades-bug-bounty-title": "Open for submissions",
"page-upgrades-bug-bounty-title-1": "Beacon Chain",
@@ -71,7 +73,7 @@
"page-upgrades-bug-bounty-type-4": "Calculation or parameter inconsistencies",
"page-upgrades-bug-bounty-types": "Types of bugs",
"page-upgrades-bug-bounty-validity": "In Scope",
- "page-upgrades-bug-bounty-validity-desc": "Our bug bounty program spans end-to-end: from soundness of protocols (such as the blockchain consensus model, the wire and p2p protocols, proof of stake, etc.) and protocol/implementation compliance to network security and consensus integrity. Classical client security as well as security of cryptographic primitives are also part of the program. When in doubt, send an email to bounty@ethereum.org and ask us. You may also submit a disclosure/vulnerability directly to bounty@ethereum.org, in which case we ask that you encrypt the message using our PGP Key",
+ "page-upgrades-bug-bounty-validity-desc": "Our bug bounty program spans end-to-end: from soundness of protocols (such as the blockchain consensus model, the wire and p2p protocols, proof of stake, etc.) and protocol/implementation compliance to network security and consensus integrity. Classical client security as well as security of cryptographic primitives are also part of the program. When in doubt, send an email to bounty@ethereum.org and ask us. You may also submit a disclosure/vulnerability directly to bounty@ethereum.org, in which case we ask that you encrypt the message using our PGP Key",
"page-upgrades-bug-bounty-card-critical": "Critical",
"page-upgrades-bug-bounty-card-critical-risk": "Submit critical risk bug",
"page-upgrades-bug-bounty-card-h2": "Medium",
@@ -105,27 +107,27 @@
"page-upgrades-question-title": "Frequently asked questions",
"bug-bounty-faq-q1-title": "What should a good vulnerability submission look like?",
"bug-bounty-faq-q1-contentPreview": "See a real example of a quality vulnerability submission.",
- "bug-bounty-faq-q1-content-1": "Description: Remote Denial-of-service using non-validated blocks",
- "bug-bounty-faq-q1-content-2": "Attack scenario: An attacker can send blocks that may require a high amount of computation (the maximum gasLimit) but has no proof-of-work. If the attacker sends blocks continuously, the attacker may force the victim node to 100% CPU utilization.",
- "bug-bounty-faq-q1-content-3": "Impact: An attacker can abuse CPU utilization on remote nodes, possibly causing full DoS.",
- "bug-bounty-faq-q1-content-4": "Components: Go client version v0.6.8",
- "bug-bounty-faq-q1-content-5": "Reproduction: Send a block to a Go node that contains many txs but no valid PoW.",
- "bug-bounty-faq-q1-content-6": "Details: Blocks are validated in the method Process(Block, dontReact). This method performs expensive CPU-intensive tasks, such as executing transactions (sm.ApplyDiff) and afterward it verifies the proof-of-work (sm.ValidateBlock()). This allows an attacker to send blocks that may require a high amount of computation (the maximum gasLimit) but has no proof-of-work. If the attacker sends blocks continuously, the attacker may force the victim node to 100% CPU utilization.",
- "bug-bounty-faq-q1-content-7": "Fix: Invert the order of the checks.",
+ "bug-bounty-faq-q1-content-1": "Description: Remote Denial-of-service using non-validated blocks",
+ "bug-bounty-faq-q1-content-2": "Attack scenario: An attacker can send blocks that may require a high amount of computation (the maximum gasLimit) but has no proof-of-work. If the attacker sends blocks continuously, the attacker may force the victim node to 100% CPU utilization.",
+ "bug-bounty-faq-q1-content-3": "Impact: An attacker can abuse CPU utilization on remote nodes, possibly causing full DoS.",
+ "bug-bounty-faq-q1-content-4": "Components: Go client version v0.6.8",
+ "bug-bounty-faq-q1-content-5": "Reproduction: Send a block to a Go node that contains many txs but no valid PoW.",
+ "bug-bounty-faq-q1-content-6": "Details: Blocks are validated in the method Process(Block, dontReact). This method performs expensive CPU-intensive tasks, such as executing transactions (sm.ApplyDiff) and afterward it verifies the proof-of-work (sm.ValidateBlock()). This allows an attacker to send blocks that may require a high amount of computation (the maximum gasLimit) but has no proof-of-work. If the attacker sends blocks continuously, the attacker may force the victim node to 100% CPU utilization.",
+ "bug-bounty-faq-q1-content-7": "Fix: Invert the order of the checks.",
"bug-bounty-faq-q2-title": "Is the bug bounty program is time limited?",
"bug-bounty-faq-q2-contentPreview": "No.",
- "bug-bounty-faq-q2-content-1": "No end date is currently set. See the Ethereum Foundation blog for the latest news.",
+ "bug-bounty-faq-q2-content-1": "No end date is currently set. See the Ethereum Foundation blog for the latest news.",
"bug-bounty-faq-q3-title": "How are bounties paid out?",
"bug-bounty-faq-q3-contentPreview": "Rewards are paid out in ETH or DAI.",
- "bug-bounty-faq-q3-content-1": "Rewards are paid out in ETH or DAI after the submission has been validated, usually a few days later. Local laws require us to ask for proof of your identity. In addition, we will need your ETH address.",
+ "bug-bounty-faq-q3-content-1": "Rewards are paid out in ETH or DAI after the submission has been validated, usually a few days later. Local laws require us to ask for proof of your identity. In addition, we will need your ETH address.",
"bug-bounty-faq-q4-title": "Can I donate my reward to charity?",
"bug-bounty-faq-q4-contentPreview": "Yes!",
"bug-bounty-faq-q4-content-1": "We can donate your reward to an established charitable organization of your choice.",
"bug-bounty-faq-q5-title": "I reported an issue / vulnerability but have not received a response!",
"bug-bounty-faq-q5-contentPreview": "Please allow a few days for someone to respond to your submission.",
- "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.org if you have not received a response within a day or two.",
+ "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.org if you have not received a response within a day or two.",
"bug-bounty-faq-q6-title": "I want to be anonymous / I do not want my name on the leader board.",
- "bug-bounty-faq-q6-contentPreview": "You can do this, but it might make you ineligble for rewards.",
+ "bug-bounty-faq-q6-contentPreview": "You can do this, but it might make you ineligible for rewards.",
"bug-bounty-faq-q6-content-1": "Submitting anonymously or with a pseudonym is OK, but will make you ineligible for ETH/DAI rewards. To be eligible for ETH/DAI rewards, we require your real name and a proof of your identity to be sent, encrypted using PGP on our secure drop website, to our legal team at the Ethereum Foundation who are the sole reviewers of the documentation. Donating your bounty to a charity doesn’t require your identity.",
"bug-bounty-faq-q6-content-2": "Please let us know if you do not want your name/nick displayed on the leader board.",
"bug-bounty-faq-q7-title": "What are the points in the leaderboard?",
@@ -134,5 +136,34 @@
"bug-bounty-faq-q8-title": "Do you have a PGP key?",
"bug-bounty-faq-q8-contentPreview": "Yes. Expand for details.",
"bug-bounty-faq-q8-content-1": "Please use AE96 ED96 9E47 9B00 84F3 E17F E88D 3334 FA5F 6A0A",
- "bug-bounty-faq-q8-PGP-key": "PGP Key"
+ "bug-bounty-faq-q8-PGP-key": "PGP Key",
+ "page-upgrades-bug-bounty-severity-qualifications-title": "Vulnerability severity qualifications",
+ "page-upgrades-bug-bounty-severity-qualifications-desc": "Severity is assessed based on a discovered vulnerability's ability to do the following:",
+ "page-upgrades-bug-bounty-severity-low-title": "Low severity",
+ "page-upgrades-bug-bounty-severity-low-li-1": "Slash 0.01% of validators",
+ "page-upgrades-bug-bounty-severity-low-li-2": "Trivially cause network splits affecting 0.01% of the network",
+ "page-upgrades-bug-bounty-severity-low-li-3": "Be able to bring down 0.01% of the network by sending a single network packet or an onchain transaction",
+ "page-upgrades-bug-bounty-severity-medium-title": "Medium severity",
+ "page-upgrades-bug-bounty-severity-medium-li-1": "Slash 1% of validators",
+ "page-upgrades-bug-bounty-severity-medium-li-2": "Trivially cause network splits affecting 5% of the network",
+ "page-upgrades-bug-bounty-severity-medium-li-3": "Be able to bring down 5% of the network by sending a single network packet or an onchain transaction",
+ "page-upgrades-bug-bounty-severity-high-title": "High severity",
+ "page-upgrades-bug-bounty-severity-high-li-1": "Slash 33% of validators",
+ "page-upgrades-bug-bounty-severity-high-li-2": "Trivially cause network splits affecting 33% of the network",
+ "page-upgrades-bug-bounty-severity-high-li-3": "Be able to bring down 33% of the network by sending a single network packet or an onchain transaction",
+ "page-upgrades-bug-bounty-severity-critical-title": "Critical severity",
+ "page-upgrades-bug-bounty-severity-critical-li-1": "Slash 50% of validators",
+ "page-upgrades-bug-bounty-severity-critical-li-2": "Exploit an EIP/specification or client bug to easily create an infinite amount of ETH which is finalized by the network",
+ "page-upgrades-bug-bounty-severity-critical-li-3": "Steal ETH from all EOAs",
+ "page-upgrades-bug-bounty-severity-critical-li-4": "Burn ETH from all EOAs",
+ "page-upgrades-bug-bounty-severity-critical-li-5": "Take down the entire network by sending a single malicious onchain transaction that ends up crashing all clients",
+ "page-upgrades-bug-bounty-out-of-scope-footnote": "These are typically not included, however, we can help reach out to affected parties, such as authors or exchanges in such cases",
+ "page-upgrades-bug-bounty-not-included-li-1": "Infrastructure bugs—such as webpages, dns, email, etc.",
+ "page-upgrades-bug-bounty-not-included-li-2": "ERC-20 contract bugs",
+ "page-upgrades-bug-bounty-not-included-li-3": "Ethereum Naming Service (ENS) bugs (maintained by the ENS foundation)",
+ "page-upgrades-bug-bounty-not-included-li-4": "Vulnerabilities requiring the user to have publicly exposed an API, such as JSON-RPC or the Beacon API",
+ "page-upgrades-bug-bounty-not-included-li-5": "Typographical errors",
+ "page-upgrades-bug-bounty-not-included-li-6": "Tests",
+ "page-upgrades-bug-bounty-not-included-li-7": "High-effort (sustained, CPU or bandwidth intensive, and/or requires more than 1 packet or onchain transaction) single-peer DoS attacks",
+ "page-upgrades-bug-bounty-not-included-li-8": "Any publicly known issues (includes forum posts, PRs, github issues, commits, blog posts, public discord messages, etc.)"
}
diff --git a/src/intl/en/page-developers-local-environment.json b/src/intl/en/page-developers-local-environment.json
index b6b63999f56..f7632b9338d 100644
--- a/src/intl/en/page-developers-local-environment.json
+++ b/src/intl/en/page-developers-local-environment.json
@@ -30,4 +30,4 @@
"page-local-environment-setup-title": "Set up your local development environment",
"page-local-environment-solidity-template-desc": "A GitHub template for a pre-built setup for your Solidity smart contracts. Includes a Hardhat local network, Ethers for wallet implementation, and more.",
"page-local-environment-solidity-template-logo-alt": "Solidity template logo"
-}
\ No newline at end of file
+}
diff --git a/src/intl/en/page-layer-2.json b/src/intl/en/page-layer-2.json
index e92dbe6cbce..80b20c16d62 100644
--- a/src/intl/en/page-layer-2.json
+++ b/src/intl/en/page-layer-2.json
@@ -1,58 +1,60 @@
{
- "page-layer-2-hero-title": "Layer 2",
- "page-layer-2-hero-header": "Ethereum networks",
- "page-layer-2-hero-description": "Use Ethereum for a fraction of the cost.",
- "page-layer-2-hero-button-2-content": "Learn more",
- "page-layer-2-period": ".",
- "page-layer-2-calloutCard-1-title": "$0.01 fees",
- "page-layer-2-calloutCard-1-description": "You can trade, send money globally, or use applications without worrying about high costs.",
- "page-layer-2-calloutCard-2-title": "Near instant transactions",
- "page-layer-2-calloutCard-2-description": "Whether you are making a quick payment or engaging in decentralized finance (DeFi), all transactions take only a few seconds.",
- "page-layer-2-calloutCard-3-title": "Backed by Ethereum",
- "page-layer-2-calloutCard-3-description": "Ethereum’s time-proven and decentralized blockchain functions as the settlement layer for other newer networks.",
- "page-layer-2-meta-title": "Intro to Ethereum Layer 2: benefits and uses",
- "page-layer-2-meta-description": "Learn about Ethereum layer 2 networks",
- "page-layer-2-powered-by-ethereum-title": "Powered by Ethereum",
- "page-layer-2-powered-by-ethereum-description-1": "Ethereum is no longer just a single network.",
- "page-layer-2-powered-by-ethereum-description-2": "With hundreds of blockchains now built on top of it, Ethereum has become more cost-effective, faster, and accessible for everyday use.",
- "page-layer-2-powered-by-ethereum-description-3": "Embrace the future by joining one of the many networks powered by Ethereum!",
- "page-layer-2-man-and-dog-alt": "Man and dog playing",
- "page-layer-2-blockchain-transaction-cost": "Average transaction cost on the Ethereum blockchain",
- "page-layer-2-networks-transaction-cost": "Average transaction cost on Ethereum backed networks",
- "page-layer-2-network-of-networks-title": "The network of networks",
- "page-layer-2-network-of-networks-description": "Ethereum's strength and security provides a platform for other networks to build upon. With a single account, everything is compatible and connects seamlessly.",
- "page-layer-2-ethereum-logo-alt": "Ethereum",
- "page-layer-2-ready-to-start-title": "Ready to start?",
- "page-layer-2-ready-to-start-description": "Have a look at all the different networks that are available to you.",
- "page-layer-2-ready-to-start-button": "Explore networks",
- "page-layer-2-go": "Go",
- "page-layer-2-walking-alt": "Walking",
- "page-layer-2-why-do-we-need-multiple-networks-1": "Why do we need multiple networks on Ethereum?",
- "page-layer-2-why-do-we-need-multiple-networks-2": "Why are there all these networks and not just one Ethereum network?",
- "page-layer-2-faq-title": "Frequently asked questions",
- "page-layer-2-faq-ExpandableCard-1-title": "How do I know that a network is part of Ethereum?",
- "page-layer-2-faq-ExpandableCard-1-description-1": "There are many different ways one can categorize networks in relation to Ethereum. Many networks claim to be scaling Ethereum to gather popularity. However, one clear perspective is whether the network stores its data on the Ethereum main network. This greatly enhances user security and Ethereum's permissionless vision. Such projects are often called “rollups”. If data is stored somewhere else, then the project is not a direct Ethereum extension and is rather independent. Check out some of the most popular",
- "page-layer-2-faq-ExpandableCard-1-description-2": "Some specific industries might not require such direct close relationship such as gaming or non-financial applications where different technologies are better fit.",
- "page-layer-2-faq-ExpandableCard-2-title": "Are all these networks safe?",
- "page-layer-2-faq-ExpandableCard-2-description-1": "While generally designed with robust security features, their safety depends on the underlying technology, smart contract security, and",
- "page-layer-2-faq-ExpandableCard-2-link": "maturity of the network",
- "page-layer-2-faq-ExpandableCard-2-description-2": "Users should perform due diligence, starting with small transactions and staying updated on developments to ensure secure usage.",
- "page-layer-2-faq-ExpandableCard-3-title": "Why can't Ethereum scale its own chain instead of relying on these networks?",
- "page-layer-2-faq-ExpandableCard-3-description": "Ethereum can't easily scale its own main chain because it needs to stay secure and decentralized. Making the main chain faster could make it less secure and more centralized. Ethereum networks help by processing transactions off the main chain and then using the main chain for security, allowing Ethereum to handle more transactions without losing security or decentralization.",
- "page-layer-2-faq-ExpandableCard-4-title": "Why is there no 'official' Ethereum networks?",
- "page-layer-2-faq-ExpandableCard-4-description": "Just as there is no 'official' Ethereum client, there is no 'official' Ethereum layer 2. Ethereum is permissionless - technically anyone can create a layer 2! Multiple teams will implement their version of a layer 2, and the ecosystem as a whole will benefit from a diversity of design approaches that are optimized for different use cases. Much like we have multiple Ethereum clients developed by multiple teams in order to have diversity in the network, this too will be how layer 2s develop in the future.",
- "page-layer-2-callout-1-title": "Explore different networks",
- "page-layer-2-callout-1-description": "Learn how networks differ from each other and how far have gotten in their development.",
- "page-layer-2-callout-2-title": "Interested in more details?",
- "page-layer-2-callout-2-description": "Curious about the technology and reasons for this scaling approach? Learn more about the thinking and different technological approaches.",
- "page-layer-2-arbitrum-description": "Arbitrum One is a general-purpose Optimistic Rollup built by Offchain Labs and governed by the Arbitrum DAO.",
- "page-layer-2-base-description": "Base is an Optimistic Rollup built with the OP Stack. It offers a low-cost and builder-friendly way for anyone, anywhere, to build onchain.",
- "page-layer-2-optimism-description": "OP Mainnet is an EVM-equivalent Optimistic Rollup. It aims to be fast, simple, and secure.",
- "page-layer-2-blast-description": "Blast is an EVM-compatible Optimistic Rollup supporting native yield.",
- "page-layer-2-zksync2-description": "ZKsync Era is a general-purpose ZK Rollup with full EVM compatibility.",
- "page-layer-2-linea-description": "Linea is a ZK Rollup powered by Consensys zkEVM, designed to scale the Ethereum network.",
- "page-layer-2-scroll-description": "Scroll is ZK Rollup that extends Ethereum’s capabilities through ZK tech and EVM compatibility.",
- "page-layer-2-starknet-description": "Starknet is a general purpose ZK Rollup based on STARKs and the Cairo VM.",
- "page-layer-2-mode-description": "Mode is an OP stack Optimistic Rollup building the AIFi economy.",
- "page-layer-2-taiko-description": "Taiko is a decentralized, Ethereum-equivalent ZK-EVM rollup that enables seamless cross-chain communication."
+ "page-layer-2-hero-title": "Layer 2",
+ "page-layer-2-hero-header": "Ethereum networks",
+ "page-layer-2-hero-description": "Use Ethereum for a fraction of the cost.",
+ "page-layer-2-hero-button-2-content": "Learn more",
+ "page-layer-2-period": ".",
+ "page-layer-2-calloutCard-1-title": "$0.01 fees",
+ "page-layer-2-calloutCard-1-description": "You can trade, send money globally, or use applications without worrying about high costs.",
+ "page-layer-2-calloutCard-2-title": "Near instant transactions",
+ "page-layer-2-calloutCard-2-description": "Whether you are making a quick payment or engaging in decentralized finance (DeFi), all transactions take only a few seconds.",
+ "page-layer-2-calloutCard-3-title": "Backed by Ethereum",
+ "page-layer-2-calloutCard-3-description": "Ethereum’s time-proven and decentralized blockchain functions as the settlement layer for other newer networks.",
+ "page-layer-2-meta-title": "Intro to Ethereum Layer 2: benefits and uses",
+ "page-layer-2-meta-description": "Learn about Ethereum layer 2 networks",
+ "page-layer-2-powered-by-ethereum-title": "Powered by Ethereum",
+ "page-layer-2-powered-by-ethereum-description-1": "Ethereum is no longer just a single network.",
+ "page-layer-2-powered-by-ethereum-description-2": "With hundreds of blockchains now built on top of it, Ethereum has become more cost-effective, faster, and accessible for everyday use.",
+ "page-layer-2-powered-by-ethereum-description-3": "Embrace the future by joining one of the many networks powered by Ethereum!",
+ "page-layer-2-man-and-dog-alt": "Man and dog playing",
+ "page-layer-2-blockchain-transaction-cost": "Average transaction cost on the Ethereum blockchain",
+ "page-layer-2-networks-transaction-cost": "Average transaction cost on Ethereum backed networks",
+ "page-layer-2-network-of-networks-title": "The network of networks",
+ "page-layer-2-network-of-networks-description": "Ethereum's strength and security provides a platform for other networks to build upon. With a single account, everything is compatible and connects seamlessly.",
+ "page-layer-2-ethereum-logo-alt": "Ethereum",
+ "page-layer-2-ready-to-start-title": "Ready to start?",
+ "page-layer-2-ready-to-start-description": "Have a look at all the different networks that are available to you.",
+ "page-layer-2-ready-to-start-button": "Explore networks",
+ "page-layer-2-go": "Go",
+ "page-layer-2-walking-alt": "Walking",
+ "page-layer-2-why-do-we-need-multiple-networks-1": "Why do we need multiple networks on Ethereum?",
+ "page-layer-2-why-do-we-need-multiple-networks-2": "Why are there all these networks and not just one Ethereum network?",
+ "page-layer-2-faq-title": "Frequently asked questions",
+ "page-layer-2-faq-ExpandableCard-1-title": "How do I know that a network is part of Ethereum?",
+ "page-layer-2-faq-ExpandableCard-1-description-1": "There are many different ways one can categorize networks in relation to Ethereum. Many networks claim to be scaling Ethereum to gather popularity. However, one clear perspective is whether the network stores its data on the Ethereum main network. This greatly enhances user security and Ethereum's permissionless vision. Such projects are often called “rollups”. If data is stored somewhere else, then the project is not a direct Ethereum extension and is rather independent. Check out some of the most popular",
+ "page-layer-2-faq-ExpandableCard-1-description-2": "Some specific industries might not require such direct close relationship such as gaming or non-financial applications where different technologies are better fit.",
+ "page-layer-2-faq-ExpandableCard-2-title": "Are all these networks safe?",
+ "page-layer-2-faq-ExpandableCard-2-description-1": "While generally designed with robust security features, their safety depends on the underlying technology, smart contract security, and",
+ "page-layer-2-faq-ExpandableCard-2-link": "maturity of the network",
+ "page-layer-2-faq-ExpandableCard-2-description-2": "Users should perform due diligence, starting with small transactions and staying updated on developments to ensure secure usage.",
+ "page-layer-2-faq-ExpandableCard-3-title": "Why can't Ethereum scale its own chain instead of relying on these networks?",
+ "page-layer-2-faq-ExpandableCard-3-description": "Ethereum can't easily scale its own main chain because it needs to stay secure and decentralized. Making the main chain faster could make it less secure and more centralized. Ethereum networks help by processing transactions off the main chain and then using the main chain for security, allowing Ethereum to handle more transactions without losing security or decentralization.",
+ "page-layer-2-faq-ExpandableCard-4-title": "Why is there no 'official' Ethereum networks?",
+ "page-layer-2-faq-ExpandableCard-4-description": "Just as there is no 'official' Ethereum client, there is no 'official' Ethereum layer 2. Ethereum is permissionless - technically anyone can create a layer 2! Multiple teams will implement their version of a layer 2, and the ecosystem as a whole will benefit from a diversity of design approaches that are optimized for different use cases. Much like we have multiple Ethereum clients developed by multiple teams in order to have diversity in the network, this too will be how layer 2s develop in the future.",
+ "page-layer-2-callout-1-title": "Explore different networks",
+ "page-layer-2-callout-1-description": "Learn how networks differ from each other and how far have gotten in their development.",
+ "page-layer-2-callout-2-title": "Interested in more details?",
+ "page-layer-2-callout-2-description": "Curious about the technology and reasons for this scaling approach? Learn more about the thinking and different technological approaches.",
+ "page-layer-2-arbitrum-description": "Arbitrum One is a general-purpose Optimistic Rollup built by Offchain Labs and governed by the Arbitrum DAO.",
+ "page-layer-2-base-description": "Base is an Optimistic Rollup built with the OP Stack. It offers a low-cost and builder-friendly way for anyone, anywhere, to build onchain.",
+ "page-layer-2-optimism-description": "OP Mainnet is an EVM-equivalent Optimistic Rollup. It aims to be fast, simple, and secure.",
+ "page-layer-2-blast-description": "Blast is an EVM-compatible Optimistic Rollup supporting native yield.",
+ "page-layer-2-zksync2-description": "ZKsync Era is a general-purpose ZK Rollup with full EVM compatibility.",
+ "page-layer-2-linea-description": "Linea is a ZK Rollup powered by Consensys zkEVM, designed to scale the Ethereum network.",
+ "page-layer-2-scroll-description": "Scroll is ZK Rollup that extends Ethereum’s capabilities through ZK tech and EVM compatibility.",
+ "page-layer-2-starknet-description": "Starknet is a general purpose ZK Rollup based on STARKs and the Cairo VM.",
+ "page-layer-2-mode-description": "Mode is an OP stack Optimistic Rollup building the AIFi economy.",
+ "page-layer-2-taiko-description": "Taiko is a decentralized, Ethereum-equivalent ZK-EVM rollup that enables seamless cross-chain communication.",
+ "page-layer-2-unichain-description": "Unichain is a DeFi-native Ethereum L2, built to be the home for liquidity across chains",
+ "page-layer-2-ink-description": "Ink is an Ethereum OP Stack layer 2 blockchain designed to be the house of DeFi for the Superchain; a powerful baselayer for deploying innovative DeFi protocols."
}
diff --git a/src/intl/en/page-resources.json b/src/intl/en/page-resources.json
index 939a0c5ffcf..cdb5906d224 100644
--- a/src/intl/en/page-resources.json
+++ b/src/intl/en/page-resources.json
@@ -7,8 +7,7 @@
"page-resources-network-layer2-title": "Ethereum Networks - Layer 2",
"page-resources-network-layer2-chart-label": "Median transaction cost on Ethereum networks",
"page-resources-network-layer2-l2beat-description": "L2BEAT was created to provide transparent and verifiable insights into emerging layer two (L2) technologies which, in line with the rollup-centric Ethereum scaling roadmap, are aimed at scaling Ethereum.",
- "page-resources-network-layer2-growthepie-description": "Comprehensive data and insights across Ethereum Mainnet and Layer 2 networks. Visualize usage, economics, and growth of the entire Ethereum ecosystem.",
- "page-resources-network-layer2-l2fees-description": "How much does it cost to use Layer 2?",
+ "page-resources-network-layer2-growthepie-description": "growthepie is visualizing usage and growth of Ethereum Mainnet and Layer 2s. Real-time fees, economics data, application traction, stablecoin data, data-driven articles, and much more.",
"page-resources-block-explorers-title": "Block explorers",
"page-resources-block-explorers-chart-label": "Time to next block",
"page-resources-block-explorers-blockscout-description": "Open-source block explorer by Blockscout with complete blockchain data and APIs for Ethereum networks.",
diff --git a/src/intl/en/page-roadmap.json b/src/intl/en/page-roadmap.json
index a2a898a4fbf..e092f7a80d1 100644
--- a/src/intl/en/page-roadmap.json
+++ b/src/intl/en/page-roadmap.json
@@ -95,6 +95,7 @@
"page-roadmap-fusaka-additional-item-1": "Support for secure enclaves on mobile devices to improve UX",
"page-roadmap-fusaka-additional-item-2": "Blob fee market improvements",
"page-roadmap-fusaka-additional-item-3": "Further improvements to validator efficiency and network performance",
- "page-roadmap-glamsterdam-discussed-title": "Discussed for Glamsterdam",
- "page-roadmap-glamsterdam-discussed-item-1": "Verkle trees"
+ "page-roadmap-glamsterdam-discussed-title": "Scheduled for Glamsterdam",
+ "page-roadmap-glamsterdam-discussed-item-1": "Enshrined Proposer-Builder Separation (ePBS)",
+ "page-roadmap-glamsterdam-discussed-item-2": "Block-level Access Lists (BALs)"
}
diff --git a/src/intl/en/page-staking.json b/src/intl/en/page-staking.json
index 7792be32213..356b8023291 100644
--- a/src/intl/en/page-staking.json
+++ b/src/intl/en/page-staking.json
@@ -30,7 +30,7 @@
"page-staking-hero-title": "How to stake your ETH",
"page-staking-hero-header": "Earn rewards while securing Ethereum",
"page-staking-hero-subtitle": "Any user with any amount of ETH can help secure the network and earn rewards in the process.",
- "page-staking-dropdown-home": "Staking home",
+ "page-staking-dropdown-home": "Staking homepage",
"page-staking-dropdown-solo": "Home staking",
"page-staking-more-on-solo": "More on home staking",
"page-staking-learn-more-solo": "Learn more about solo staking",
diff --git a/src/intl/en/page-wallets-find-wallet.json b/src/intl/en/page-wallets-find-wallet.json
index 8179584999e..dd6fe59ca3a 100644
--- a/src/intl/en/page-wallets-find-wallet.json
+++ b/src/intl/en/page-wallets-find-wallet.json
@@ -36,7 +36,7 @@
"page-find-wallet-token-importing-desc": "Import any ERC-20 token to use in the wallet",
"page-find-wallet-buy-crypto": "Buy crypto",
"page-find-wallet-buy-crypto-desc": "Buy crypto with fiat directly in the wallet \n *Note: buying crypto may be region specific",
- "page-find-wallet-sell-for-fiat": "Sell for fiat",
+ "page-find-wallet-sell-for-fiat": "Sell for cash",
"page-find-wallet-sell-for-fiat-desc": "Sell crypto to fiat directly in the wallet \n *Note: withdrawing crypto may be region specific",
"page-find-wallet-multisig": "Multisig",
"page-find-wallet-multisig-desc": "Wallets that require multiple signatures to authorize a transaction",
diff --git a/src/intl/es/common.json b/src/intl/es/common.json
index 3de9bbaf290..61c6801ac71 100644
--- a/src/intl/es/common.json
+++ b/src/intl/es/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Retiradas de participaciones",
"wrapped-ether": "Wrapped Ether (eter envuelto)",
"yes": "Sí",
- "zero-knowledge-proofs": "Pruebas de conocimiento cero"
+ "zero-knowledge-proofs": "Pruebas de conocimiento cero",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Entiende las diferencias entre Ethereum y Bitcoin"
+
}
diff --git a/src/intl/es/page-developers-local-environment.json b/src/intl/es/page-developers-local-environment.json
index 077d02dc7bf..b5970ff0be6 100644
--- a/src/intl/es/page-developers-local-environment.json
+++ b/src/intl/es/page-developers-local-environment.json
@@ -30,4 +30,4 @@
"page-local-environment-setup-title": "Configure su entorno de desarrollo local",
"page-local-environment-solidity-template-desc": "Una plantilla de GitHub para una configuración prediseñada para sus contratos inteligentes de Solidity. Incluye una red local de Hardhat, Waffle para pruebas, Ethers para implementación de carteras, y más.",
"page-local-environment-solidity-template-logo-alt": "Logo de plantilla Solidity"
-}
\ No newline at end of file
+}
diff --git a/src/intl/fa/common.json b/src/intl/fa/common.json
index f7bf1391d02..74e606c2250 100644
--- a/src/intl/fa/common.json
+++ b/src/intl/fa/common.json
@@ -443,5 +443,8 @@
"withdrawals": "برداشتها از سهامگذاری",
"wrapped-ether": "رپد اتر",
"yes": "بله",
- "zero-knowledge-proofs": "اثباتهای دانش-صفر"
+ "zero-knowledge-proofs": "اثباتهای دانش-صفر",
+ "ethereum-vs-bitcoin": "اتریوم در مقابل بیتکوین",
+ "nav-ethereum-vs-bitcoin-description": "درک تفاوتهای بین اتریum و بیتکوین"
+
}
diff --git a/src/intl/fi/common.json b/src/intl/fi/common.json
index fe837ef7bb1..db7eebc9bc4 100644
--- a/src/intl/fi/common.json
+++ b/src/intl/fi/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Panostamisen nostot",
"wrapped-ether": "Wrapped Ether",
"yes": "Kyllä",
- "zero-knowledge-proofs": "Nollatietotodistukset"
+ "zero-knowledge-proofs": "Nollatietotodistukset",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ymmärrä Ethereumin ja Bitcoinin väliset erot"
+
}
\ No newline at end of file
diff --git a/src/intl/fil/common.json b/src/intl/fil/common.json
index 144e5c670e5..969b5d752fe 100644
--- a/src/intl/fil/common.json
+++ b/src/intl/fil/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Mga pag-withdraw ng stake",
"wrapped-ether": "Wrapped na Ether",
"yes": "Oo",
- "zero-knowledge-proofs": "Zero-knowledge proofs"
+ "zero-knowledge-proofs": "Zero-knowledge proofs",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Unawain ang mga pagkakaiba sa pagitan ng Ethereum at Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/fr/common.json b/src/intl/fr/common.json
index de4b3ed5895..a569f21ff51 100644
--- a/src/intl/fr/common.json
+++ b/src/intl/fr/common.json
@@ -457,5 +457,8 @@
"withdrawals": "Retraits de la mise en jeu",
"wrapped-ether": "Ether enveloppé",
"yes": "Oui",
- "zero-knowledge-proofs": "Preuves à divulgation nulle de connaissance"
+ "zero-knowledge-proofs": "Preuves à divulgation nulle de connaissance",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Comprendre les différences entre Ethereum et Bitcoin"
+
}
diff --git a/src/intl/ga/common.json b/src/intl/ga/common.json
index e178494956e..2e36764119c 100644
--- a/src/intl/ga/common.json
+++ b/src/intl/ga/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Aistarraingtí geallchuir",
"wrapped-ether": "Éitear fillte",
"yes": "Tá",
- "zero-knowledge-proofs": "Cruthúnais nialais-eolais"
+ "zero-knowledge-proofs": "Cruthúnais nialais-eolais",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Tuig na difríochtaí idir Ethereum agus Bitcoin"
+
}
diff --git a/src/intl/gl/common.json b/src/intl/gl/common.json
index 2858dabae6e..f4b34cc031b 100644
--- a/src/intl/gl/common.json
+++ b/src/intl/gl/common.json
@@ -429,5 +429,8 @@
"withdrawals": "Retiradas de participación",
"wrapped-ether": "Éter envolto",
"yes": "Si",
- "zero-knowledge-proofs": "Probas de coñecemento cero"
+ "zero-knowledge-proofs": "Probas de coñecemento cero",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Comprenda as diferenzas entre Ethereum e Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/gu/common.json b/src/intl/gu/common.json
index 1e13e91b402..a0d80d94df9 100644
--- a/src/intl/gu/common.json
+++ b/src/intl/gu/common.json
@@ -428,5 +428,8 @@
"withdrawals": "સ્ટેકીંગ ઉપાડ",
"wrapped-ether": "આવરિત ઈથર",
"yes": "હા",
- "zero-knowledge-proofs": "શૂન્ય-જાણકારી પુરાવાઓ"
+ "zero-knowledge-proofs": "શૂન્ય-જાણકારી પુરાવાઓ",
+ "ethereum-vs-bitcoin": "Ethereum વિ Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ethereum અને Bitcoin વચ્ચેનો તફાવત સમજો"
+
}
\ No newline at end of file
diff --git a/src/intl/ha/common.json b/src/intl/ha/common.json
index 4b77e2f5acf..7f47cf39982 100644
--- a/src/intl/ha/common.json
+++ b/src/intl/ha/common.json
@@ -430,5 +430,8 @@
"withdrawals": "Cire Ajiya",
"wrapped-ether": "Nade Ether",
"yes": "Eh",
- "zero-knowledge-proofs": "Hujjojin ilimin sifili"
+ "zero-knowledge-proofs": "Hujjojin ilimin sifili",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Fahimci bambance-bambance tsakanin Ethereum da Bitcoin"
+
}
diff --git a/src/intl/he/common.json b/src/intl/he/common.json
index f4a62a45542..6de7a7cad79 100644
--- a/src/intl/he/common.json
+++ b/src/intl/he/common.json
@@ -429,5 +429,8 @@
"withdrawals": "משיכות הימור",
"wrapped-ether": "אתר עטוף",
"yes": "כן",
- "zero-knowledge-proofs": "הוכחות אפס ידע"
+ "zero-knowledge-proofs": "הוכחות אפס ידע",
+ "ethereum-vs-bitcoin": "אתריום מול ביטקוין",
+ "nav-ethereum-vs-bitcoin-description": "הבן את ההבדלים בין אתריום לביטקוין"
+
}
\ No newline at end of file
diff --git a/src/intl/hi/common.json b/src/intl/hi/common.json
index adf808ae6d4..dade69b5c2d 100644
--- a/src/intl/hi/common.json
+++ b/src/intl/hi/common.json
@@ -432,5 +432,8 @@
"withdrawals": "स्टेकिंग निकालना",
"wrapped-ether": "लपेटा हुआ ईथर",
"yes": "हाँ",
- "zero-knowledge-proofs": "शून्य-ज्ञान प्रमाण"
+ "zero-knowledge-proofs": "शून्य-ज्ञान प्रमाण",
+ "ethereum-vs-bitcoin": "एथेरियम बनाम बिटकॉइन",
+ "nav-ethereum-vs-bitcoin-description": "एथेरियम और बिटकॉइन के बीच के अंतर को समझें"
+
}
diff --git a/src/intl/hr/common.json b/src/intl/hr/common.json
index eaa98b3b77e..ba4cee137b0 100644
--- a/src/intl/hr/common.json
+++ b/src/intl/hr/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Povlačenje uloga",
"wrapped-ether": "Zamotan Ether",
"yes": "Da",
- "zero-knowledge-proofs": "Dokazi nultog znanja"
+ "zero-knowledge-proofs": "Dokazi nultog znanja",
+ "ethereum-vs-bitcoin": "Ethereum protiv Bitcoina",
+ "nav-ethereum-vs-bitcoin-description": "Razumjeti razlike između Ethereuma i Bitcoina"
+
}
\ No newline at end of file
diff --git a/src/intl/hu/common.json b/src/intl/hu/common.json
index 7d9fd2e4cf2..860d5be3343 100644
--- a/src/intl/hu/common.json
+++ b/src/intl/hu/common.json
@@ -444,5 +444,8 @@
"withdrawals": "A letétbe helyezés visszavonása",
"wrapped-ether": "Becsomagolt ether (WETH)",
"yes": "Igen",
- "zero-knowledge-proofs": "Felfedés nélküli bizonyítás"
+ "zero-knowledge-proofs": "Felfedés nélküli bizonyítás",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Az Ethereum és a Bitcoin közötti különbségek megértése"
+
}
diff --git a/src/intl/hy-am/common.json b/src/intl/hy-am/common.json
index d07ae1b3470..a27a813e421 100644
--- a/src/intl/hy-am/common.json
+++ b/src/intl/hy-am/common.json
@@ -429,5 +429,8 @@
"withdrawals": "Գումարի դուրսբերումներ",
"wrapped-ether": "Փաթաթված Էթեր",
"yes": "Այո՛",
- "zero-knowledge-proofs": "Զրոյական գիտելիքի ապացույցներ"
+ "zero-knowledge-proofs": "Զրոյական գիտելիքի ապացույցներ",
+ "ethereum-vs-bitcoin": "Ethereum ընդդեմ Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Հասկացեք Ethereum-ի և Bitcoin-ի միջև եղած տարբերությունները"
+
}
\ No newline at end of file
diff --git a/src/intl/id/common.json b/src/intl/id/common.json
index 639e982959c..782722746e2 100644
--- a/src/intl/id/common.json
+++ b/src/intl/id/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Penarikan penaruhan",
"wrapped-ether": "Ether Terbungkus",
"yes": "Ya",
- "zero-knowledge-proofs": "Zero-Knowledge Proofs"
+ "zero-knowledge-proofs": "Zero-Knowledge Proofs",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Pahami perbedaan antara Ethereum dan Bitcoin"
+
}
diff --git a/src/intl/ig/common.json b/src/intl/ig/common.json
index 99582055f01..7481ad8a933 100644
--- a/src/intl/ig/common.json
+++ b/src/intl/ig/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Mwepụ ego etinyere",
"wrapped-ether": "Eta(Ether) akpụrụ na ụdị akara",
"yes": "Ee",
- "zero-knowledge-proofs": "Ihe akaebe ihe ọmụma efu"
+ "zero-knowledge-proofs": "Ihe akaebe ihe ọmụma efu",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ghọta ndịiche dị n'etiti Ethereum na Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/it/common.json b/src/intl/it/common.json
index e5488b9dce6..fae7bd46dc2 100644
--- a/src/intl/it/common.json
+++ b/src/intl/it/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Prelievi di staking",
"wrapped-ether": "Wrapped Ether",
"yes": "Sì",
- "zero-knowledge-proofs": "Dimostrazioni a conoscenza zero"
+ "zero-knowledge-proofs": "Dimostrazioni a conoscenza zero",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Comprendi le differenze tra Ethereum e Bitcoin"
+
}
diff --git a/src/intl/ja/common.json b/src/intl/ja/common.json
index e628bde2aef..28a2f3acfbe 100644
--- a/src/intl/ja/common.json
+++ b/src/intl/ja/common.json
@@ -444,5 +444,8 @@
"withdrawals": "ステーキングの引き出し",
"wrapped-ether": "ラップドイーサ",
"yes": "はい",
- "zero-knowledge-proofs": "ゼロ知識証明"
+ "zero-knowledge-proofs": "ゼロ知識証明",
+ "ethereum-vs-bitcoin": "イーサリアム vs ビットコイン",
+ "nav-ethereum-vs-bitcoin-description": "イーサリアムとビットコインの違いを理解する"
+
}
diff --git a/src/intl/ka/common.json b/src/intl/ka/common.json
index dd4a0526fb8..50412cd4913 100644
--- a/src/intl/ka/common.json
+++ b/src/intl/ka/common.json
@@ -431,5 +431,8 @@
"withdrawals": "სტეიკინგის გატანა",
"wrapped-ether": "შეფუთული ეთერი",
"yes": "კი",
- "zero-knowledge-proofs": "ნულოვანი ცოდნის მტკიცებულებები"
+ "zero-knowledge-proofs": "ნულოვანი ცოდნის მტკიცებულებები",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "გაიგეთ განსხვავებები Ethereum-სა და Bitcoin-ს შორის"
+
}
\ No newline at end of file
diff --git a/src/intl/kk/common.json b/src/intl/kk/common.json
index 4be952d8880..04af4ca6917 100644
--- a/src/intl/kk/common.json
+++ b/src/intl/kk/common.json
@@ -428,5 +428,8 @@
"withdrawals": "Ставкаларды шығару",
"wrapped-ether": "Wrapped Ether",
"yes": "Иә",
- "zero-knowledge-proofs": "Нөлдік жария етілген дәлелдер"
+ "zero-knowledge-proofs": "Нөлдік жария етілген дәлелдер",
+ "ethereum-vs-bitcoin": "Ethereum мен Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ethereum мен Bitcoin арасындағы айырмашылықтарды түсініңіз"
+
}
\ No newline at end of file
diff --git a/src/intl/km/common.json b/src/intl/km/common.json
index eeef1b80c4e..643201ab4c8 100644
--- a/src/intl/km/common.json
+++ b/src/intl/km/common.json
@@ -430,5 +430,8 @@
"withdrawals": "ការដកប្រាក់តម្កល់",
"wrapped-ether": "Wrapped Ether",
"yes": "បាទ/ចាស",
- "zero-knowledge-proofs": "ពិធីសារផ្ទៀងផ្ទាត់ Zero-knowledge proofs"
+ "zero-knowledge-proofs": "ពិធីសារផ្ទៀងផ្ទាត់ Zero-knowledge proofs",
+ "ethereum-vs-bitcoin": "Ethereum ទល់នឹង Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "ស្វែងយល់ពីភាពខុសគ្នារវាង Ethereum និង Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/kn/common.json b/src/intl/kn/common.json
index dfbdb5a4ed7..17d180d77d5 100644
--- a/src/intl/kn/common.json
+++ b/src/intl/kn/common.json
@@ -442,5 +442,8 @@
"withdrawals": "ಪಣ ಹಿಂತೆಗೆದುಕೊಳ್ಳುವುದು",
"wrapped-ether": "ವ್ರ್ಯಾಪ್ ಮಾಡಲಾದ ಎಥೆರ್",
"yes": "ಹೌದು",
- "zero-knowledge-proofs": "ಶೂನ್ಯ ಜ್ಞಾನ ಪುರಾವೆಗಳು"
+ "zero-knowledge-proofs": "ಶೂನ್ಯ ಜ್ಞಾನ ಪುರಾವೆಗಳು",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ethereum ಮತ್ತು Bitcoin ನಡುವಿನ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ"
+
}
diff --git a/src/intl/ko/common.json b/src/intl/ko/common.json
index 9efa2fcab85..c6b0252c643 100644
--- a/src/intl/ko/common.json
+++ b/src/intl/ko/common.json
@@ -455,5 +455,8 @@
"withdrawals": "스테이킹 인출",
"wrapped-ether": "래핑된 이더",
"yes": "네",
- "zero-knowledge-proofs": "영지식 증명"
+ "zero-knowledge-proofs": "영지식 증명",
+ "ethereum-vs-bitcoin": "이더리움 대 비트코인",
+ "nav-ethereum-vs-bitcoin-description": "이더리움과 비트코인의 차이점 이해하기"
+
}
diff --git a/src/intl/lt/common.json b/src/intl/lt/common.json
index d617f68f21f..31ebe5c2b04 100644
--- a/src/intl/lt/common.json
+++ b/src/intl/lt/common.json
@@ -429,5 +429,8 @@
"withdrawals": "Palaikymo lėšų atsiėmimas",
"wrapped-ether": "Wrapped Ether",
"yes": "Taip",
- "zero-knowledge-proofs": "Įrodymas be žinių"
+ "zero-knowledge-proofs": "Įrodymas be žinių",
+ "ethereum-vs-bitcoin": "Ethereum ir Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Supraskite skirtumus tarp Ethereum ir Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/ml/common.json b/src/intl/ml/common.json
index ea31f89c95a..1b3f83025c6 100644
--- a/src/intl/ml/common.json
+++ b/src/intl/ml/common.json
@@ -431,5 +431,8 @@
"withdrawals": "സ്റ്റെയ്ക്കിങ് പിൻവലിക്കലുകൾ",
"wrapped-ether": "സംഗ്രഹിച്ച ഈഥർ",
"yes": "അതെ",
- "zero-knowledge-proofs": "പൂജ്യം-അറിവ് പ്രൂഫുകൾ"
+ "zero-knowledge-proofs": "പൂജ്യം-അറിവ് പ്രൂഫുകൾ",
+ "ethereum-vs-bitcoin": "എത്തിറിയം വേഴ്സസ് ബിറ്റ്കോയിൻ",
+ "nav-ethereum-vs-bitcoin-description": "എത്തിറിയവും ബിറ്റ്കോയിനും തമ്മിലുള്ള വ്യത്യാസങ്ങൾ മനസ്സിലാക്കുക"
+
}
\ No newline at end of file
diff --git a/src/intl/mr/common.json b/src/intl/mr/common.json
index 1bf0ec95daf..233e3171245 100644
--- a/src/intl/mr/common.json
+++ b/src/intl/mr/common.json
@@ -430,5 +430,8 @@
"withdrawals": "पैसे काढणे स्टिकिंग",
"wrapped-ether": "गुंडाळलेला इथर",
"yes": "होय",
- "zero-knowledge-proofs": "शून्य-ज्ञान पुरावे"
+ "zero-knowledge-proofs": "शून्य-ज्ञान पुरावे",
+ "ethereum-vs-bitcoin": "इथेरियम विरुद्ध बिटकॉइन",
+ "nav-ethereum-vs-bitcoin-description": "इथेरियम आणि बिटकॉइनमधील फरक समजून घ्या"
+
}
\ No newline at end of file
diff --git a/src/intl/ms/common.json b/src/intl/ms/common.json
index 83d7fd273e5..ed88d8d3cae 100644
--- a/src/intl/ms/common.json
+++ b/src/intl/ms/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Pertaruhan keluaran",
"wrapped-ether": "Ether Terlindung",
"yes": "Ya",
- "zero-knowledge-proofs": "Bukti sifar pengetahuan"
+ "zero-knowledge-proofs": "Bukti sifar pengetahuan",
+ "ethereum-vs-bitcoin": "Ethereum lwn. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Fahami perbezaan antara Ethereum dan Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/nb/common.json b/src/intl/nb/common.json
index 25d23f027f9..32a4cf3d132 100644
--- a/src/intl/nb/common.json
+++ b/src/intl/nb/common.json
@@ -430,5 +430,8 @@
"withdrawals": "Staking uttak",
"wrapped-ether": "Innpakket Ether",
"yes": "Ja",
- "zero-knowledge-proofs": "Null-kunnskap bevis"
+ "zero-knowledge-proofs": "Null-kunnskap bevis",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Forstå forskjellene mellom Ethereum og Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/ne-np/common.json b/src/intl/ne-np/common.json
index 087b5b6d491..5e8219e879c 100644
--- a/src/intl/ne-np/common.json
+++ b/src/intl/ne-np/common.json
@@ -427,5 +427,8 @@
"withdrawals": "स्टेकिंग निकासी",
"wrapped-ether": "बेरिएको Ether",
"yes": "हो",
- "zero-knowledge-proofs": "शून्य-ज्ञान प्रमाणहरू"
+ "zero-knowledge-proofs": "शून्य-ज्ञान प्रमाणहरू",
+ "ethereum-vs-bitcoin": "इथेरियम बनाम बिटकोइन",
+ "nav-ethereum-vs-bitcoin-description": "इथेरियम र बिटकोइन बीचको भिन्नताहरू बुझ्नुहोस्"
+
}
\ No newline at end of file
diff --git a/src/intl/nl/common.json b/src/intl/nl/common.json
index a72b24e9a32..d763772bf1a 100644
--- a/src/intl/nl/common.json
+++ b/src/intl/nl/common.json
@@ -441,5 +441,8 @@
"withdrawals": "Opnames staken",
"wrapped-ether": "Wrapped Ether",
"yes": "Ja",
- "zero-knowledge-proofs": "Zero-knowledge proofs"
+ "zero-knowledge-proofs": "Zero-knowledge proofs",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "De verschillen tussen Ethereum en Bitcoin begrijpen"
+
}
diff --git a/src/intl/pcm/common.json b/src/intl/pcm/common.json
index bd94dd0dd22..0507ffeb2ed 100644
--- a/src/intl/pcm/common.json
+++ b/src/intl/pcm/common.json
@@ -314,7 +314,7 @@
"nav-stake-description": "Mak yu earn riwods for yu to sikure Ethereum",
"nav-stake-label": "Stake",
"nav-staking-home-description": "One ovaview of difrent opshon for stakin",
- "nav-staking-home-label": "Staking home",
+ "nav-staking-home-label": "Staking homepage",
"nav-staking-pool-description": "Stake andi earn riwods wit any amount of ETH by to join wit odas",
"nav-staking-pool-label": "Pooled stakin",
"nav-staking-saas-description": "Third-party node operators dey run di operashon for yor validator klient",
@@ -431,5 +431,8 @@
"withdrawals": "To dey stake witdrawals",
"wrapped-ether": "Ether wey dem wrap",
"yes": "Na so",
- "zero-knowledge-proofs": "Zero-knowledge prufs"
+ "zero-knowledge-proofs": "Zero-knowledge prufs",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Understand di difrens between Ethereum and Bitcoin"
+
}
diff --git a/src/intl/pcm/page-staking.json b/src/intl/pcm/page-staking.json
index 59f62cac049..431193e21e7 100644
--- a/src/intl/pcm/page-staking.json
+++ b/src/intl/pcm/page-staking.json
@@ -29,7 +29,7 @@
"page-staking-hero-title": "Hau to stake yor ETH",
"page-staking-hero-header": "Earn riwods as dem dey sikure Ethereum",
"page-staking-hero-subtitle": "Any user wit any amount of ETH fit helep sikure di netwok and earn riwods in di process.",
- "page-staking-dropdown-home": "Staking home",
+ "page-staking-dropdown-home": "Staking homepage",
"page-staking-dropdown-solo": "Home Staking",
"page-staking-more-on-solo": "More on home staking",
"page-staking-learn-more-solo": "Make yu learn more about solo staking",
diff --git a/src/intl/pl/common.json b/src/intl/pl/common.json
index 8f7cdffa302..31d83a4e720 100644
--- a/src/intl/pl/common.json
+++ b/src/intl/pl/common.json
@@ -449,5 +449,8 @@
"withdrawals": "Wypłaty ze stakingu",
"wrapped-ether": "Wrapped Ether",
"yes": "Tak",
- "zero-knowledge-proofs": "Dowody wiedzy zerowej"
+ "zero-knowledge-proofs": "Dowody wiedzy zerowej",
+ "ethereum-vs-bitcoin": "Ethereum a Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Zrozum różnice pomiędzy Ethereum i Bitcoinem"
+
}
diff --git a/src/intl/pt-br/common.json b/src/intl/pt-br/common.json
index 5683d4528ab..3714cd78a07 100644
--- a/src/intl/pt-br/common.json
+++ b/src/intl/pt-br/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Saque de staking",
"wrapped-ether": "Wrapped Ether",
"yes": "Sim",
- "zero-knowledge-proofs": "Prova de conhecimento zero"
+ "zero-knowledge-proofs": "Prova de conhecimento zero",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Entenda as diferenças entre Ethereum e Bitcoin"
+
}
diff --git a/src/intl/pt/common.json b/src/intl/pt/common.json
index d448e36f86d..df4107d4720 100644
--- a/src/intl/pt/common.json
+++ b/src/intl/pt/common.json
@@ -443,5 +443,8 @@
"withdrawals": "Levantamentos de staking",
"wrapped-ether": "Wrapped Ether",
"yes": "Sim",
- "zero-knowledge-proofs": "Provas de conhecimento-zero"
+ "zero-knowledge-proofs": "Provas de conhecimento-zero",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Compreenda as diferenças entre o Ethereum e a Bitcoin"
+
}
diff --git a/src/intl/ro/common.json b/src/intl/ro/common.json
index b72ee432275..f5cab3a7fab 100644
--- a/src/intl/ro/common.json
+++ b/src/intl/ro/common.json
@@ -443,5 +443,8 @@
"withdrawals": "Retrageri la mizare",
"wrapped-ether": "Ether „Wrapped”",
"yes": "Da",
- "zero-knowledge-proofs": "Dovezi zero-knowledge"
+ "zero-knowledge-proofs": "Dovezi zero-knowledge",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Înțelegeți diferențele dintre Ethereum și Bitcoin"
+
}
diff --git a/src/intl/ru/common.json b/src/intl/ru/common.json
index a4c52298c64..7e51421ee24 100644
--- a/src/intl/ru/common.json
+++ b/src/intl/ru/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Вывод средств, использованных в стейкинге",
"wrapped-ether": "Wrapped Ether",
"yes": "Да",
- "zero-knowledge-proofs": "Доказательства с нулевым разглашением"
+ "zero-knowledge-proofs": "Доказательства с нулевым разглашением",
+ "ethereum-vs-bitcoin": "Эфириум против Биткоина",
+ "nav-ethereum-vs-bitcoin-description": "Понять различия между Эфириумом и Биткоином"
+
}
diff --git a/src/intl/se/common.json b/src/intl/se/common.json
index d28234faa53..c30e0773035 100644
--- a/src/intl/se/common.json
+++ b/src/intl/se/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Utsättningsuttag",
"wrapped-ether": "Wrapped Ether",
"yes": "Ja",
- "zero-knowledge-proofs": "Nollkunskapsbevis"
+ "zero-knowledge-proofs": "Nollkunskapsbevis",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Förstå skillnaderna mellan Ethereum och Bitcoin"
+
}
\ No newline at end of file
diff --git a/src/intl/sk/common.json b/src/intl/sk/common.json
index 25ff9a82ce1..db2ee7ffcac 100644
--- a/src/intl/sk/common.json
+++ b/src/intl/sk/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Výber stakingu",
"wrapped-ether": "Wrapped Ether",
"yes": "Áno",
- "zero-knowledge-proofs": "Dôkaz nulovou znalosťou"
+ "zero-knowledge-proofs": "Dôkaz nulovou znalosťou",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Pochopte rozdiely medzi Ethereom a Bitcoinom"
+
}
\ No newline at end of file
diff --git a/src/intl/sl/common.json b/src/intl/sl/common.json
index 7a43c29990c..d9ebeb2c79e 100644
--- a/src/intl/sl/common.json
+++ b/src/intl/sl/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Zastavljanje dvigov",
"wrapped-ether": "Ovit eter",
"yes": "Da",
- "zero-knowledge-proofs": "Dokazi brez znanja"
+ "zero-knowledge-proofs": "Dokazi brez znanja",
+ "ethereum-vs-bitcoin": "Ethereum proti Bitcoinu",
+ "nav-ethereum-vs-bitcoin-description": "Razumevanje razlik med Ethereumom in Bitcoinom"
+
}
\ No newline at end of file
diff --git a/src/intl/sn/common.json b/src/intl/sn/common.json
index b02373cfda9..be9af727b05 100644
--- a/src/intl/sn/common.json
+++ b/src/intl/sn/common.json
@@ -440,5 +440,8 @@
"withdrawals": "Kubudisa staking",
"wrapped-ether": "Wrapped Ether",
"yes": "Ehe",
- "zero-knowledge-proofs": "Humbowo usingaburitse ruzivo"
+ "zero-knowledge-proofs": "Humbowo usingaburitse ruzivo",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Nzwisisa kusiyana kuripo pakati peEthereum neBitcoin"
+
}
diff --git a/src/intl/sr/common.json b/src/intl/sr/common.json
index ef1ef600c4d..7dfde70bb9a 100644
--- a/src/intl/sr/common.json
+++ b/src/intl/sr/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Povlačenje uloga",
"wrapped-ether": "Umotan Ether",
"yes": "Da",
- "zero-knowledge-proofs": "Dokazi s nultim znanjem"
+ "zero-knowledge-proofs": "Dokazi s nultim znanjem",
+ "ethereum-vs-bitcoin": "Ethereum protiv Bitcoina",
+ "nav-ethereum-vs-bitcoin-description": "Razumevanje razlika između Ethereuma i Bitcoina"
+
}
\ No newline at end of file
diff --git a/src/intl/sw/common.json b/src/intl/sw/common.json
index 82e1540715c..648beddfd60 100644
--- a/src/intl/sw/common.json
+++ b/src/intl/sw/common.json
@@ -442,5 +442,8 @@
"withdrawals": "Uondoji wa hisa",
"wrapped-ether": "Ether iliyofungamanishwa",
"yes": "Ndiyo",
- "zero-knowledge-proofs": "Ushahidi usio na utambuzi"
+ "zero-knowledge-proofs": "Ushahidi usio na utambuzi",
+ "ethereum-vs-bitcoin": "Ethereum dhidi ya Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Elewa tofauti kati ya Ethereum na Bitcoin"
+
}
diff --git a/src/intl/ta/common.json b/src/intl/ta/common.json
index c957459ee28..9d6c0ddaced 100644
--- a/src/intl/ta/common.json
+++ b/src/intl/ta/common.json
@@ -430,5 +430,8 @@
"withdrawals": "ஸ்டேக்கிங் பின்வாங்கல்",
"wrapped-ether": "மூடப்பட்ட ஈதர்",
"yes": "ஆம்",
- "zero-knowledge-proofs": "ஜீரோ-நிரூபன சான்றுகள்"
+ "zero-knowledge-proofs": "ஜீரோ-நிரூபன சான்றுகள்",
+ "ethereum-vs-bitcoin": "எத்தேரியம் மற்றும் பிட்காயின்",
+ "nav-ethereum-vs-bitcoin-description": "எத்தேரியம் மற்றும் பிட்காயின் இடையிலான வேறுபாடுகளைப் புரிந்து கொள்ளுங்கள்"
+
}
\ No newline at end of file
diff --git a/src/intl/te/common.json b/src/intl/te/common.json
index 9e10b1c25a5..fd8e16ead84 100644
--- a/src/intl/te/common.json
+++ b/src/intl/te/common.json
@@ -443,5 +443,8 @@
"withdrawals": "స్టేకింగ్ విత్డ్రాల్స్",
"wrapped-ether": "చుట్టబడిన ఈథర్",
"yes": "అవును",
- "zero-knowledge-proofs": "జీరో-నాలెడ్జ్ రుజువులు"
+ "zero-knowledge-proofs": "జీరో-నాలెడ్జ్ రుజువులు",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ethereum మరియు Bitcoin మధ్య వ్యత్యాసాలను అర్థం చేసుకోండి"
+
}
diff --git a/src/intl/th/common.json b/src/intl/th/common.json
index 20475c006b5..26e74294e3a 100644
--- a/src/intl/th/common.json
+++ b/src/intl/th/common.json
@@ -443,5 +443,8 @@
"withdrawals": "การถอน Staking",
"wrapped-ether": "อีเธอร์ห่อหุ้ม",
"yes": "ใช่",
- "zero-knowledge-proofs": "การพิสูจน์ความจริงโดยไม่เปิดเผยข้อมูล"
+ "zero-knowledge-proofs": "การพิสูจน์ความจริงโดยไม่เปิดเผยข้อมูล",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "ทำความเข้าใจความแตกต่างระหว่าง Ethereum และ Bitcoin"
+
}
diff --git a/src/intl/tk/common.json b/src/intl/tk/common.json
index bf73f6b5cf9..63f9103187b 100644
--- a/src/intl/tk/common.json
+++ b/src/intl/tk/common.json
@@ -428,5 +428,8 @@
"withdrawals": "Steýking pul çekimleri",
"wrapped-ether": "Örtülen Ether",
"yes": "Hawa",
- "zero-knowledge-proofs": "Maglumat bermezden subutnamalar"
+ "zero-knowledge-proofs": "Maglumat bermezden subutnamalar",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ethereum bilen Bitcoin arasyndaky tapawutlara düşün"
+
}
\ No newline at end of file
diff --git a/src/intl/tl/common.json b/src/intl/tl/common.json
index 72f7d5a665b..8732388634e 100644
--- a/src/intl/tl/common.json
+++ b/src/intl/tl/common.json
@@ -429,5 +429,8 @@
"withdrawals": "Mga pagbawi ng pag-stake",
"wrapped-ether": "Nakabalot na Ether",
"yes": "Oo",
- "zero-knowledge-proofs": "Mga zero-knowledge proof"
+ "zero-knowledge-proofs": "Mga zero-knowledge proof",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Unawain ang mga pagkakaiba sa pagitan ng Ethereum at Bitcoin"
+
}
diff --git a/src/intl/tr/common.json b/src/intl/tr/common.json
index 84b10692d6a..ecdfb7c29f2 100644
--- a/src/intl/tr/common.json
+++ b/src/intl/tr/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Stake çekimleri",
"wrapped-ether": "Sarılı Ether",
"yes": "Evet",
- "zero-knowledge-proofs": "Sıfır bilgili ispatlar"
+ "zero-knowledge-proofs": "Sıfır bilgili ispatlar",
+ "ethereum-vs-bitcoin": "Ethereum ve Bitcoin Karşılaştırması",
+ "nav-ethereum-vs-bitcoin-description": "Ethereum ve Bitcoin arasındaki farkları anlayın"
+
}
diff --git a/src/intl/tw/common.json b/src/intl/tw/common.json
index e3981a37a68..5e5ae1a1a38 100644
--- a/src/intl/tw/common.json
+++ b/src/intl/tw/common.json
@@ -429,5 +429,8 @@
"withdrawals": "Yi w'awowa",
"wrapped-ether": "Ether yɛ abobɔw",
"yes": "Ampa",
- "zero-knowledge-proofs": "Nimdeɛ-kaperɛ ho adanse di"
+ "zero-knowledge-proofs": "Nimdeɛ-kaperɛ ho adanse di",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Hu nsonsonoeɛ a ɛwɔ Ethereum ne Bitcoin ntam"
+
}
diff --git a/src/intl/uk/common.json b/src/intl/uk/common.json
index 55007b264b5..cc08be8a55c 100644
--- a/src/intl/uk/common.json
+++ b/src/intl/uk/common.json
@@ -441,5 +441,8 @@
"withdrawals": "Виведення ставок",
"wrapped-ether": "Wrapped Ether",
"yes": "Так",
- "zero-knowledge-proofs": "Доведення з нульовим розголошенням"
+ "zero-knowledge-proofs": "Доведення з нульовим розголошенням",
+ "ethereum-vs-bitcoin": "Ethereum vs. Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Зрозумійте відмінності між Ethereum та Bitcoin"
+
}
diff --git a/src/intl/ur/common.json b/src/intl/ur/common.json
index 0f212b7669f..ffdd1fe1046 100644
--- a/src/intl/ur/common.json
+++ b/src/intl/ur/common.json
@@ -428,5 +428,8 @@
"withdrawals": "اسٹیکنگ نکلوانا",
"wrapped-ether": "لپٹا ہوا ایتھر",
"yes": "جی ہاں",
- "zero-knowledge-proofs": "بغیر معلومات کے ثبوت"
+ "zero-knowledge-proofs": "بغیر معلومات کے ثبوت",
+ "ethereum-vs-bitcoin": "ایتھریم بمقابلہ بٹ کوائن",
+ "nav-ethereum-vs-bitcoin-description": "ایتھریم اور بٹ کوائن کے درمیان فرق کو سمجھیں"
+
}
\ No newline at end of file
diff --git a/src/intl/uz/common.json b/src/intl/uz/common.json
index 958c862a1d0..7ce3659806e 100644
--- a/src/intl/uz/common.json
+++ b/src/intl/uz/common.json
@@ -431,5 +431,8 @@
"withdrawals": "Staking yechib olish",
"wrapped-ether": "Oʻralgan Ether",
"yes": "Ha",
- "zero-knowledge-proofs": "Nol bilim bilan isbotlashlar"
+ "zero-knowledge-proofs": "Nol bilim bilan isbotlashlar",
+ "ethereum-vs-bitcoin": "Ethereum va Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Ethereum va Bitcoin o'rtasidagi farqlarni tushunish"
+
}
\ No newline at end of file
diff --git a/src/intl/vi/common.json b/src/intl/vi/common.json
index ac8f410ff18..366afcc6de8 100644
--- a/src/intl/vi/common.json
+++ b/src/intl/vi/common.json
@@ -444,5 +444,8 @@
"withdrawals": "Rút tài sản đặt cược",
"wrapped-ether": "Wrapped Ether",
"yes": "Có",
- "zero-knowledge-proofs": "Bằng chứng không tiết lộ thông tin"
+ "zero-knowledge-proofs": "Bằng chứng không tiết lộ thông tin",
+ "ethereum-vs-bitcoin": "Ethereum và Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Hiểu sự khác biệt giữa Ethereum và Bitcoin"
+
}
diff --git a/src/intl/yo/common.json b/src/intl/yo/common.json
index 61a98a95486..75bc2555290 100644
--- a/src/intl/yo/common.json
+++ b/src/intl/yo/common.json
@@ -430,5 +430,8 @@
"withdrawals": "Àwọn àgbàjáde owó ìdókòwò",
"wrapped-ether": "Ẹ̀dà Ether",
"yes": "Bẹ́ẹ̀ni",
- "zero-knowledge-proofs": "Àwọn ẹ̀rí tí kò ní ìmọ̀ kankan"
+ "zero-knowledge-proofs": "Àwọn ẹ̀rí tí kò ní ìmọ̀ kankan",
+ "ethereum-vs-bitcoin": "Ethereum vs Bitcoin",
+ "nav-ethereum-vs-bitcoin-description": "Loye awọn iyatọ laarin Ethereum ati Bitcoin"
+
}
diff --git a/src/intl/zh-tw/common.json b/src/intl/zh-tw/common.json
index 045bf130503..a24a76178c2 100644
--- a/src/intl/zh-tw/common.json
+++ b/src/intl/zh-tw/common.json
@@ -457,5 +457,8 @@
"withdrawals": "質押提款",
"wrapped-ether": "包裝以太幣",
"yes": "是",
- "zero-knowledge-proofs": "零知識證明"
+ "zero-knowledge-proofs": "零知識證明",
+ "ethereum-vs-bitcoin": "以太坊 vs. 比特幣",
+ "nav-ethereum-vs-bitcoin-description": "了解以太坊和比特幣之間的區別"
+
}
diff --git a/src/intl/zh/common.json b/src/intl/zh/common.json
index aef543b78e0..4d2d1ee278d 100644
--- a/src/intl/zh/common.json
+++ b/src/intl/zh/common.json
@@ -457,5 +457,8 @@
"withdrawals": "质押提款",
"wrapped-ether": "包装以太币",
"yes": "是",
- "zero-knowledge-proofs": "零知识证明"
+ "zero-knowledge-proofs": "零知识证明",
+ "ethereum-vs-bitcoin": "以太坊 vs. 比特币",
+ "nav-ethereum-vs-bitcoin-description": "了解以太坊和比特币之间的区别"
+
}
diff --git a/src/lib/api/fetch10YearEvents.ts b/src/lib/api/fetch10YearEvents.ts
deleted file mode 100644
index 452f9ad38e9..00000000000
--- a/src/lib/api/fetch10YearEvents.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-interface TenYearEvent {
- host: string
- eventLink: string
- pingedForURL: string
- eventLocation: string
- address: string
- city: string
- country: string
- region: string
- continent: string
- lat: string
- lng: string
- readyToShow: string
- countryFlag: string
-}
-
-export async function fetch10YearEvents(): Promise<
- Record
-> {
- const googleApiKey = process.env.GOOGLE_API_KEY
- const sheetId = process.env.GOOGLE_SHEET_ID_10_YEAR
-
- if (!googleApiKey) {
- console.warn("Google API key not set")
- return {}
- }
-
- try {
- const url = `https://sheets.googleapis.com/v4/spreadsheets/${sheetId}/values/Sheet1!A:N?majorDimension=ROWS&key=${googleApiKey}`
-
- const response = await fetch(url)
-
- if (!response.ok) {
- const errorText = await response.text()
- console.error("Google Sheets API Error:", {
- status: response.status,
- statusText: response.statusText,
- error: errorText,
- })
- throw new Error(
- `Google Sheets API responded with ${response.status}: ${response.statusText}`
- )
- }
-
- const data = await response.json()
-
- const rows = data.values.slice(1).filter((row) => row[12] === "TRUE") || []
-
- const regions =
- Object.fromEntries(
- rows
- ?.map((row: string[]) => row[9] || "")
- .filter(Boolean)
- .sort()
- .map((region) => [
- region.toLowerCase(),
- { label: region, events: [] },
- ])
- ) || {}
-
- // Sort events into their respective regions
- rows.forEach((row: string[]) => {
- const region = (row[9] || "").toLowerCase()
- if (region && regions[region]) {
- regions[region].events.push({
- host: row[0] || "",
- eventLink: row[1] || "",
- pingedForURL: row[2] || "",
- eventLocation: row[4] || undefined,
- address: row[5] || undefined,
- city: row[6] || undefined,
- country: row[7] || undefined,
- region: row[8] || undefined,
- continent: row[9] || undefined,
- lat: row[10] || undefined,
- lng: row[11] || undefined,
- readyToShow: row[12] || undefined,
- countryFlag: row[13] || "",
- })
- }
- })
-
- return regions
- } catch (error) {
- console.error("Error fetching from Google Sheets:", error)
- return {}
- }
-}
diff --git a/src/lib/api/fetch10YearStories.ts b/src/lib/api/fetch10YearStories.ts
deleted file mode 100644
index 7143248b92d..00000000000
--- a/src/lib/api/fetch10YearStories.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-export async function fetch10YearStories() {
- const googleApiKey = process.env.GOOGLE_API_KEY
- const sheetId = process.env.GOOGLE_SHEET_ID_10_YEAR
-
- if (!googleApiKey) {
- console.warn("Google API key not set")
- return {}
- }
-
- try {
- const url = `https://sheets.googleapis.com/v4/spreadsheets/${sheetId}/values/Sheet2!A:H?majorDimension=ROWS&key=${googleApiKey}`
-
- const response = await fetch(url)
-
- if (!response.ok) {
- const errorText = await response.text()
- console.error("Google Sheets API Error:", {
- status: response.status,
- statusText: response.statusText,
- error: errorText,
- })
- throw new Error(
- `Google Sheets API responded with ${response.status}: ${response.statusText}`
- )
- }
-
- const data = await response.json()
-
- const rows = data.values.slice(1) || []
-
- const stories = rows.map((row) => {
- return {
- storyEnglish: row[0],
- storyOriginal: row[1],
- category: row[2],
- name: row[3],
- date: row[4],
- country: row[5],
- twitter: row[6],
- region: row[7],
- }
- })
-
- return stories
- } catch (error) {
- console.error("Error fetching 10 year stories:", error)
- return {}
- }
-}
diff --git a/src/lib/api/fetchApps.ts b/src/lib/api/fetchApps.ts
index 3c11ce57c72..00ced672edf 100644
--- a/src/lib/api/fetchApps.ts
+++ b/src/lib/api/fetchApps.ts
@@ -101,6 +101,7 @@ export async function fetchApps(): Promise> {
dateOfLaunch: row[22] || "",
lastUpdated: row[23] || "",
ready: row[24]?.toLowerCase(),
+ devconnect: row[25]?.toLowerCase(),
}
return appData as unknown as AppData
diff --git a/src/lib/api/fetchGrowThePieBlockspace.ts b/src/lib/api/fetchGrowThePieBlockspace.ts
index a6d9c04145a..4b72ed1aa9b 100644
--- a/src/lib/api/fetchGrowThePieBlockspace.ts
+++ b/src/lib/api/fetchGrowThePieBlockspace.ts
@@ -14,7 +14,7 @@ export const fetchGrowThePieBlockspace = async () => {
blockspaceData[network.growthepieID] = {
nft: data.overview["30d"].nft.data[4],
defi: data.overview["30d"].defi.data[4],
- social: data.overview["30d"].social.data[4],
+ social: data.overview["30d"].social.data?.[4] || 0,
token_transfers: data.overview["30d"].token_transfers.data[4],
unlabeled: data.overview["30d"].unlabeled.data[4],
}
diff --git a/src/lib/types.ts b/src/lib/types.ts
index 778aa09ff2e..fda40b5f071 100644
--- a/src/lib/types.ts
+++ b/src/lib/types.ts
@@ -1113,6 +1113,7 @@ export type App = {
dateOfLaunch: string
lastUpdated: string
ready: string
+ devconnect: string
}
export type DefiApp = App & {
@@ -1206,7 +1207,7 @@ export type ValuesPairing = {
export type StablecoinType = "FIAT" | "CRYPTO" | "ASSET" | "ALGORITHMIC"
export type PageParams = {
- locale: string
+ locale: Lang
}
export type SlugPageParams = PageParams & {
diff --git a/src/lib/utils/apps.ts b/src/lib/utils/apps.ts
index 5e53e0ca396..da5b2979c03 100644
--- a/src/lib/utils/apps.ts
+++ b/src/lib/utils/apps.ts
@@ -32,6 +32,13 @@ export const getDiscoverApps = (
return count ? discoverApps.slice(0, count) : discoverApps
}
+export const getDevconnectApps = (appsData: Record) => {
+ const devconnectApps = Object.values(appsData)
+ .flatMap((categoryDapps) => categoryDapps)
+ .filter((app) => app.devconnect === "true")
+ return devconnectApps
+}
+
export const APP_TAG_VARIANTS: Record = {
[AppCategoryEnum.DEFI]: "tag",
[AppCategoryEnum.COLLECTIBLE]: "success",
diff --git a/src/lib/utils/relativePath.ts b/src/lib/utils/relativePath.ts
index 6a0da471475..9cd1aa17a7f 100644
--- a/src/lib/utils/relativePath.ts
+++ b/src/lib/utils/relativePath.ts
@@ -1,7 +1,9 @@
import { join } from "path"
-export const getRelativePath = (routerPath: string, fileName: string) =>
- join("content", routerPath, fileName)
+export const getRelativePath = (
+ routerPath: string | undefined,
+ fileName: string
+) => join("content", routerPath || "", fileName)
/**
* Replaces back slashes of file paths generated in Windows OS with Node to forward slashes.
diff --git a/src/scripts/get-netlify-branch-deploy.ts b/src/scripts/get-netlify-branch-deploy.ts
new file mode 100644
index 00000000000..8533e2c4bd6
--- /dev/null
+++ b/src/scripts/get-netlify-branch-deploy.ts
@@ -0,0 +1,50 @@
+// Fetches the latest published Netlify deploy for the current branch and outputs its URL for GitHub Actions
+import fs from "fs"
+
+const siteId = process.env.NETLIFY_SITE_ID
+const branch = process.env.GITHUB_REF_NAME
+const token = process.env.NETLIFY_TOKEN
+
+if (!siteId || !branch || !token) {
+ console.error("Missing NETLIFY_SITE_ID, GITHUB_REF_NAME, or NETLIFY_TOKEN")
+ process.exit(1)
+}
+
+type NetlifyDeploy = {
+ state: string
+ branch: string
+ published: boolean
+ deploy_ssl_url?: string
+ deploy_url?: string
+}
+;(async () => {
+ const url = `https://api.netlify.com/api/v1/sites/${siteId}/deploys?branch=${branch}`
+ const res = await fetch(url, {
+ headers: { Authorization: `Bearer ${token}` },
+ })
+ if (!res.ok) {
+ console.error(
+ "Failed to fetch Netlify deploys:",
+ res.status,
+ await res.text()
+ )
+ process.exit(1)
+ }
+ const deploys: NetlifyDeploy[] = await res.json()
+ // Find the latest published deploy for this branch
+ const latest = deploys.find(
+ (d) => d.state === "ready" && d.branch === branch && d.published
+ )
+ if (!latest) {
+ console.error("No published deploy found for branch:", branch)
+ process.exit(1)
+ }
+ // Use GitHub Actions recommended output syntax (GITHUB_OUTPUT)
+ const output = `url=${latest.deploy_ssl_url || latest.deploy_url}`
+ if (process.env.GITHUB_OUTPUT) {
+ fs.appendFileSync(process.env.GITHUB_OUTPUT, output + "\n")
+ } else {
+ // Fallback for local/dev
+ console.log(output)
+ }
+})()