Arcade.xyz
Submit a BugProgram 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://www.arcade.xyz/.
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
- Up to USD $50,000
- Payout
- High
- Level
- USD $20,000
- Payout
- Medium
- Level
- USD $5,000
- 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
All smart contracts of Arcade.xyz can be found at https://github.com/arcadexyz/arcade-protocol/tree/main/contracts. 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
- 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
- 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
- Any finding which impacts protocol logic without circumventing loan rules or stealing/freezing user fundsLowImpact
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 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.
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