Verify a Market

You can search for verified markets from the following endpoint:

using the following body:

{

     "filters": [
        {
            "id": "isVerified",
            "value": true,
            "condition": "eq"
        }
    ]
 
}

Baseline Requirements for All Market Verifications:

  1. Name/Description of the Market must match the onchain actions of the Market.

  2. User must be able to deposit (ie. $5)

  3. User must be able to withdraw or simulate withdraw (ie. $5)

  4. Deposit and withdrawal flow must not result in the user losing any funds e.g. from slippage

Requirements for Vault Market Verification:

When wrapping a vault for use in a Royco Vault Market, it must be confirmed that the underlying vault is a vanilla 4626 deployment with no bespoke functionalities that alter or impede the core 4626 functionalities. To be specific, the following requirements must hold:

  • asset() function doesn’t revert

  • deposit() function doesn’t revert

  • convertToAssets() function doesn’t revert

  • Working previewDeposit() function with accurate return value

  • ERC20 functionality intact

  • withdraw() function must return exactly quantity token to the withdrawer immediately

  • Working maxWithdraw() function with accurate return value

Requirements for Recipe Market Verification:

Markets using Enso shortcuts must execute the following steps:

  1. Enso shortcut is created, simulated and reviewed by Enso team + relevant parties

  2. IP creates the Royco Recipe Market, all relevant parties review input asset + timelock

  3. Automated RecipeVerifier (see below) is ran, reviewed by all relevant parties

For markets onboarded on-call:

  1. Recipe is built and reviewed on call

  2. IP creates the Royco Recipe Market, all relevant parties review input asset + timelock

  3. Automated RecipeVerifier (see below) is ran, reviewed by all relevant parties

For self-serve markets:

  1. Recipe is built and screenshotted by market creator

  2. Screenshot of the recipe builder is sent to Royco team

  3. IP creates the Royco Recipe Market, all relevant parties review input asset + timelock

  4. Automated RecipeVerifier (see below) is ran, reviewed by all relevant parties

Requirements for Vault Allocation Eligibility:

For a Royco market to be eligible for a Royco Vault to deposit into it, there are further requirements

  • Entering and exiting the market does not involve swapping into any assets that are not 1:1 with the vault deposit token.

  • Vault can securely support (ie has a DecoderAndSanitizer) entering into the deposit asset of the market and exiting the withdrawal asset of the market into the vault's deposit token.

  • The market must be able to facilitate large movements in and out on the scale of the vault's size.

  • After a new market has been whitelisted for vault entry, there is a delay before to allow vault depositors to ragequit if they oppose the new market.

Automated Recipe IAM Testing:

In order, to ensure that your Recipe IAM's deposit and withdrawal recipes are working as expected, follow these steps to visualize and validate the flow of your recipes.

  1. Make sure you have Foundry installed locally: https://book.getfoundry.sh/getting-started/installation

  2. Clone the Royco repo locally: https://github.com/roycoprotocol/royco

  3. Make Royco your working directory: cd royco

  4. Navigate to test/verification/RecipeVerifier.t.sol in a code editor.

  5. Update the setUp function to match your market's market hash, network (RPC URL), and the network's RecipeMarketHub address

  6. Run: forge test --mc RecipeVerifier -vvv

  7. Analyze the logs to ensure that the recipes are working as expected.

To verify your market: Submit this form with your market information: here. Once submitted, reach out to: https://t.me/royco_support_bot. Markets are typically verified within 24 hours.

Last updated