Symbiotic Core (https://github.com/symbioticfi/core) provides a modular onchain framework for creating flexible staking solutions, including collateral choice (native tokens, restaked assets, or multi-asset), as well as reward, slashing and redistribution logic. Symbiotic Relay serves as an extension to the Symbiotic Core that radically simplifies integrating Symbiotic's universal staking primitives and enables leveraging stake across any execution environment, expanding the design space for multichain-native decentralized protocols.
Scope
On what chains are the smart contracts going to be deployed?
Ethereum
BSC
Tron
Base
Arbitrum
Hyperliquid L1
Avalanche
Polygon
Berachain
Unichain
Sonic
Cronos
BSquared
Bitlayer
CORE
OP Mainnet
Hemi
Taiko
Gnosis
Mantle
Linea
Blast
Celo
ZKsync Era
Scroll
WorldChain
Swellchain
Manta
If you are integrating tokens, are you allowing only whitelisted tokens to work with the codebase or any complying with the standard? Are they assumed to have certain properties, e.g. be non-reentrant? Are there any types of weird tokens you want to integrate?
The system is permissionless; the only limitation is rebasing tokens
Are there any limitations on values set by admins (or other roles) in the codebase, including restrictions on array lengths?
Settlement.setGenesis()
function with a needed permission, which ideally should be called only once at the start, as it can affect the validator set (which represents the network) and, hence, the network's decisions. BaseSlashing
and BaseRewards
, which affect the stakers directly and should be thoroughly considered by them.Are there any limitations on values set by admins (or other roles) in protocols you integrate with, including restrictions on array lengths?
No, but it's important to mention that the code under the contest is an SDK, so the number of use-cases can be wide and, in the end, it is up to the user of this SDK (network/protocol) to decide on external trust assumptions (e.g., threre is shared vault with several stake consumers and with a custom route for slashed funds; it is up to the network if to consume the stake from this vault or not)
Is the codebase expected to comply with any specific EIPs?
No, the codebase only uses some subjects (ERC20, precompiles) from EIPs, but doesn't implement any
Are there any off-chain mechanisms involved in the protocol (e.g., keeper bots, arbitrage bots, etc.)? We assume these mechanisms will not misbehave, delay, or go offline unless otherwise specified.
There is an off-chain part of the Symbiotic Relay that implements the validator set usage itself, including message signing, maintenance of validator set headers (which represent the validator set itself) through epochs, and signature aggregations. Mainly, it consumes VotingPowerProvider.getVotingPowers(At)()
, KeyRegistry.getKeys(At)()
, all of the ValSetDriver
functions for validator set derivation and futher interactions with Settlement
, EpochManager.getCurrentEpochStart()
(and other epochs-related functions), most functions from Settlement
for synchronisations, commitments, and verifications. Example dependency on this off-chain part: if any validator set has committed a malicious header by its majority, it is acceptable from the on-chain side.
What properties/invariants do you want to hold even if breaking them has a low/unknown impact?
No
Please discuss any design choices you made.
Please provide links to previous audits (if any).
Please list any relevant protocol resources.
Additional audit information.
As is the default, a high severity issue is worth 5 times the value of a medium severity issue. To encourage placing more of an emphasis on the main scope, vulnerabilities found in the ZK and Network portions have a reduced weight. An issue in the ZK or Network portion will be worth 0.1x weight of a normal medium or high. This means a Medium issue in that area is worth a tenth of a Medium in the main scope.
For the circuit.go
file, only the func (circuit *Circuit) Define
is considered in-scope, while the function func setCircuitData
is considered OOS and issues related to it will be considered invalid.
Issues in the SDK view functions that are not used by the state-changing functions and don't pose a threat to the current scope, but may pose issues for protocols which will build on top of the SDK, will be considered valid in this contest. However, since we can't fully evaluate the impact (as it depends on what will be built on top of SDK), these issues will be considered flat Medium.
Total Rewards
Contest Pool
Lead Senior Watson
Lead Judge
48,900 USDC
37,500 USDC
9,000 USDC
Status
Scope
Start Time
End Time
Judging Rules
Reserved Auditors