
The XRP Ledger (XRPL) is a decentralized layer 1 blockchain renowned for its decade-long reliability and stability in tokenizing and exchanging crypto-native and real-world assets. This contest covers upcoming protocol level features: Batch, Permission Delegation, MPT DEX, Confidential Transfer, Sponsored Fees and Reserves.
Scope
On what chains are the smart contracts going to be deployed?
XRP Ledger (XRPL)
If you are integrating tokens, are you allowing only whitelisted tokens to work with the codebase or any complying with the standard? Are they assumed to have certain properties, e.g. be non-reentrant? Are there any types of weird tokens you want to integrate?
None
Are there any limitations on values set by admins (or other roles) in the codebase, including restrictions on array lengths?
Public APIs are typically hosted/exposed by public servers, and not UNL Validators. Admins of public servers are considered trusted within their own infrastructure.
UNL validators are considered trusted and will not maliciously deploy incorrect versions or altered source code.
MPT and IOU Token issuers are considered trusted for their own token issuances, and they will not maliciously use compliance-intended features like freeze, lock, clawback, etc. to affect token holders.
PoCs should consist of only public transactions and public APIs. They cannot contain altered rippled/xrpl source code, as that requires malicious intent by public server admins or UNL Validators. Public server admins are all admin roles in general and they're considered trusted.
Are there any limitations on values set by admins (or other roles) in protocols you integrate with, including restrictions on array lengths?
No
Is the codebase expected to comply with any specific EIPs?
Batch: https://xls.xrpl.org/xls/XLS-0056-batch.html
Permission Delegation: https://xls.xrpl.org/xls/XLS-0075-permission-delegation.html
MPT DEX: https://xls.xrpl.org/xls/XLS-0082-mpt-dex.html
Confidential Transfers for MPT: https://xls.xrpl.org/xls/XLS-0096-confidential-mpt.html and https://xls.xrpl.org/xls/XLS-0094-dynamic-MPT.html
Sponsored Fees and Reserves: https://xls.xrpl.org/xls/XLS-0068-sponsored-fees-and-reserves.html
Breaking the spec from the above XLS can qualify as Low severity even if impact is non-monetary (unless it conflicts with common sense).
Are there any off-chain mechanisms involved in the protocol (e.g., keeper bots, arbitrage bots, etc.)? We assume these mechanisms will not misbehave, delay, or go offline unless otherwise specified.
None
What properties/invariants do you want to hold even if breaking them has a low/unknown impact?
Invariants in codebase will throw an error when broken, and these codebase invariants should hold. Breaking the invariant can qualify as Low severity even if impact is non-monetary (unless it conflicts with common sense).
Please discuss any design choices you made.
FAQ of XLS specs will cover common design choice questions
Please provide links to previous audits (if any) and all the known issues or acceptable risks.
Any public reported GitHub Issue in https://github.com/XRPLF/rippled/issues or https://github.com/XRPLF/mpt-crypto/issues , or GitHub PR opened in https://github.com/XRPLF/rippled/pulls or https://github.com/XRPLF/mpt-crypto/pulls , before the program start date (April 13th 3:00 PM UTC), would be considered a known issue for the codebase in general.
Previous audits for XRPL can be found at:
Please list any relevant protocol resources.
Build instructions:
https://github.com/XRPLF/rippled/blob/ripple/attackathon-april-2026/BUILD.md along with configuring amendment voting to XRPL mainnet plus all amendments described in commit https://github.com/XRPLF/rippled/commit/ac4f14298a8b64f3b1dec22e7abee86814a119e3
Confidential Transfer resources:
This utility https://github.com/XRPLF/mpt-crypto/blob/bdada902cdd0d27f84abee70037bba8656845ea1/src/utility/mpt_utility.cpp can be used to generate proofs needed to submit transaction related to Confidential Transfers for MPT
Additional audit information.
Determining valid finding:
A valid finding must demonstrate new impact or significantly elevated impact in "Current version" in comparison to "Previous Version", and must include a coded PoC that contains transactions and/or APIs that relate to a feature's XLS spec. Coded PoCs are mandatory for any issue of any severity.
Issues included:
Issues excluded:
Existed before the upgrade and doesn’t lead to higher impact, or the impact remains unchanged.
Examples:
Out of scope findings can be directly reported to Ripple's existing general Bug Bounty program: https://ripple.com/legal/bug-bounty/
Labelling confirmed findings to feature:
Please label each confirmed finding with the feature(s) that are relevant. Common ways to determine labelling would be looking at the Transaction types or API method in the PoC, and comparing that to the feature XLS spec that contains a list of new/adjusted transactions and APIs. Please mention the relevant feature at the start of the report. This labelling will help the triage team accurately determine validity.
The contest will use the following severity definitions:
Direct loss of funds without (extensive) limitations of external conditions. The loss of the affected party must exceed 20% and 100 USD.
Examples:
Users lose more than 20% and more than $100 of their principal.
Users lose more than 20% and more than $100 of their yield.
The protocol loses more than 20% and more than $100 of the fees.
Direct loss of funds without (extensive) limitations of external conditions. The loss of the affected party must exceed 5% and 50 USD.
Examples:
Users lose more than 5% and more than $50 of their principal.
Users lose more than 5% and more than $50 of their yield.
The protocol loses more than 5% and more than $50 of the fees.
Causes a loss of funds but requires certain external conditions or specific states, or a loss is highly constrained. The loss of the affected part must exceed 1% and 10 USD.
Breaks core contract functionality, rendering the contract useless or leading to loss of funds of the affected party that exceeds 1% and 10 USD.
Examples:
Users lose more than 1% and more than $10 of their principal.
Users lose more than 1% and more than $10 of their yield.
The protocol loses more than 1% and more than $10 of the fees.
Causes a loss of funds (either due to an attack or broken functionality), but requires extreme external conditions or specific states, or a loss is highly constrained. The loss of the affected part must exceed 0.01% and 10 USD.
Breaks the invariants or the XLS spec, even without monetary impact, unless it conflicts with common sense.
Examples:
Users lose more than 0.01% and more than $10 of their principal.
Users lose more than 0.01% and more than $10 of their yield.
The protocol loses more than 0.01% and more than $10 of the fees.
Note: If a single attack can cause a 0.01% loss but can be replayed indefinitely, it may be considered a 100% loss and can be of higher severity, depending on the constraints.
The contest covers 5 features.
Each feature can unlock part of the reward pool depending on the highest valid severity found in that feature. The features include:
The feature where the issue is will be considered based on the root cause. If the issue touches several features, the exact root cause of the issue will determine which feature pot is unlocked. For example, if the issue touches Batch and Confidential Transfers features, but the root cause of the issue is inside the Batch feature, then it's considered an issue in the Batch feature.
Pool unlocked per feature
For each feature, the unlocked amount is:
These numbers come from dividing the total severity pools equally across the 5 features:
Note: the contest pools include Lead Senior Watson (LSW) and Lead Judge (LJ) fixed pays
Important rule
For each feature, only the highest valid severity found in that feature determines how much of the pool is unlocked.
That means:
After the total unlocked pot is determined, it is distributed across all valid findings using the standard contest severity weights.
Severity weights used for payout
Total Rewards
Contest Pool
Lead Senior Watson
Lead Judge
519,000 USDC
25,000 USDC
6,000 USDC
Status
Scope
Start Time
End Time
Judging Rules