# Ripple Custody 1.25 (October 1, 2025)

Version 1.25 is a SaaS release that introduces two new Ripple Custody features:

- Addition of transaction orders to the referenceable objects
- Corrected balance reservation logic to prevent double-counting


## Addition of transaction orders to the referenceable objects

Ripple Custody v1.25 adds transaction orders to the list of referenceable objects. This lets you use the data contained in transaction orders in policies.

For example, you can use this to create a policy that could compare a transaction order against a template and re-issue the  transaction order if it deviates from the expected pattern.

## Corrected balance reservation logic to prevent double-counting

In Ripple Custody v1.25, the balance calculation logic has been updated to resolve an issue that could cause a temporary, incorrect reporting of the `Available` balance. Pre v1.25, a double-counting error occurred during the time between a transaction being mined and reaching finality, potentially blocking valid subsequent transactions.

Our new logic reconciles the internal balance immediately upon successful mining of a transaction. Once the transaction is included in a block, Ripple Custody clears the `Reserved` amount, and reduces the `Total` is reduced by the transaction amount in the internal ledger. This ensures that the `Available` balance is accurate.

### Example scenario

* **Wallet original balance**: 10 ETH
* **Transaction**: send 6 ETH


Previous Logic
The table below shows the incorrect balance calculation that occurred after a transaction was mined. Notice how the `Available` balance incorrectly becomes negative at Step 4.

| Step | Description | Total | Reserved | Available |
|  --- | --- | --- | --- | --- |
| 1 | Initiate transaction (create intent) | 10 ETH | 0 ETH | 10 ETH |
| 2 | Transaction 1 status “**Reserved**” or payload built | 10 ETH | 6 ETH | 4 ETH |
| 3 | Transaction is broadcasted **(mempool ETH / not detected)** | 10 ETH | 6 ETH | 4 ETH |
| 4 | Transaction is mined (1 block) | 4 ETH | 6 ETH | **-2 ETH** |
| 5 | Transaction is confirmed (N blocks) | 4 ETH | 0 ETH | 4 ETH |


New Logic
The table below shows the corrected logic. The `Available` balance is now calculated correctly immediately after the transaction is mined at Step 4.

| Step | Description | Total | Reserved | Available |
|  --- | --- | --- | --- | --- |
| 1 | Initiate transaction (create intent) | 10 ETH | 0 ETH | 10 ETH |
| 2 | Transaction 1 status “**Reserved**” or payload built | 10 ETH | 6 ETH | 4 ETH |
| 3 | Transaction is broadcasted **(mempool ETH / not detected)** | 10 ETH | 6 ETH | 4 ETH |
| 4 | Transaction is mined (1 block) | 4 ETH | 0 ETH | **4 ETH** |
| 5 | Transaction is confirmed (N blocks) | 4 ETH | 0 ETH | 4 ETH |


## Distribution and deployment

The 1.25 version will be progressively deployed across SaaS environments starting on October 1, 2025 with production environments scheduled for deployment on October 15, 2025.

### Activation and support

Ripple takes great care in testing its applications and ensuring that there are no regressions or breaking changes. Should you experience unexpected behavior, reach out to the Support team by creating a ticket on our [Support Portal](https://metaco.atlassian.net/servicedesk/customer/portal/1) or contact your Customer Partner Engineer (CPE).