Royco
  • Overview
    • Introduction to Royco
    • Key Concepts
    • Applications
  • FOR USERS
    • FAQs
    • How to Use Royco
  • FOR INCENTIVE PROVIDERS
    • Developer Overview
      • Fees on Royco
    • Recipes vs. Vaults IAMs
    • Create an IAM
    • Incentivize IAMs
      • Types of Incentives
      • Place an Incentive Offer
      • Place an Incentive Offer: For Developers
      • Setup a Points Campaign
      • Native Yield
    • Verify a Market
    • Audits
    • Contract Addresses
  • How to fetch incentive data from Royco
  • MORE
    • Bug Bounty Program
    • Cross-Chain Deposit Module (CCDM)
      • CCDM Recipe IAMs
      • Deposit Locker
      • Deposit Executor
      • Token Support
      • Audits
      • IP Guide
    • Royco V2
      • Incentive Locker
      • Action Verifiers
      • Multiplier Market Hub
      • Audit
    • Royco SDK
    • Contributing to the Protocol
    • Brand Kit
  • Royco Vaults
    • Royco Vaults: Overview
  • Royco Vaults: Risks
Powered by GitBook
On this page
  1. FOR INCENTIVE PROVIDERS

Verify a Market

A list of markets is maintained here: https://github.com/roycoprotocol/royco-sdk/tree/4bc60dc835c5b3ca620fb226464c31cb9ccfcfa1/sdk/constants/market-map

Baseline Requirments 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 Royco your working directory: cd royco

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

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

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

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

PreviousNative YieldNextAudits

Last updated 13 days ago

Make sure you have Foundry installed locally:

Clone the Royco repo locally:

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

https://book.getfoundry.sh/getting-started/installation
https://github.com/roycoprotocol/royco
here
https://t.me/bharat_vish