Search for projects by name or address
Term Structure introduces a distinct ZK Rollup solution democratizing fixed-rate and fixed-term borrowing and lending as well as fixed income trading by offering low transaction fees and enabling forced withdrawals.
Term Structure introduces a distinct ZK Rollup solution democratizing fixed-rate and fixed-term borrowing and lending as well as fixed income trading by offering low transaction fees and enabling forced withdrawals.
The section shows the operating costs that L2s pay to Ethereum.
This section shows how "live" the project's operators are by displaying how frequently they submit transactions of the selected type. It also highlights anomalies - significant deviations from their typical schedule.
Users can force the sequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs. to include a transaction by submitting a request through L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development.. If the sequencer censors or is down for for more than 14d, users can use the exit hatch to withdraw their funds.
SNARKs are succinct zero knowledge proofs that ensure state correctness, but require trusted setupGeneration of a piece of data that must then be used for some cryptographic protocol to run. Generating this data requires some secret information. The "trust" comes from the fact the secret must be destroyed after the ceremony, otherwise cryptographic properties of the protocol could be broken. Once the data is generated, and the secrets are forgotten, no further participation from the creators of the ceremony is required. There are two types of trusted setups for SNARKs: (i) trusted setup per circuit where it is generated from scratch for each circuit, (ii) trusted universal setup per proving system where it can be used for several circuits..
All of the data needed for proof construction is published on Ethereum L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development..
There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.
Users are able to trustlessly exit by submitting a zero knowledge proof of funds.
Rollup operators cannot compromise the system, but being application-specific might bring additional risk.
Term Structure provides the infrastructure for fixed-rate leverage, lending and borrowing. Arbitrary contracts are not supported.
All the data that is used to construct the system state is published onchain in the form of cheap calldata. This ensures that it will always be available when needed.
Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.
Discovery rerun on the same block number with only config-related changes.
Discovery rerun on the same block number with only config-related changes.
| + | Status: CREATED |
| contract ZkTrueUp (0x09E01425780094a9754B2bd8A3298f73ce837CF9) | |
| +++ description: None | |
| + | Status: CREATED |
| contract Verifier (0x23369A60E5A8f422E38d799eD55e7AD8Ed4A86cE) | |
| +++ description: None | |
| + | Status: CREATED |
| contract TermStructure Multisig 2 (0x23bCad9BFB1378cd45b32525B835F037b673f529) | |
| +++ description: None | |
| + | Status: CREATED |
| contract TermStructure Multisig 3 (0x2df3e912aeDe36ea5EaB06232ca3b239a40A8165) | |
| +++ description: None | |
| + | Status: CREATED |
| contract (0x3B1D7E06a1bFfD89ECd8026CF287C11F6Ec34f0D) | |
| +++ description: None | |
| + | Status: CREATED |
| contract EvacuationFacet (0x882aBFb2F6A67d36350499991638044e8Bd83a72) | |
| +++ description: None | |
| + | Status: CREATED |
| contract AccountFacet (0x8D0fc76595E42f38c771ecEE627DA5654Ca2E75A) | |
| +++ description: None | |
| + | Status: CREATED |
| contract RollupFacet (0x955cdD2E56Ca2776a101a552A318d28fe311398D) | |
| +++ description: None | |
| + | Status: CREATED |
| contract EvacuVerifier (0x9c7Df3981A89eD04588907843fe2a6c1BcCc4467) | |
| +++ description: None | |
| + | Status: CREATED |
| contract TermStructure Multisig 1 (0xa00d50A40B1635D293c87BA36503bD2504b5D818) | |
| +++ description: None | |
| + | Status: CREATED |
| contract TermStructure Multisig 4 (0xB7ef7117FfCa1956249B666D9fdBe182cFbbF5ca) | |
| +++ description: None | |
Thresholds of the MS clones are increased to 4 of 6.
Thresholds of the MS clones are increased to 4 of 6.
| contract VaultMultisig (0x23bCad9BFB1378cd45b32525B835F037b673f529) { | |
| +++ description: None | |
| values.$multisigThreshold: | |
| - | "3 of 6 (50%)" |
| + | "4 of 6 (67%)" |
| values.getThreshold: | |
| - | 3 |
| + | 4 |
| } | |
| contract InsuranceMultisig (0x2df3e912aeDe36ea5EaB06232ca3b239a40A8165) { | |
| +++ description: None | |
| values.$multisigThreshold: | |
| - | "3 of 6 (50%)" |
| + | "4 of 6 (67%)" |
| values.getThreshold: | |
| - | 3 |
| + | 4 |
| } | |
| contract TreasuryMultisig (0xB7ef7117FfCa1956249B666D9fdBe182cFbbF5ca) { | |
| +++ description: None | |
| values.$multisigThreshold: | |
| - | "3 of 6 (50%)" |
| + | "4 of 6 (67%)" |
| values.getThreshold: | |
| - | 3 |
| + | 4 |
| } | |
EOA admin role and owner changed to the Multisig.
EOA admin role and owner changed to the Multisig.
| contract ZkTrueUp (0x09E01425780094a9754B2bd8A3298f73ce837CF9) { | |
| +++ description: None | |
| values.accessControl.ADMIN_ROLE.members.1: | |
| - | "0xa00d50A40B1635D293c87BA36503bD2504b5D818" |
| values.accessControl.ADMIN_ROLE.members.0: | |
| - | "0x944a0Af591E2C23a2E81fe4c10Bd9c47Cf866F4b" |
| + | "0xa00d50A40B1635D293c87BA36503bD2504b5D818" |
| values.owner: | |
| - | "0x944a0Af591E2C23a2E81fe4c10Bd9c47Cf866F4b" |
| + | "0xa00d50A40B1635D293c87BA36503bD2504b5D818" |
| } | |
| contract VaultMultisig (0x23bCad9BFB1378cd45b32525B835F037b673f529) { | |
| +++ description: None | |
| values.$multisigThreshold: | |
| - | "1 of 2 (50%)" |
| + | "3 of 6 (50%)" |
| values.getOwners.5: | |
| + | "0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93" |
| values.getOwners.4: | |
| + | "0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348" |
| values.getOwners.3: | |
| + | "0x85e500dF81F10B539E16Dd717e24C41465D10D82" |
| values.getOwners.2: | |
| + | "0x50E6298795C412B26e54FdD87825Bc6ffa94B80d" |
| values.getOwners.1: | |
| - | "0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93" |
| + | "0x83d4814307088732528A53D8DF75fd6F2f5be398" |
| values.getOwners.0: | |
| - | "0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348" |
| + | "0x6Ed505e36B8ae1eC730d8b3F4E0125f0F1F78C44" |
| values.getThreshold: | |
| - | 1 |
| + | 3 |
| } | |
| contract InsuranceMultisig (0x2df3e912aeDe36ea5EaB06232ca3b239a40A8165) { | |
| +++ description: None | |
| values.$multisigThreshold: | |
| - | "1 of 2 (50%)" |
| + | "3 of 6 (50%)" |
| values.getOwners.5: | |
| + | "0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93" |
| values.getOwners.4: | |
| + | "0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348" |
| values.getOwners.3: | |
| + | "0x85e500dF81F10B539E16Dd717e24C41465D10D82" |
| values.getOwners.2: | |
| + | "0x50E6298795C412B26e54FdD87825Bc6ffa94B80d" |
| values.getOwners.1: | |
| - | "0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93" |
| + | "0x83d4814307088732528A53D8DF75fd6F2f5be398" |
| values.getOwners.0: | |
| - | "0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348" |
| + | "0x6Ed505e36B8ae1eC730d8b3F4E0125f0F1F78C44" |
| values.getThreshold: | |
| - | 1 |
| + | 3 |
| } | |
| contract TermStructureMultisig (0xa00d50A40B1635D293c87BA36503bD2504b5D818) { | |
| +++ description: None | |
| values.$multisigThreshold: | |
| - | "1 of 2 (50%)" |
| + | "4 of 6 (67%)" |
| values.getOwners.5: | |
| + | "0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93" |
| values.getOwners.4: | |
| + | "0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348" |
| values.getOwners.3: | |
| + | "0x85e500dF81F10B539E16Dd717e24C41465D10D82" |
| values.getOwners.2: | |
| + | "0x50E6298795C412B26e54FdD87825Bc6ffa94B80d" |
| values.getOwners.1: | |
| - | "0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93" |
| + | "0x83d4814307088732528A53D8DF75fd6F2f5be398" |
| values.getOwners.0: | |
| - | "0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348" |
| + | "0x6Ed505e36B8ae1eC730d8b3F4E0125f0F1F78C44" |
| values.getThreshold: | |
| - | 1 |
| + | 4 |
| } | |
| contract TreasuryMultisig (0xB7ef7117FfCa1956249B666D9fdBe182cFbbF5ca) { | |
| +++ description: None | |
| values.$multisigThreshold: | |
| - | "1 of 2 (50%)" |
| + | "3 of 6 (50%)" |
| values.getOwners.5: | |
| + | "0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93" |
| values.getOwners.4: | |
| + | "0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348" |
| values.getOwners.3: | |
| + | "0x85e500dF81F10B539E16Dd717e24C41465D10D82" |
| values.getOwners.2: | |
| + | "0x50E6298795C412B26e54FdD87825Bc6ffa94B80d" |
| values.getOwners.1: | |
| - | "0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93" |
| + | "0x83d4814307088732528A53D8DF75fd6F2f5be398" |
| values.getOwners.0: | |
| - | "0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348" |
| + | "0x6Ed505e36B8ae1eC730d8b3F4E0125f0F1F78C44" |
| values.getThreshold: | |
| - | 1 |
| + | 3 |
| } | |
The roller (a function of the escrow that allows rolling loans from native termstructure to aave) is deactivated.
The roller (a function of the escrow that allows rolling loans from native termstructure to aave) is deactivated.
| contract ZkTrueUp (0x09E01425780094a9754B2bd8A3298f73ce837CF9) { | |
| +++ description: None | |
| values.isActivatedRoller: | |
| - | true |
| + | false |
| } | |
Config related!
Config related!
| contract GnosisSafeProxy (0x23bCad9BFB1378cd45b32525B835F037b673f529) { | |
| +++ description: None | |
| name: | |
| - | "GnosisSafeProxy" |
| + | "GnosisSafe" |
| upgradeability.type: | |
| - | "immutable" |
| + | "gnosis safe" |
| upgradeability.masterCopy: | |
| + | "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" |
| upgradeability.modules: | |
| + | [] |
| upgradeability.threshold: | |
| + | "1 of 2 (50%)" |
| implementations: | |
| + | ["0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552"] |
| values: | |
| + | {"domainSeparator":"0xcbdbe6506e1cb79232f4c965204bb95931a2e6dbfe5aaf5dd3b10f93d06d404a","getChainId":1,"getOwners":["0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348","0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93"],"getThreshold":1,"nonce":0,"VERSION":"1.3.0"} |
| } | |
| contract GnosisSafeProxy (0x2df3e912aeDe36ea5EaB06232ca3b239a40A8165) { | |
| +++ description: None | |
| name: | |
| - | "GnosisSafeProxy" |
| + | "GnosisSafe" |
| upgradeability.type: | |
| - | "immutable" |
| + | "gnosis safe" |
| upgradeability.masterCopy: | |
| + | "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" |
| upgradeability.modules: | |
| + | [] |
| upgradeability.threshold: | |
| + | "1 of 2 (50%)" |
| implementations: | |
| + | ["0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552"] |
| values: | |
| + | {"domainSeparator":"0xa8d496ef58694c5b643be9bfdef2a52066c56fe63e93ee7b0d35bfd3c7385cd5","getChainId":1,"getOwners":["0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348","0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93"],"getThreshold":1,"nonce":0,"VERSION":"1.3.0"} |
| } | |
| contract GnosisSafeProxy (0xB7ef7117FfCa1956249B666D9fdBe182cFbbF5ca) { | |
| +++ description: None | |
| name: | |
| - | "GnosisSafeProxy" |
| + | "GnosisSafe" |
| upgradeability.type: | |
| - | "immutable" |
| + | "gnosis safe" |
| upgradeability.masterCopy: | |
| + | "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" |
| upgradeability.modules: | |
| + | [] |
| upgradeability.threshold: | |
| + | "1 of 2 (50%)" |
| implementations: | |
| + | ["0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552"] |
| values: | |
| + | {"domainSeparator":"0x06a4de0d5b7b1171090ba38e2dc6ef3c5e2c8219915ef5a272fad0d29f2a9c06","getChainId":1,"getOwners":["0x871679A28adDdaB762a8C6Ff010d2D9Ffa38d348","0xa7197E776F2abFCDe1Fa662aBa5A4B86a02f0F93"],"getThreshold":1,"nonce":0,"VERSION":"1.3.0"} |
| } | |
The operatorAn operator is the entity charged with managing a rollup and progressing its state. A rollup operator can be a centralized sequencer, proposer, prover, challenger, pauser of admin that is able to perform upgrades. is the only entity that can propose blocksAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over.. A live and trustworthy operator is vital to the health of the system.
MEV can be extracted if the operator exploits their centralized position and frontruns user transactions.
Force exit allows the users to escape censorship by withdrawing their funds. The system allows users to force the withdrawal of funds by submitting a request directly to the contract onchain. The request must be served within a defined time period. If this does not happen, the system will halt regular operation and permit trustless withdrawal of funds.
Users can be censored if the operator refuses to include their transactions. However, there exists a mechanism to independently exit the system.
The user initiates the withdrawal by submitting a regular transaction on this chain. When the blockAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. containing that transaction is settled the funds become available for withdrawal on L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development.. ZK proofs are required to settle blocks. Finally the user submits an L1 transaction to claim the funds.
If the user experiences censorship from the operatorAn operator is the entity charged with managing a rollup and progressing its state. A rollup operator can be a centralized sequencer, proposer, prover, challenger, pauser of admin that is able to perform upgrades. with regular exit they can submit their withdrawal requests directly on L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development.. The system is then obliged to service this request. Once the force operation is submitted and if the request is serviced, the operation follows the flow of a regular exit.
If the enough time deadline passes and the forced exit is still ignored the user can put the system into Evacuation Mode, disallowing further state updates. In that case everybody can withdraw by submitting a zero knowledge proof of their funds with their L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. transaction.
Funds can be lost if the user is unable to generate the non-trivial ZK proof for exodus withdraw.
The protocol allows flashloans with the funds locked with the bridgeA message-passing protocol between two blockchains. At its most basic, a token bridge consists of a smart contract which can escrow funds on one side of the bridge, and instruct the release or minting of corresponding assets on the other side, but bridges could also support arbitrary messages. How these instructions are validated is a critical factor in assessing the trust assumptions of a bridge., for a fee.
Funds can be lost if the flashloan mechanism is implemented incorrectly.

