Arcade.xyz
Program Overview
Arcade.xyz is the first of its kind Web3 platform to enable liquid lending markets for NFTs. At Arcade.xyz, we think all assets will eventually become digitized and that NFTs represent a 0 to 1 innovation in storing value and ownership attribution for unique digital assets.
Arcade.xyz's focus is on building primitives, infrastructure, and applications enabling the growth of NFTs as an asset class. As such, the first product we released is an innovative peer to peer lending marketplace that allows NFT owners to unlock liquidity on baskets of NFTs on Ethereum. Lenders that hold stablecoins or ERC20 tokens can participate in a new source of DeFi yield by underwriting term loans collateralized by borrowers' NFTs.
Arcade.xyz is our end user application that strives to become the premier liquidity venue for NFTs, via a protocol for NFT collateralized loans with flexible terms. Today NFTs are largely digital representations of artwork and media content, however, our belief is that in the not so distant future NFTs will encompass digital rights, metaverse assets, and digital identity.
For more information about Arcade.xyz, please visit https://docs.arcadedao.xyz.
On October 24, 2023, ArcadeDAO was launched, featuring a governance system that empowers members to actively influence both the technical and non-technical facets of the DAO and the Arcade Protocol. The $ARCD token functions as the governance token for ArcadeDAO.
To increase the utility of the $ARCD token and enhance user engagement in the Arcade ecosystem, ArcadeDAO introduced two staking strategies. These strategies offer users the chance to earn rewards while participating in DAO governance and providing liquidity.
To learn more, please visit https://docs.arcadedao.xyz/docs/arcade-staking-documentation.
Responsible Publication
Arcade adheres to category 3 - Approval Required. This Policy determines what information researchers are allowed to make public from their submitted bug reports. For more information about the category selected, please refer to our Responsible Publication page.
Primacy of Impact vs Primacy of Rules
Arcade adheres to the Primacy of Impact for the following impacts:
- Smart Contract - Critical
- Smart Contract - High
Primacy of Impact means that the impact is prioritized rather than a specific asset. This encourages security researchers to report on all bugs with an in-scope impact, even if the affected assets are not in scope. For more information, please see Best Practices: Primacy of Impact
When submitting a report on Immunefi’s dashboard, the security researcher should select the Primacy of Impact asset placeholder. If the team behind this project has multiple programs, those other programs are not covered under Primacy of Impact for this program. Instead, check if those other projects have a bug bounty program on Immunefi.
If the project has any testnet and/or mock files, those will not be covered under Primacy of Impact.
All other impacts are considered under the Primacy of Rules, which means that they are bound by the terms and conditions set within this program.
Proof of Concept (PoC) Requirements
A PoC, demonstrating the bug's impact, is required for this program and has to comply with the Immunefi PoC Guidelines and Rules.
Known Issue Assurance
Arcade commits to providing Known Issue Assurance to bug submissions through their program. This means that Arcade will either disclose known issues publicly, or at the very least, privately via a self-reported bug submission.
In a potential scenario of a mediation, this allows for a more objective and streamlined process, in order to prove that an issue is known. Otherwise, assuming the bug report is valid, it would result in the report being considered as in-scope, and due a reward.
Public Disclosure of Known Issues
Bug reports covering previously-discovered bugs (listed below) are not eligible for a reward within this program. This includes known issues that the project is aware of but has consciously decided not to “fix”, necessary code changes, or any implemented operational mitigating procedures that can lessen potential risk.
- https://github.com/arcadexyz/arcade-protocol/tree/main/audits
- https://github.com/arcadexyz/dao-contracts?tab=readme-ov-file#known-gotchas
Feasibility Limitations
The project may be receiving reports that are valid (the bug and attack vector are real) and cite assets and impacts that are in scope, but there may be obstacles or barriers to executing the attack in the real world. In other words, there is a question about how feasible the attack really is. Conversely, there may also be mitigation measures that projects can take to prevent the impact of the bug, which are not feasible or would require unconventional action and hence, should not be used as reasons for downgrading a bug's severity.
Therefore, Immunefi has developed a set of feasibility limitation standards which by default states what security researchers, as well as projects, can or cannot cite when reviewing a bug report.
Immunefi Standard Badge
By adhering to Immunefi’s best practice recommendations, Arcade has satisfied the requirements for the Immunefi Standard Badge.
Rewards by Threat Level
Rewards are distributed according to the impact of the vulnerability based on the Immunefi Vulnerability Severity Classification System V2.2. This is a simplified 5-level scale, with separate scales for websites/apps, smart contracts, and blockchains/DLTs, focusing on the impact of the vulnerability reported.
All High and Critical Smart Contract bug reports require a PoC and a suggestion for a fix to be eligible for a reward. Explanations and statements are not accepted as PoC and code is required.
Critical smart contract vulnerabilities are capped at 10% of economic damage, primarily taking into consideration funds at risk, but also PR and branding aspects, at the discretion of the team. However, there is a minimum reward o USD 20 000.
All vulnerabilities marked in the https://github.com/arcadexyz/arcade-protocol/tree/main/audits are not eligible for a reward.
Payouts are handled by the Arcade.xyz team directly and are denominated in USD. However, payouts are done in USDC.
Smart Contract
- Critical
- Level
- USD $20,000 to USD $50,000
- Payout
- High
- Level
- USD $5,000 to USD $20,000
- Payout
- Medium
- Level
- USD $2,500
- Payout
- Low
- Level
- USD $1,000
- Payout
Assets in scope
- Smart Contract - OriginationControllerType
- Smart Contract - LoanCoreType
- Smart Contract - VaultFactoryType
- Smart Contract - VaultFactoryURIDescriptorType
- Smart Contract - AssetVaultType
- Smart Contract - BorrowerNoteType
- Smart Contract - BorrowerNoteURIDescriptorType
- Smart Contract - LenderNoteType
- Smart Contract - LenderNoteURIDescriptorType
- Smart Contract - RepaymentControllerType
- Smart Contract - FeeControllerType
- Smart Contract - ArcadeItemsVerifierType
- Smart Contract - CollectionWideOfferVerifierType
- Smart Contract - ArtBlocksVerifierType
- Smart Contract - CallWhitelistAllExtensionsType
- Smart Contract - V2ToV3RolloverType
- Smart Contract - V2ToV3RolloverWithItemsType
- Smart Contract - ArcadeStakingRewardsType
- Smart Contract - AirdropSingleSidedStakingType
All smart contracts of Arcade.xyz can be found at https://github.com/arcadexyz/arcade-protocol/tree/main/contracts and https://github.com/arcadexyz/dao-contracts/tree/main/src. However, only those in the Assets in Scope table are considered as in-scope of the bug bounty program.
Though only the proxy contract for AssetVault is listed as in-scope, current implementation and any further updates to the implementation contract are considered in scope. When reporting a bug, please make sure to select the proxy smart contract as the target. AssetVault is the only upgradeable contract in the protocol.
If an impact can be caused to any other asset managed by Arcade.xyz that isn’t on this table but for which the impact is in the Impacts in Scope section below, you are encouraged to submit it for the consideration by the project. This only applies to Critical and High impacts.
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.
Smart Contract
- Ability for an attacker to cause the entire protocol to freeze, including loans in which they are not a counterpartyCriticalImpact
- Ability for an attacker to steal any asset held by the protocol, without limitation, including loans in which they are not a counterpartyCriticalImpact
- Ability for an attacker to claim collateral for defaulted loans in which they are not a counterpartyCriticalImpact
- Direct theft of any staking user funds, whether at-rest or in-motionCriticalImpact
- Permanent freezing of staked fundsCriticalImpact
- With the attacker as a borrower, the ability to regain control of collateral without repaying your loanHighImpact
- With the attacker as a borrower, the ability to force your lender to issue loan funding without placing collateral in escrowHighImpact
- With the attacker as a borrower, the ability to prevent a lender from claiming collateral when a loan is defaultedHighImpact
- With the attacker as a lender, the ability to claim collateral before your loan’s due dateHighImpact
- With the attacker as a lender, the ability to prevent borrower repayments to force a defaultHighImpact
- With the attacker as a lender, the ability to force a borrower to place collateral in escrow without issuing fundingHighImpact
- With the attacker as either counterparty, the ability to force another party to enter a loan under terms they did not consent to either via signature, or the other party submitting a function callHighImpact
- Theft of unclaimed staking yieldHighImpact
- Permanent freezing of unclaimed staking yieldHighImpact
- Temporary freezing of staked fundsHighImpact
- The ability of a user to withdraw their staked tokens before the end of the lock periodHighImpact
- The ability to force the issuance of a bonus multiplier incompatible with the chosen lock periodHighImpact
- The ability to force the issuance of voting power incompatible with the properties of a user’s stakeHighImpact
- The ability to prevent another staker from claiming their rewardsHighImpact
- The ability to prevent another staker from withdrawing their staked tokensHighImpact
- The ability to overdraw rewardsHighImpact
- The ability to overdraw staking tokensHighImpact
- The alteration of a user's voting powerHighImpact
- Ability for an attacker to gain governance voting power for stakes in which they are not a participantHighImpact
- Staking contract fails to deliver promised returns.HighImpact
- Ability to freeze the protocol from originating new loans, without affecting currently open loans or locking assetsMediumImpact
- Ability to drain protocol fees or block protocol feesMediumImpact
- Ability to block protocol fees from being withdrawn by contract ownersMediumImpact
- Ability to bypass whitelisting requirements for loan collateral, payable currencies, and allowed verifiersMediumImpact
- Ability to manipulate whitelists for loan collateral, payable currencies, and allowed verifiers without the protocol-defined permissions (whitelist manager role)MediumImpact
- Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol) and theft of gasMediumImpact
- Unbounded gas consumptionMediumImpact
- Ability to block the recoverERC20 functions in the staking contracts.MediumImpact
- Any finding which impacts protocol logic without circumventing loan rules or stealing/freezing user fundsLowImpact
- Staking contract fails to deliver promised rewards, but doesn't lose any tokens.LowImpact
- Any finding which impacts staking contract logic without circumventing staking rules or stealing/freezing user funds.LowImpact
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.
Out of Scope & Rules
Within the defined scope above, the general rules are that
The bug bounty is based on the following assumptions about token behavior:
- External token contracts (for collateral and principal currency) are assumed to follow relevant token standards (ERC20, ERC721, ERC1155).
- Any attack related to token upgradeability is out of scope.
- Lost principal or fees related to fee-on-transfer tokens are out of scope.
- Attacks related to special admin permission of tokens (e.g. an ERC721 or ERC20 where admins can transfer any user’s tokens) are out of scope.
- Attacks related to explicitly malicious implementations of standard token functions (e.g. ERC20 tokens that consume the block gas limit on transfer) are out of scope.
The bug bounty assumes the following operational and trust models:
- For any contract which is Ownable or contains privileged operations for certain addresses (e.g. upgradeable contracts), the owner addresses are assumed to behave rationally and honestly.
- All contracts should be assumed to be deployed and configured correctly.
- Each counterparty in the loan process is assumed to act in their own financial self-interest.
- Users in the staking process are assumed to act in their own financial self-interest.
- Any finding or impact which is derived from one of the above assumptions being broken (e.g., an upgradeable ERC20 that can be made to fail on transfer via upgrade) is out of scope for this program.
Any finding or impact which is derived from one of the above assumptions being broken (e.g., an ERC721 that does not revert on a failed transfer, or an upgradeable ERC20 that can be made to fail on transfer via upgrade) is out of scope for this program.
Any finding based on one counterparty misleading the other as to the nature of the loan principal or collateral is out of scope. For instance, a borrower using a fake BAYC contract as collateral to trick a lender into giving favorable terms is an attack that is out of scope for this program.
Any attack related to convincing lenders to lend against assets flagged as stolen on other platforms (e.g. OpenSea) is out of scope.
Any phishing attack that requires social engineering in order to convince one counterparty to enter a loan under false pretenses (e.g. forcing them to sign loan terms differing from ones on a phishing UI), is considered out of scope for this program.
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)
- Any attack that has been previously reported, whether or not it has been publicly disclosed
Smart Contracts
- 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
- Centralization risks
- Non-protocol related attacks around signatures (e.g. phishing sites that entice users to sign signatures with unfavorable terms)
The following activities are prohibited by this 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