{
"badges": [],
"badges": [
{
"id": "CustomDA",
"type": "DA",
"name": "Custom DA solution",
"description": "This project is using a custom DA solution",
"action": {
"type": "selfDaHighlight"
}
},
{
"id": "Agglayer",
"type": "Infra",
"name": "Part of the Agglayer",
"description": "The project is part of the Agglayer, meaning that it uses the shared Agglayer contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Agglayer"
}
}
],
"description": "An onchain order book DEX for spot and perpetuals, built on CDK OP Stack and natively integrated with Agglayer for unified liquidity.",
"links": {
"websites": [
"https://forknet.io/"
],
"bridges": [
"https://bridge.forknet.io/"
],
"explorers": [
"https://forkscan.org"
],
"socialMedia": [
"https://x.com/forknet_io"
]
}
}
scalingInfo+1-0
{
"capability": "universal",
"daLayer": [
"Ethereum"
],
"hostChain": {
"id": "ethereum",
"slug": "ethereum",
"name": "Ethereum"
},
"infrastructure": "Agglayer",
"layer": "layer2",
"purposes": [
"Universal"
],
"reasonsForBeingOther": [
{
"label": "No proofs",
"shortDescription": "The proof system isn't fully functional",
"description": "Projects without a proper proof system fully rely on single entities to safely update the state. A malicious proposer can finalize an invalid state, which can cause loss of funds."
}
],
"stacks": [
"Agglayer CDK"
],
"stage": "Not applicable",
"type": "Other",
"vm": []
}
{
"badges": [],
"description": "Haust Network is a zkEVM Layer 2 blockchain built on the Polygon CDK, integrating with the Agglayer and Account Abstraction from the outset.",
"badges": [
{
"id": "CustomDA",
"type": "DA",
"name": "Custom DA solution",
"description": "This project is using a custom DA solution",
"action": {
"type": "selfDaHighlight"
}
},
{
"id": "Agglayer",
"type": "Infra",
"name": "Part of the Agglayer",
"description": "The project is part of the Agglayer, meaning that it uses the shared Agglayer contracts",
"action": {
"type": "scalingFilter",
"id": "infrastructure",
"value": "Agglayer"
}
}
],
"description": "Haust Network is a Layer 2 blockchain built on the Polygon CDK, integrating with the Agglayer and Account Abstraction from the outset.",
"links": {
"websites": [
"https://haust.network/"
],
"documentation": [
"https://docs.haust.network/"
],
"explorers": [
"https://haustscan.com/"
],
"repositories": [
"https://github.com/Haust-Labs"
],
"bridges": [
"https://haustbridge.com"
],
"socialMedia": [
"https://twitter.com/HaustNetwork",
"https://x.com/HaustNetwork",
"https://t.me/haustnetwork",
"https://discord.gg/QWGxjTXD8N",
"https://medium.com/@haustnetwork"
]
}
}
milestones+9-1
null
[
{
"title": "Haust Public Launch",
"url": "https://x.com/HaustNetwork/status/1982805150260666681",
"date": "2024-09-27",
"description": "Haust is live on mainnet, integrated with Agglayer.",
"type": "general"
}
]
{
"capability": "universal",
"daLayer": [
"None"
],
"hostChain": {
"id": "ethereum",
"slug": "ethereum",
"name": "Ethereum"
},
"infrastructure": "Agglayer",
"layer": "layer2",
"proofSystem": {
"type": "Validity"
},
"purposes": [
"Exchange"
],
"reasonsForBeingOther": [
{
"label": "No DA bridge",
"shortDescription": "There is no data availability bridge",
"description": "Projects without a data availability bridge fully rely on single entities (the sequencer) to honestly rely available data roots on Ethereum. A malicious sequencer can collude with the proposer to finalize an unavailable state, which can cause loss of funds."
},
{
"label": "No proofs",
"shortDescription": "The proof system isn't fully functional",
"description": "Projects without a proper proof system fully rely on single entities to safely update the state. A malicious proposer can finalize an invalid state, which can cause loss of funds."
}
],
"stacks": [
"Agglayer CDK"
],
"stage": "Under review",
"stage": "Not applicable",
"type": "Other",
"vm": []
}
{
"self": {
"stateValidation": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "None",
"description": "Currently the system permits invalid state roots. 'Pessimistic' proofs only validate the bridge accounting.",
"sentiment": "bad",
"orderHint": null
},
"dataAvailability": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "External",
"description": "Proof construction and state derivation rely fully on data that is NOT published onchain.",
"sentiment": "bad"
},
"exitWindow": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "None",
"description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable.",
"sentiment": "bad",
"orderHint": 0
},
"sequencerFailure": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "No mechanism",
"description": "There is no mechanism to have transactions be included if the sequencer is down or censoring.",
"sentiment": "bad"
},
"proposerFailure": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "Cannot withdraw",
"description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.",
"sentiment": "bad",
"orderHint": null
}
}
}
scalingDa+18-1
null
[
{
"layer": {
"value": "None",
"sentiment": "bad",
"description": "The data is not posted to any data availability layer."
},
"bridge": {
"value": "None",
"sentiment": "bad",
"description": "There is no bridge that can attest if the data has been made available.",
"orderHint": -2
},
"mode": {
"value": "None"
}
}
]
scalingTechnology+27-1
{
"isUnderReview": true
"otherConsiderations": [
{
"name": "Shared bridge and Pessimistic Proofs",
"description": "Polygon Agglayer uses a shared bridge escrow for Rollups, Validiums and external chains that opt in to participate in interoperability. Each participating chain needs to provide zk proofs to access any assets in the shared bridge. In addition to the full execution proofs that are used for the state validation of Rollups and Validiums, accounting proofs over the bridges state (Polygon calls them 'Pessimistic Proofs') are used by external chains ('cdk-sovereign' and aggchains). Using the SP1 zkVM by Succinct, projects without a full proof system on Ethereum or custom proof systems are able to share the bridge with the zkEVM Agglayer projects.",
"risks": [
{
"category": "Funds can be lost if",
"text": "the accounting proof system for the bridge (pessimistic proofs, SP1) is implemented incorrectly."
},
{
"category": "Funds can be stolen if",
"text": "the operator manipulates the L2 state, which is not validated on Ethereum.",
"isCritical": true
}
],
"references": [
{
"title": "Pessimistic Proof - Polygon Knowledge Layer",
"url": "https://docs.polygon.technology/learn/agglayer/pessimistic_proof"
},
{
"title": "Etherscan: AgglayerManager.sol - verifyPessimisticTrustedAggregator() function",
"url": "https://etherscan.io/address/0x15cAF18dEd768e3620E0f656221Bf6B400ad2618#code#F1#L1300"
}
]
}
]
}
{
"creator": "Succinct",
"projectsForTvs": [
{
"projectId": "forknet",
"sinceTimestamp": 1753882500
},
{
"projectId": "katana",
"sinceTimestamp": 1751328000
},
{
"projectId": "blobstream",
"sinceTimestamp": 1717608107
},
{
"projectId": "vector",
"sinceTimestamp": 1720128227
},
{
"projectId": "sophon",
"sinceTimestamp": 1745341091
},
{
"projectId": "lens",
"sinceTimestamp": 1745359200
},
{
"projectId": "plumenetwork",
"sinceTimestamp": 1746735060
},
{
"projectId": "galxegravity",
"sinceTimestamp": 1745880540
},
{
"projectId": "rari",
"sinceTimestamp": 1734562800
},
{
"projectId": "winr",
"sinceTimestamp": 1747088280
},
{
"projectId": "molten",
"sinceTimestamp": 1731480840
},
{
"projectId": "taiko",
"sinceTimestamp": 1730452800
},
{
"projectId": "lumia",
"sinceTimestamp": 1753882500
},
{
"projectId": "polygonzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "xlayer",
"sinceTimestamp": 1753882500
},
{
"projectId": "silicon",
"sinceTimestamp": 1753882500
},
{
"projectId": "facet",
"sinceTimestamp": 1751407200
},
{
"projectId": "ternoa",
"sinceTimestamp": 1753882500
},
{
"projectId": "wirex",
"sinceTimestamp": 1753882500
},
{
"projectId": "penchain",
"sinceTimestamp": 1753882500
},
{
"projectId": "phala",
"sinceTimestamp": 1736290800
},
{
"projectId": "mantle",
"sinceTimestamp": 1757973600
},
{
"projectId": "zircuit",
"sinceTimestamp": 1756072800
},
{
"projectId": "omni",
"sinceTimestamp": 1748856160
},
{
"projectId": "gpt",
"sinceTimestamp": 1753882500
},
{
"projectId": "astarzkevm",
"sinceTimestamp": 1753882500
},
{
"projectId": "witness",
"sinceTimestamp": 1753882500
},
{
"projectId": "kroma",
"sinceTimestamp": 1739228400
},
{
"projectId": "haust",
"sinceTimestamp": 1756808195
}
],
"proofSystemInfo": "\n ## Description\n\n SP1 is a RISC-V zkVM using the [Plonky3](https://github.com/Plonky3/Plonky3) stack. The zkVM execution is proven recursively and is wrapped into a SNARK for final verification. It provides tools to generate onchain Groth16 or Plonk verifiers. SP1 targets [100 bits of security](https://docs.succinct.xyz/docs/sp1/security/security-model#conjectures-for-fris-security).\n\n ## Proof system\n\n SP1 proves execution of a RISC-V VM using several ZK circuits connected by lookup arguments, as implemented in Plonky3. VM execution trace is split into several chunks that could be proven in parallel with a STARK proving system. The parallelized proofs are recursively checked by the next layer of STARK circuits. The correctness of the final STARK proof is verified with the final wrap SNARK program, the wrap SNARK proof is verified onchain.\n\n ### zkVM component\n\n Verifies execution of a RISC-V program in a zkVM. Uses [Plonky3](https://github.com/Plonky3/Plonky3) STARK toolkit with AIR arithmetization and FRI-based polynomial commitment scheme within the [BabyBear field](https://docs.succinct.xyz/docs/sp1/security/security-model#hash-functions-and-the-random-oracle-model).\n\n ### Recursion circuits\n\n SP1 provides tools for recursive proof generation by [verifying proofs in a zkVM](https://docs.succinct.xyz/docs/sp1/writing-programs/proof-aggregation#verifying-proofs-inside-the-zkvm). This uses the same toolkit as top-level proof system, but proves the correct verification of all proofs generated on the previous step.\n\n ### Final wrap\n\n SP1 supports Plonk (with KZG polynomial commitments) or Groth16 final SNARK wrap of the STARK proof for performant onchain proof verification ([link](https://docs.succinct.xyz/docs/sp1/generating-proofs/proof-types#compressed)). The [gnark](https://github.com/Consensys/gnark) implementation of these proof systems over BN254 curve is used. For Plonk, Aztec Ignition trusted setup ceremony is used, for Groth16 Succinct run internal circuit-dependent phase 2 trusted setup, see [below](#trusted-setups) for more details.\n ",
"techStack": {
"zkVM": [
{
"id": "Plonky3",
"type": "STARK",
"name": "Plonky3",
"description": "Toolkit that implements a set of primitives for STARK-based zkVMs developed by Polygon Zero team."
},
{
"id": "RISCV",
"type": "ISA",
"name": "RISC-V",
"description": "Free and open-source universal 32-bit ISA used across a variety of hardware and software."
},
{
"id": "BabyBear",
"type": "Field",
"name": "Baby Bear",
"description": "Prime field of order p = 15 * 2**27 + 1."
}
],
"finalWrap": [
{
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
{
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
{
"id": "BN254",
"type": "curve",
"name": "BN254",
"description": "BN254, aka BN256, aka alt_bn128 pairing-friendly 254-bit prime field Weierstrass elliptic curve."
}
]
},
"trustedSetups": [
{
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"id": "AztecIgnition",
"name": "Aztec Ignition",
"risk": "green",
"shortDescription": "Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.",
"longDescription": " \n Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. \n It included 176 participants and was publicly open for participation.\n \n - Github repo to download and verify the ceremony artifacts: [https://github.com/AztecProtocol/ignition-verification](https://github.com/AztecProtocol/ignition-verification).\n - Github repo with instructions for ceremony participants: [https://github.com/AztecProtocol/Setup](https://github.com/AztecProtocol/Setup).\n - Ceremony announcement with a call to participate: [https://aztec.network/blog/announcing-ignition](https://aztec.network/blog/announcing-ignition).\n "
},
{
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"id": "SP1Groth16",
"name": "SP1 Groth16 circuit-specific setup",
"risk": "red",
"shortDescription": "Succinct's internally run trusted setup for SP1 Groth16 final wrap circuits. Ceremony was run among 7 contributors to the SP1 project without public calls to participate.",
"longDescription": "\n Ceremony was run among 7 contributors to the SP1 project without public calls to participate. It generated setup parameters for Groth16 wrapper of SP1 zkVM.\n\n - Ceremony info on Succinct docs page: [https://docs.succinct.xyz/docs/sp1/security/security-model#options](https://docs.succinct.xyz/docs/sp1/security/security-model#options).\n - Ceremony instructions and verification instructions: [https://github.com/succinctlabs/semaphore-gnark-11/tree/main](https://github.com/succinctlabs/semaphore-gnark-11/tree/main).\n - Link to transcript and other artifacts (Note: will immediately start downloading .tar.gz file): [https://sp1-circuits.s3.us-east-2.amazonaws.com/v4.0.0-rc.3-trusted-setup.tar.gz](https://sp1-circuits.s3.us-east-2.amazonaws.com/v4.0.0-rc.3-trusted-setup.tar.gz).\n "
}
],
"verifierHashes": [
{
"hash": "0xd4e8ecd2357dd882209800acd6abb443d231cf287d77ba62b732ce937c8b56e7",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459",
"chain": "ethereum"
},
{
"address": "0xFF5Adab685362DC4C33536a65aF5873738D1216B",
"chain": "ethereum"
}
],
"verificationStatus": "notVerified"
},
{
"hash": "0x1b34fe11a637737f0c75c88241669dcf9ca3c03713659265b8241f398a2d286d",
"proofSystem": {
"id": "Gnark",
"type": "Plonk",
"name": "Gnark",
"description": "Consensys implementation of Plonk proving system written in Go."
},
"knownDeployments": [
{
"address": "0xE00a3cBFC45241b33c0A44C78e26168CBc55EC63",
"chain": "ethereum"
}
],
"verificationStatus": "successful",
"verificationSteps": "\n - Check out [sp1 repo](https://github.com/succinctlabs/sp1) at commit `76c28bf986ba102127788ce081c21fa09cf93b18`.\n - Set an environment variable by calling `export SP1_ALLOW_DEPRECATED_HOOKS=true`. It is needed for the correct execution of circuit building.\n - Make sure that you have [go lang installed](https://go.dev/doc/install).\n - From `crates/prover` call `make build-circuits`. Note that the execution could take a while.\n ",
"attesters": [
{
"id": "l2beat",
"name": "L2BEAT",
"link": "https://l2beat.com"
}
]
},
{
"hash": "0xa4594c59bbc142f3b81c3ecb7f50a7c34bc9af7c4c444b5d48b795427e285913",
"proofSystem": {
"id": "Gnark",
"type": "Groth16",
"name": "Gnark",
"description": "Consensys implementation of Groth16 proving system written in Go."
},
"knownDeployments": [
{
"address": "0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5",
"chain": "ethereum"
},
{
"address": "0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5",
"chain": "arbitrum"
},
{
"address": "0xa5E60dbBAc6A65B654E5A14A5E357da3Fcf139dd",
"chain": "gnosis"
}
],
"verificationStatus": "notVerified"
}
]
}