The developers and designers at SIREN have been working on a protocol for decentralized options trading. Options are a financial primitive from which one can build many different more complex financial instruments. At their core, options give a trader the choice to buy or sell an asset at a predetermined price at a known time in the future. This is useful for protecting yourself (a.k.a hedging) against possible price changes in the asset, as well as speculating on these price changes.
Siren uses a fully-collateralized approach to writing options. A single MarketsRegistry contract creates and coordinates individual markets. Once a Market contract is created anyone can interact with it in a permissionless manner. The solvency of a position is ensured at all times by the collateral locked in the smart contract.
In Siren both the long and short side of the contract are tokenized. The buyer’s side (bToken) gives the holder the right to purchase or sell the underlying asset at a predetermined strike priceThe seller’s/writer’s side (wToken) allows the holder to withdraw the collateral (if the option was not exercised) or withdraw the exercise payment (if the option was exercised) from the contract after expiration.
Tokenizing both sides of the contract allows Siren to create secondary markets for both the long and short exposure. Under such a design in order to become a writer one provides liquidity to the AMM pool and receives lpToken proportional to their share of the pool's total liquidity. When a trader goes to buy an option (bToken) if the pool has no residual bToken it will use the provided liquidity to mint new bToken + wToken, and sell the bToken to the trader, keeping the wToken for itself. When the option expires out-of-the-money, the AMM claims the un-exercised liquidity, plus the premium paid by the trader, and thus generates profits for liquidity providers. When a liquidity provider withdraws their liquidity, a portion of their withdraw tokens will be wTokens. A writer can unwind their short exposure by buying equal amounts of bToken, and using the bToken and wToken to withdraw equal amounts of pool collateral.
The bug bounty program is focused around its smart contracts and the prevention of loss of user funds.
Rewards by Threat Level
Rewards are distributed according to the impact of the vulnerability based on the Immunefi Vulnerability Severity Classification System. This is a simplified 5-level scale, with separate scales for websites/apps and smart contracts/blockchains, encompassing everything from consequence of exploitation to privilege required to likelihood of a successful exploit.
Payouts are handled by the Siren team directly and are denominated in USD. Payouts up to USD 50 000 are done in USDC or DAI. For critical bug reports, up to 80% of the reward may be in SI.
The final payout amount is determined by the exploitability of the bug reported and the impact on user funds.
- USD $100,000
- USD $40,000
- USD $5,000
- USD $1,000
- USD $0
Assets in scope
- Smart Contract - Siren MarketsType
- Smart Contract - ContractType
Impacts in scope
Only the following impacts are accepted within this bug bounty program. All other impacts are not considered as in-scope, even if they affect something in the assets in scope table.
- Critical Smart Contract ImpactCriticalImpact
- High Smart Contract ImpactHighImpact
- Medium Smart Contract ImpactMediumImpact
- Low Smart Contract ImpactLowImpact
Out of Scope & Rules
The following vulnerabilities are excluded from the rewards for this bug bounty program:
- Attacks that the reporter has already exploited themselves, leading to damage
- Attacks requiring access to leaked keys/credentials
- Attacks requiring access to privileged addresses (governance, strategist)
- Incorrect data supplied by third party oracles
- Not to exclude oracle manipulation/flash loan attacks
- Basic economic governance attacks (e.g. 51% attack)
- Lack of liquidity
- Best practice critiques
- Sybil attacks
The following activities are prohibited by bug bounty program:
- Any testing with mainnet or public testnet contracts; all testing should be done on private testnets
- Any testing with pricing oracles or third party smart contracts
- Attempting phishing or other social engineering attacks against our employees and/or customers
- Any testing with third party systems and applications (e.g. browser extensions) as well as websites (e.g. SSO providers, advertising networks)
- Any denial of service attacks
- Automated testing of services that generates significant amounts of traffic
- Public disclosure of an unpatched vulnerability in an embargoed bounty