Can update the main verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover., the evacuation verifier, can set the flash loan premium, set the half liquidation threshold, the liquidation factor, the borrow rate, the rollover fee, the withdraw protocol fee, the price feed, the stablecoin used, the minimum deposit amount and it can pause the system.
A Multisig with 4/6 threshold. Owner of the protocol, meaning it can upgrade the project implementation potentially gaining access to all funds.
Can add tokens to the system.
Can commit blocksAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. on L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development. and revert pending (i.e. not yet executed) blocks.
Can verify blocksAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. on L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development..
Can execute blocksAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over. on L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development..
A Multisig with 4/6 threshold. Address collecting a portion of protocol fees. Currently set to 100% of the fees.
A Multisig with 4/6 threshold. Address collecting a portion of protocol fees. Currently set to 0% of the fees.
A Multisig with 4/6 threshold. Address collecting a portion of protocol fees. Currently set to 0% of the fees.

Main contract of the system. It manages deposits, withdrawals, verification, permissions and DeFi operations.
All supported tokens in this escrow are included in the value secured calculation.
VerifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. contract used to verify the SNARKShort for "succinct non-interactive argument of knowledge", a SNARK is a widely used type of zero-knowledge proof that is short and fast to verify. Different kinds of SNARKs are usually systematized by proof size, verification time, and type of setup. The most famous SNARKs are Groth16, PLONK/Marlin, Bulletproofs, and STARKs. proofs.
The current deployment carries some associated risks:
Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).