How we grade ways to earn on XRP and RLUSD

Every option on the Yield Desk gets a risk grade from A to F. The grade counts how many things stand between you and your money, judged only from public data: who holds the keys, how many contracts and bridges are involved, how big and how old it is, whether it has been audited, how its rate and size have behaved, and how concentrated it is.

General information for everyone, not personal advice. We are never paid by the products we grade and take no commission on deposits. A risk grade is not a credit rating or a recommendation.

What a risk grade is not

It is not advice, a recommendation or a credit rating, and it does not say whether a rate is worth it for you. A high grade means fewer visible risks, not no risk. Nobody pays for a grade, we take no commission on deposits, and every product is graded with the same rules.

The scale

Every option starts at 100 points and loses points for each risk below. A = 85 or more, B = 70–84, C = 55–69, D = 40–54, F = under 40.

Custody

  • Funds sit in a smart contract (you keep your wallet keys, but the code controls the money): −10. [CUSTODY_CONTRACT]
  • A company holds the keys to the deposited funds: −25. [CUSTODY_CUSTODIAN]
  • Funds sit in an exchange account; the exchange holds the keys: −25. [CUSTODY_EXCHANGE]

Contract and bridge risk

  • Each extra smart-contract protocol stacked on top of another (for example a fixed-rate token built on a staking vault): −5 per extra layer. [LAYERS]
  • Your XRP is turned into FXRP on Flare through FAssets (backed by collateralized agents): −10. [BRIDGE_FASSETS]
  • FXRP is bridged again to another chain (LayerZero): a further −5. [BRIDGE_MULTI]
  • XRP on another chain is an IOU issued by one company (for example Binance-Peg XRP): −10. [BRIDGE_PEG]

Size

  • Money in the product: under $1M −15; $1M–$10M −8; $10M–$50M −3; $50M or more 0. Unknown size −10 (exchange products: the exchange's own reserves are used instead). [SIZE]

Age

  • Time since launch: under 90 days −15; under 1 year −8; under 2 years −3; 2 years or more 0. Unknown −10. [AGE]

Audits

  • Smart-contract or custodial products with no public security audit we can link to: −10. Custodial products with no public proof of reserves: a further −5. Exchanges are not scored on this. [AUDITS]

Track record

  • More than half the rate is paid in a separate reward token, which can stop or lose value: −8. [REWARD_HEAVY]
  • A rate above 20% a year: −10. Rates that high usually come with risk that isn't visible in the numbers. [RATE_HIGH]
  • The rate moved by more than half (up or down) between the last 7 days and the 30 days before (needs 14+ days of our own history): −5. [RATE_UNSTABLE]
  • Money in the product fell by more than 30% in the last 30 days (needs 14+ days of our own history): −8. [SHRINKING]

Concentration

  • A two-token pool: if one token's price moves against the other you can end up with less than if you had just held (impermanent loss): −10. [IL]
  • The strategy depends on one outside company or exchange to hold or trade the funds: −5. [CONCENTRATION_ONE_VENUE]

Withdrawal

  • Withdrawals take more than 3 days, or the money is locked until a fixed date: −5. [LOCKUP]

Where the numbers come from

  • XRPL AMM pools: the pool's size from the ledger (amm_info); fee income by adding up the trading fee on every trade through the pool over the last 7 days.
  • Doppler Finance: its public API — vault balances and the rate it paid each week.
  • Firelight stXRP: the vault contract on Flare, read directly. The rate is how much one stXRP share has grown, per year.
  • Other DeFi: DefiLlama's public yields API (rates, size, reward share) and protocol list (audits, age).
  • Exchanges: their public rate pages. Exchanges don't publish per-product size, so we use the exchange's total on-chain reserves.
  • XRPL lending vaults (once live): graded with the XRPL Lending method, which looks at the loans themselves.

Everything refreshes every hour. Track-record rules start applying once we have 14 days of our own readings.

Method version yield-grade-v1; any change to a rule or a point value gets a new version number.