diff --git a/.env b/.env index 5edbbb2e36..d8721f4191 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ PUBLIC_GITHUB_FORK=https://github.com/XRPLF/xrpl-dev-portal PUBLIC_GITHUB_BRANCH=master -PUBLIC_OWNER_RESERVE=2 XRP -PUBLIC_BASE_RESERVE=10 XRP +PUBLIC_OWNER_RESERVE=0.2 XRP +PUBLIC_BASE_RESERVE=1 XRP diff --git a/@l10n/es-ES/docs/concepts/accounts/deleting-accounts.md b/@l10n/es-ES/docs/concepts/accounts/deleting-accounts.md index 47cedd2f29..5f6e0bfce9 100644 --- a/@l10n/es-ES/docs/concepts/accounts/deleting-accounts.md +++ b/@l10n/es-ES/docs/concepts/accounts/deleting-accounts.md @@ -24,13 +24,13 @@ Para ser eliminada, una cuenta debe cumplir los siguientes requisitos: - `RippleState` - `Check` - La cuenta debe tener menos de 1000 objetos en el ledger. -- La transacción debe pagar un [coste de transacción][] especial igual al menos a la [reserva de propietario](reserves.md) de un artículo (actualmente 2 XRP). +- La transacción debe pagar un [coste de transacción][] especial igual al menos a la [reserva de propietario](reserves.md) de un artículo (actualmente {% $env.PUBLIC_OWNER_RESERVE %}). ## Coste de eliminación **Atención:** El coste de transacción de la [transacción AccountDelete][] siempre aplica cuando la transacción está incluida en un ledger validado, incluso si la transacción falla porque la cuenta no reune los requisitos para ser eliminada. Para reducir las posibilidades de pagar un coste de transacción alto si la cuenta no puede ser eliminada, utiliza la opción `fail_hard` cuando envíes una transacción AccountDelete. -A diferencia de Bitcoin y muchas otras criptomonedas, cada nueva versión de la cadena del ledger público de XRP Ledger contiene el estado completo del ledger, lo cual incrementa en tamaño con cada cuenta nueva. Por esa razón, no deberías crear nuevas cuentas XRP Ledger si no tienes necesidad. Puedes recuperar parte de los 10 XRP de la cuenta [reserva](reserves.md) eliminado la cuenta, pero destruirás por lo menos 2 XRP haciéndolo. +A diferencia de Bitcoin y muchas otras criptomonedas, cada nueva versión de la cadena del ledger público de XRP Ledger contiene el estado completo del ledger, lo cual incrementa en tamaño con cada cuenta nueva. Por esa razón, no deberías crear nuevas cuentas XRP Ledger si no tienes necesidad. Puedes recuperar parte de los {% $env.PUBLIC_BASE_RESERVE %} de la cuenta [reserva](reserves.md) eliminado la cuenta, pero destruirás por lo menos {% $env.PUBLIC_OWNER_RESERVE %} haciéndolo. Instituciones que reciben y envían valor en nombre de muchos usuarios pueden utilizar [**Source Tags** y **Destination Tags**](../transactions/source-and-destination-tags.md) para distinguir pagos desde y para sus clientes usando una (o un puñado) de cuentas en el XRP Ledger. diff --git a/@l10n/es-ES/docs/concepts/accounts/depositauth.md b/@l10n/es-ES/docs/concepts/accounts/depositauth.md index 085bc16664..2199308ab5 100644 --- a/@l10n/es-ES/docs/concepts/accounts/depositauth.md +++ b/@l10n/es-ES/docs/concepts/accounts/depositauth.md @@ -42,7 +42,7 @@ Una cuenta con Deposit Authorization activado: - **No puede** ser destinatario de [transacciones Payment][], con **las siguientes excepciones**: - Si el destinatario tiene [preautorizado](#preautorización) al remitente del pago. _(Añadido con la [enmienda DepositPreauth][])_ - - Si el balance XRP de la cuenta es igual o inferior al [requisito de reserva](reserves.md) de la cuenta, puede ser el destinatario de un pago XRP cuya cantidad `Amount` es igual o menor que el mínimo de reserva de la cuenta (actualmente 10 XRP). Esto es para prevenir a una cuenta de quedarse "atascada" no siendo posible enviar transacciones ni tampoco recibir XRP. La reserva de la cuenta del propietario no importa en este caso. + - Si el balance XRP de la cuenta es igual o inferior al [requisito de reserva](reserves.md) de la cuenta, puede ser el destinatario de un pago XRP cuya cantidad `Amount` es igual o menor que el mínimo de reserva de la cuenta (actualmente {% $env.PUBLIC_BASE_RESERVE %}). Esto es para prevenir a una cuenta de quedarse "atascada" no siendo posible enviar transacciones ni tampoco recibir XRP. La reserva de la cuenta del propietario no importa en este caso. - Puede recibir XRP de [transacciones PaymentChannelClaim][] **únicamente en los siguientes casos**: - El remitente de la transacción PaymentChannelClaim es el destino del canal de pago (payment channel). - El destino de la transacción del PaymentChannelClaim tiene [preautorizado](#preautorización) al remitente del PaymentChannelClaim. _(Añadido en la [enmienda DepositPreauth][])_ diff --git a/@l10n/es-ES/docs/concepts/accounts/index.md b/@l10n/es-ES/docs/concepts/accounts/index.md index cd00e9410f..4bbf850e8e 100644 --- a/@l10n/es-ES/docs/concepts/accounts/index.md +++ b/@l10n/es-ES/docs/concepts/accounts/index.md @@ -46,7 +46,7 @@ La forma típica de obtener una cuenta en el XRP Ledger es la siguiente: - Por ejemplo, puedes comprar XRP en un exchange privado, después retirar el XRP del exchange a la dirección que especificaste. - **Atención:** La primera vez que recibes XRP en tu propia dirección del XRP Ledger, debes pagar la [reserva de la cuenta](reserves.md) (actualmente 10 XRP), lo que bloquea esa cantidad de XRP indefinidamente. En contraste, los exchanges privados suelen almacenar todo el XRP de los clientes en unas pocas cuentas del XRP Ledger compartidas, así los clientes no tienen que pagar la reserva de cuentas individuales en el exchange. Antes de retirar XRP, considera si pagar el precio de tener tu propia cuenta en el XRP Ledger merece la pena. + **Atención:** La primera vez que recibes XRP en tu propia dirección del XRP Ledger, debes pagar la [reserva de la cuenta](reserves.md) (actualmente {% $env.PUBLIC_BASE_RESERVE %}), lo que bloquea esa cantidad de XRP indefinidamente. En contraste, los exchanges privados suelen almacenar todo el XRP de los clientes en unas pocas cuentas del XRP Ledger compartidas, así los clientes no tienen que pagar la reserva de cuentas individuales en el exchange. Antes de retirar XRP, considera si pagar el precio de tener tu propia cuenta en el XRP Ledger merece la pena. diff --git a/@l10n/es-ES/docs/concepts/accounts/reserves.md b/@l10n/es-ES/docs/concepts/accounts/reserves.md index b09442550d..bc7ae9d7b5 100644 --- a/@l10n/es-ES/docs/concepts/accounts/reserves.md +++ b/@l10n/es-ES/docs/concepts/accounts/reserves.md @@ -25,8 +25,8 @@ Los requisito de reserva consta de dos partes: Los requerimientos de reserva actuales en Mainnet son: -- Reserva base: **10 XRP** -- Reserva de propietario: **2 XRP** por artículo +- Reserva base: **{% $env.PUBLIC_BASE_RESERVE %}** +- Reserva de propietario: **{% $env.PUBLIC_OWNER_RESERVE %}** por artículo Reservas en otras redes pueden variar. diff --git a/@l10n/es-ES/docs/concepts/accounts/tickets.md b/@l10n/es-ES/docs/concepts/accounts/tickets.md index 4967187f8c..10f9fd6bf8 100644 --- a/@l10n/es-ES/docs/concepts/accounts/tickets.md +++ b/@l10n/es-ES/docs/concepts/accounts/tickets.md @@ -40,7 +40,7 @@ Más tarde, puedes enviar una transacción utilizando un Ticket específico en v Continuando con el ejemplo anterior, puedes enviar una transacción utilizando el número de secuencia 105 o cualquiera de los tres Tickets que has creado. Si envías una transacción utilizando el Ticket 103, esto eliminará el Ticket 103 del ledger. Tu próxima transacción despues de esa puede uitlizar el número de secuencia 105, el Ticket 102, o el Ticket 104. -**Atención:** Cada Ticket cuenta como un objeto separado para la [reserva de propietario](reserves.md), así que debes apartar 2 XRP por cada Ticket. (El XRP vuelve a estar disponible una vez que se haya utilizado el Ticket.) Este coste puede subir rápidamente si creas un grán número de Tickets a la vez. +**Atención:** Cada Ticket cuenta como un objeto separado para la [reserva de propietario](reserves.md), así que debes apartar {% $env.PUBLIC_OWNER_RESERVE %} por cada Ticket. (El XRP vuelve a estar disponible una vez que se haya utilizado el Ticket.) Este coste puede subir rápidamente si creas un grán número de Tickets a la vez. Como con los números de secuencia, enviar una transacción consume el Ticket _si y solo si_ la transacción es confirmada por [consenso](../consensus-protocol/index.md). Sin embargo, las transacciones que fallan en hacer lo que intentaban pueden ser confirmadas por el consenso con los [códigos de resultado de clase`tec`](../../references/protocol/transactions/transaction-results/tec-codes.md). @@ -53,7 +53,7 @@ Cualquier cuenta puede crear y utilizar Tickets en cualquier tipo de transaccion - Cada Ticket puede ser utilizado solo una vez. Es posible tener múltiples transacciones diferentes candidatas que podrían usar el mismo Ticket Secuencia, pero solo uno de esos candidatos será validado por el consenso. - Una cuenta no puede tener más de 250 Tickets en el ledger a la vez. No puedes crear más de 250 Tickets a la vez, tampoco. - _Puedes_ usar un Ticket para crear más Tickets. Si lo haces, el Ticket utilizado no cuenta para el número total de Tickets que puedes tener a la vez. -- Cada Ticket cuenta para la [reserva de propietario](reserves.md), por lo que debes apartar 2 XRP por cada Ticket que no has usado todavía. El XRP vuelve a estar disponible para ti despues de utilizar el Ticket. +- Cada Ticket cuenta para la [reserva de propietario](reserves.md), por lo que debes apartar {% $env.PUBLIC_OWNER_RESERVE %} por cada Ticket que no has usado todavía. El XRP vuelve a estar disponible para ti despues de utilizar el Ticket. - Dentro de un ledger individual, las transacciones que usan Tickets se ejecutan después que otras transacciones desde el mismo remitente. Si una cuenta tiene múltiples transacciones utilizando Tickets en la misma versión del ledger, esos Tickets se ejecutan en orden desde el Ticket con la secuencia más baja hasta la más alta. (Para más información, ver la documentación del [orden canónico](../consensus-protocol/consensus-structure.md#calculate-and-share-validations) del consenso.) - Para "cancelar" un Ticket, usa el Ticket para [realizar una operación no operativa](../transactions/finality-of-results/canceling-a-transaction.md) [transacción AccountSet][]. Esto elimina el Ticket y tu no tienes que cumplir con los requisitos de reserva. diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/fee-voting.md b/@l10n/es-ES/docs/concepts/consensus-protocol/fee-voting.md index 30488760a9..faab408406 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/fee-voting.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/fee-voting.md @@ -20,8 +20,10 @@ Los parámetros que puedes configurar son los siguientes: | Parámetro | Descripción | Valor recomendado | |-----------|-------------|-------------------| | `reference_fee` | Cantidad de XRP, en _drops_ (1 XRP = 1 millón de drops.), que debe ser destruido para enviar la transacción de referencia, la transacción más barata posible. El coste de una transacción real es un múltiplo de ese valor, escalado dinámicamente basado en la carga de de los servidores individuales. | `10` (0.00001 XRP) | -| `account_reserve` | Cantidad mínima de XRP, en _drops_, que una cuenta debe tener en reserva. Esta es la cantidad más pequeña que se puede enviar para financiar una nueva cuenta en el ledger. | `10000000` (10 XRP) | -| `owner_reserve` | XRP de más, en _drops_, que se debe poseer en una dirección por _cada_ objeto que posees en el ledger. | `2000000` (2 XRP) | +| `account_reserve` | Cantidad mínima de XRP, en _drops_, que una cuenta debe tener en reserva. Esta es la cantidad más pequeña que se puede enviar para financiar una nueva cuenta en el ledger. | `1000000` ({% $env.PUBLIC_BASE_RESERVE %}) | +| `owner_reserve` | XRP de más, en _drops_, que se debe poseer en una dirección por _cada_ objeto que posees en el ledger. | `200000` ({% $env.PUBLIC_OWNER_RESERVE %}) | + + ## Proceso de votación diff --git a/@l10n/ja/docs/concepts/accounts/reserves.md b/@l10n/ja/docs/concepts/accounts/reserves.md index 1a20588c5f..f1f914d5ee 100644 --- a/@l10n/ja/docs/concepts/accounts/reserves.md +++ b/@l10n/ja/docs/concepts/accounts/reserves.md @@ -25,8 +25,8 @@ XRP Ledgerでは、スパムや悪意のある使用によって、共有グロ メインネットにおける現在の準備金要件は次の通りです。 -- 基本準備金 **10 XRP** -- 所有者準備金 アイテムにつき**2 XRP** +- 基本準備金 **{% $env.PUBLIC_BASE_RESERVE %}** +- 所有者準備金 アイテムにつき **{% $env.PUBLIC_OWNER_RESERVE %}** 他のネットワークでの準備金は異なる場合があります。 diff --git a/@l10n/ja/docs/concepts/consensus-protocol/fee-voting.md b/@l10n/ja/docs/concepts/consensus-protocol/fee-voting.md index 333048d6e9..e1041823f4 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/fee-voting.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/fee-voting.md @@ -15,11 +15,13 @@ labels: 設定できるパラメーターは次の通りです。 -| パラメータ | 説明 | 推奨される値 | -| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | -| `reference_fee` | **リファレンストランザクションのコスト**。これは、リファレンストランザクション(最も安価なトランザクション)を送信するためにバーンしなければならないXRPの量(1 XRP = 100万ドロップ)です。実際のトランザクションコストは、個々のサーバの負荷に応じて動的に調整される、この値の倍数です。 | `10` (0.00001 XRP) | -| `account_reserve` | **基本アカウント準備金**。これは、アカウントが保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。これは、新しいアカウントを作成するための最小要件でもあります。 | `10000000` (10 XRP) | -| `owner_reserve` | **所有者準備金の増加量**。これは、アカウントがレジャー内で所有する各オブジェクトに対して保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。 | `2000000` (2 XRP) | +| パラメーター | 説明 | 推奨される値 | +|-------------------|-------------|-------------------| +| `reference_fee` | **リファレンストランザクションのコスト**。これは、リファレンストランザクション(最も安価なトランザクション)を送信するためにバーンしなければならないXRPの量(1 XRP = 100万ドロップ)です。実際のトランザクションコストは、個々のサーバの負荷に応じて動的に調整される、この値の倍数です。 | `10` (0.000010 XRP) | +| `account_reserve` | **基本アカウント準備金**。これは、アカウントが保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。これは、新しいアカウントを作成するための最小要件でもあります。 | `1000000` ({% $env.PUBLIC_BASE_RESERVE %}) | +| `owner_reserve` | **所有者準備金の増加量**。これは、アカウントがレジャー内で所有する各オブジェクトに対して保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。 | `200000` ({% $env.PUBLIC_OWNER_RESERVE %}) | + + ## 注意事項 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/reserve-requirements.md b/@l10n/ja/docs/concepts/tokens/nfts/reserve-requirements.md index fbb700ae5a..143c29b473 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/reserve-requirements.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/reserve-requirements.md @@ -29,10 +29,12 @@ NFTの保有枚数や保有ページ数によって、所有者準備金の総 | NFTの保有数 | 最良のケース | 標準的なケース | 最悪のケース | |:------------|:----------|:-------------|:-----------| -| 32以下 | 2 XRP | 2 XRP | 2 XRP | -| 50 | 4 XRP | 6 XRP | 8 XRP | -| 200 | 14 XRP | 18 XRP | 26 XRP | -| 1000 | 64 XRP | 84 XRP | 126 XRP | +| 32以下 | 0.2 XRP | 0.2 XRP | 0.2 XRP | +| 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | +| 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | +| 1000 | 6.4 XRP | 8.4 XRP | 12.6 XRP | + + ## `NFTokenOffer`の準備金 @@ -46,11 +48,10 @@ NFTをミントし、保有し、売買のオファーをする場合、必要 | 準備金の種類 | 準備金の額 | |:--------------------|--------:| -| 基本 | 10 XRP | -| NFTokenページ | 2 XRP | -| NFTokenオファー | 2 XRP | -| 合計 | 14 XRP | -| | | +| 基本 | {% $env.PUBLIC_BASE_RESERVE %} | +| NFTokenページ | {% $env.PUBLIC_OWNER_RESERVE %} | +| NFTokenオファー | {% $env.PUBLIC_OWNER_RESERVE % | +| 合計 | 1.4 XRP | {% admonition type="info" name="注記" %}準備金要件ではありませんが、ミントと売却のプロセスにおけるトランザクションの些細な手数料(通常12drops、または.000012XRP)を負担するために、少なくとも必要準備金より1XRPより多く用意しておきくべきです。{% /admonition %} @@ -58,10 +59,9 @@ NFTをミントし、保有し、売買のオファーをする場合、必要 | 準備金の種類 | 準備金の額 | |:--------------------|--------:| -| 基本 | 10 XRP | -| NFTokenページ | 26 XRP | -| NFTokenオファー | 400 XRP | -| 合計 | 436 XRP | -| | | +| 基本 | {% $env.PUBLIC_BASE_RESERVE %} | +| NFTokenページ | 2.6 XRP | +| NFTokenオファー | 40 XRP | +| 合計 | 43.6 XRP | 必要準備金の額が余裕を持って確保できる額を超える場合は、オンデマンドミントモデルを使用して、一度に保有するNFTとオファーの数を減らすことを検討してください。[オンデマンドMint](batch-minting.md#オンデマンドmint-遅延minting)をご覧ください。 diff --git a/@l10n/ja/docs/concepts/transactions/transaction-queue.md b/@l10n/ja/docs/concepts/transactions/transaction-queue.md index a2894cc46a..85b780c510 100644 --- a/@l10n/ja/docs/concepts/transactions/transaction-queue.md +++ b/@l10n/ja/docs/concepts/transactions/transaction-queue.md @@ -40,7 +40,7 @@ labels: - `AccountTxnID`フィールドが指定されているトランザクションはキューに入れることができません。 - 1つの送信側アドレスには、同時に最大10個のトランザクションを入れることができます。 - トランザクションをキューに入れるには、送信者が以下のすべてを行うのに十分なXRPを保有している必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}更新: rippled 1.2.0{% /badge %} - - キュー内のすべての送信者のトランザクションの`Fee`フィールドに指定されているXRP[トランザクションコスト](transaction-cost.md)の消却。キュー内のトランザクションの合計額は、アカウントの基本準備金(現時点では10 XRP)を超えることはできません。(トランザクションコストの支払いが最小額の0.00001 XRPを大幅に上回るトランザクションは、キューをスキップし、オープンレジャーに直接追加されます。) + - キュー内のすべての送信者のトランザクションの`Fee`フィールドに指定されているXRP[トランザクションコスト](transaction-cost.md)の消却。キュー内のトランザクションの合計額は、アカウントの基本準備金(現時点では{% $env.PUBLIC_BASE_RESERVE %})を超えることはできません。(トランザクションコストの支払いが最小額の0.00001 XRPを大幅に上回るトランザクションは、キューをスキップし、オープンレジャーに直接追加されます。) - キュー内のすべての送信者のトランザクションの送金を可能とするXRPの最大合計額の送信。 - アカウントの[必要準備金](../accounts/reserves.md)を確保するのに十分なXRPの保有。 - あるトランザクションが、送信側アドレスがトランザクションを承認する方法に影響する場合、同じアドレスからの他のトランザクションをそのトランザクションの後にキューに入れることはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md index 5f7f584c35..64b4e72022 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md @@ -96,10 +96,12 @@ _([NonFungibleTokensV1_1 amendment][]により追加されました)_ | 所有NFTの数 | 最良のケース | 一般 | 最悪のケース | |:------------|:----------|:--------|:-----------| -| 32以下 | 2 XRP | 2 XRP | 2 XRP | -| 50 | 4 XRP | 6 XRP | 8 XRP | -| 200 | 14 XRP | 18 XRP | 26 XRP | -| 1000 | 64 XRP | 84 XRP | 126 XRP | +| 32以下 | 0.2 XRP | 0.2 XRP | 0.2 XRP | +| 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | +| 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | +| 1000 | 6.4 XRP | 8.4 XRP | 12.6 XRP | + + これらの数字は推定であり、実際の数字とは異なる場合があります。 diff --git a/@l10n/ja/docs/use-cases/tokenization/nft-mkt-overview.md b/@l10n/ja/docs/use-cases/tokenization/nft-mkt-overview.md index 7e304f4bf0..cd16efe8d0 100644 --- a/@l10n/ja/docs/use-cases/tokenization/nft-mkt-overview.md +++ b/@l10n/ja/docs/use-cases/tokenization/nft-mkt-overview.md @@ -77,7 +77,7 @@ NFTokenのURLは、NFTのコンテンツが保存されている場所へのリ 新しいウォレットをセットアップします。[Xaman](https://xaman.app/)をご覧ください。 -アカウントを作成する際には、10 XRPの基本準備金が必要であることに注意してください。[準備金](../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve)をご覧ください。 +アカウントを作成する際には、{% $env.PUBLIC_BASE_RESERVE %}の基本準備金が必要であることに注意してください。[準備金](../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve)をご覧ください。 ### NFTの取引 diff --git a/blog/2024/lower-reserves-are-in-effect.md b/blog/2024/lower-reserves-are-in-effect.md new file mode 100644 index 0000000000..4fe6adfaa0 --- /dev/null +++ b/blog/2024/lower-reserves-are-in-effect.md @@ -0,0 +1,37 @@ +--- +category: 2024 +markdown: + editPage: + hide: true +date: 2024-12-11 +labels: + - Advisories +--- +# Lower Reserves Are In Effect + +On 2024-12-02, the reserve requirements for using the XRP Ledger blockchain changed by the collective voting of the validators. The new requirements are **1 XRP** base reserve per account (down from 10 XRP), and **0.2 XRP** owner reserve increment per item (down from 2 XRP). + +The base cost of sending a transaction (10 drops) remains unchanged. + +## Background + +The XRP Ledger has [reserves](../../docs/concepts/accounts/reserves.md) and a [transaction cost](../../docs/concepts/transactions/transaction-cost.md) to protect the network from spam. The protocol includes a [fee voting](../../docs/concepts/consensus-protocol/fee-voting.md) process for changing both the reserves and transaction cost, to adjust for external factors like the price of XRP and the costs of operating a network node. + +Validators in the decentralized network can configure their fee voting preferences. They need to balance competing priorities of having lower fees to reduce the barrier to entry, but higher fees to protect against overly frivolous or disruptive usage. The network collectively decides on fees based on the votes of trusted validators, with each node advocating for the median of votes from validators it trusts. + +The last time fees changed was [in 2021, when reserves dropped from 20 base and 5 per item to 10 base and 2 per item](../2021/reserves-lowered.md). + +## Action Recommended + +### FeeSettings Format + +Due to the [XRPFees amendment](../../resources/known-amendments.md#xrpfees), the format of the `FeeSettings` ledger entry changed when the new reserve settings went into effect. If you have code that reads the `FeeSettings` ledger entry directly, make sure your code is capable of reading the new format. + +Code that uses the `fee`, `server_info`, or `server_state` API methods should continue to work as before. + +### Fee Volatility + +Currently, votes among recommended validators on Mainnet are divided among a few different preferred settings for reserves and the transaction cost. While the numbers are close to 50% one way or another, a validator temporarily going offline could cause the median vote to move, causing the fee settings to change again temporarily; validators changing their votes could also cause further fee movements in the near future. To be prepared for any future possible movements in both the reserve requirements and transaction cost, you should: + +- Instead of hard-coding reserve requirements or transaction costs, look up the necessary settings using the [`fee` API method](../../docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md). +- Consider holding more XRP than the minimum, so that your account still meets the requirements if reserves go back up. diff --git a/blog/sidebars.yaml b/blog/sidebars.yaml index 6dda3f8c01..43abc1d969 100644 --- a/blog/sidebars.yaml +++ b/blog/sidebars.yaml @@ -6,7 +6,8 @@ - group: '2024' expanded: false items: - - page: 2024/a-new-era-for-the-xrp-ledger.md + - page: 2024/lower-reserves-are-in-effect.md + - page: 2024/a-new-era-for-the-xrp-ledger.md - page: 2024/rippled-2.3.0.md - page: 2024/rippled-2.2.3.md - page: 2024/rippled-2.2.2.md diff --git a/docs/concepts/accounts/deleting-accounts.md b/docs/concepts/accounts/deleting-accounts.md index 944589e9b9..b1a8414e43 100644 --- a/docs/concepts/accounts/deleting-accounts.md +++ b/docs/concepts/accounts/deleting-accounts.md @@ -25,13 +25,13 @@ To be deleted, an account must meet the following requirements: - `RippleState` - `Check` - The account must own fewer than 1000 objects in the ledger. -- The transaction must pay a special [transaction cost][] equal to at least the [owner reserve](reserves.md) for one item (currently 2 XRP). +- The transaction must pay a special [transaction cost][] equal to at least the [owner reserve](reserves.md) for one item (currently {% $env.PUBLIC_OWNER_RESERVE %}). ## Cost of Deleting {% admonition type="danger" name="Warning" %}The [AccountDelete transaction][]'s transaction cost always applies when the transaction is included in a validated ledger, even if the transaction failed because the account does not meet the requirements to be deleted. To greatly reduce the chances of paying the high transaction cost if the account cannot be deleted, use the `fail_hard` option when submitting an AccountDelete transaction.{% /admonition %} -Unlike Bitcoin and many other cryptocurrencies, each new version of the XRP Ledger's public ledger chain contains the full state of the ledger, which increases in size with each new account. For that reason, you should not create new XRP Ledger accounts unless necessary. You can recover some of an account's 10 XRP [reserve](reserves.md) by deleting the account, but you must still destroy at least 2 XRP to do so. +Unlike Bitcoin and many other cryptocurrencies, each new version of the XRP Ledger's public ledger chain contains the full state of the ledger, which increases in size with each new account. For that reason, you should not create new XRP Ledger accounts unless necessary. You can recover some of an account's {% $env.PUBLIC_BASE_RESERVE %} [reserve](reserves.md) by deleting the account, but you must still destroy at least {% $env.PUBLIC_OWNER_RESERVE %} to do so. Institutions who send and receive value on behalf of many users can use [**Source Tags** and **Destination Tags**](../transactions/source-and-destination-tags.md) to distinguish payments from and to their customers while only using one (or a handful) of accounts in the XRP Ledger. diff --git a/docs/concepts/accounts/depositauth.md b/docs/concepts/accounts/depositauth.md index b097e96b6f..d58522dbec 100644 --- a/docs/concepts/accounts/depositauth.md +++ b/docs/concepts/accounts/depositauth.md @@ -42,7 +42,7 @@ An account with Deposit Authorization enabled: - **Cannot** be the destination of [Payment transactions][], with **the following exceptions**: - If the destination has [preauthorized](#preauthorization) the sender of the Payment. _(Added by the [DepositPreauth amendment][])_ - - If the account's XRP balance is equal to or below the minimum account [reserve requirement](reserves.md), it can be the destination of an XRP Payment whose `Amount` is equal or less than the minimum account reserve (currently 10 XRP). This is to prevent an account from becoming "stuck" by being unable to send transactions but also unable to receive XRP. The account's owner reserve does not matter for this case. + - If the account's XRP balance is equal to or below the minimum account [reserve requirement](reserves.md), it can be the destination of an XRP Payment whose `Amount` is equal or less than the minimum account reserve (currently {% $env.PUBLIC_BASE_RESERVE %}). This is to prevent an account from becoming "stuck" by being unable to send transactions but also unable to receive XRP. The account's owner reserve does not matter for this case. - Can receive XRP from [PaymentChannelClaim transactions][] **only in the following cases**: - The sender of the PaymentChannelClaim transaction is the destination of the payment channel. - The destination of the PaymentChannelClaim transaction has [preauthorized](#preauthorization) the sender of the PaymentChannelClaim. _(Added by the [DepositPreauth amendment][])_ diff --git a/docs/concepts/accounts/index.md b/docs/concepts/accounts/index.md index ce2fbfd017..6928418d05 100644 --- a/docs/concepts/accounts/index.md +++ b/docs/concepts/accounts/index.md @@ -46,7 +46,7 @@ The typical way to get an account in the XRP Ledger is as follows: - For example, you can buy XRP in a private exchange, then withdraw XRP from the exchange to the address you specified. - {% admonition type="warning" name="Caution" %}The first time you receive XRP at your own XRP Ledger address, you must pay the [account reserve](reserves.md) (currently 10 XRP), which locks up that amount of XRP indefinitely. In contrast, private exchanges usually hold all their customers' XRP in a few shared XRP Ledger accounts, so customers don't have to pay the reserve for individual accounts at the exchange. Before withdrawing, consider whether having your own account directly on the XRP Ledger is worth the price.{% /admonition %} + {% admonition type="warning" name="Caution" %}The first time you receive XRP at your own XRP Ledger address, you must pay the [account reserve](reserves.md) (currently {% $env.PUBLIC_BASE_RESERVE %}), which locks up that amount of XRP indefinitely. In contrast, private exchanges usually hold all their customers' XRP in a few shared XRP Ledger accounts, so customers don't have to pay the reserve for individual accounts at the exchange. Before withdrawing, consider whether having your own account directly on the XRP Ledger is worth the price.{% /admonition %} diff --git a/docs/concepts/accounts/reserves.md b/docs/concepts/accounts/reserves.md index fc17a33455..bcfd4e8e5c 100644 --- a/docs/concepts/accounts/reserves.md +++ b/docs/concepts/accounts/reserves.md @@ -27,12 +27,12 @@ The reserve requirement has two parts: The current reserve requirements on Mainnet are: -- Base reserve: **1 XRP** -- Owner reserve: **0.2 XRP** per item +- Base reserve: **{% $env.PUBLIC_BASE_RESERVE %}** +- Owner reserve: **{% $env.PUBLIC_OWNER_RESERVE %}** per item Reserves on other networks may vary. -An exception to the owner reserve is that you can create your first two trust lines on the XRPL without the required reserves of 2 XRP per trust line. Create your new account with the 10 XRP base reserve, then create your 2 trust lines and the reserves are not required. If you fund your account with more than 10 XRP, your account will be charged the normal reserve fees for your first two trust lines. +An exception to the owner reserve is that you can create your first two trust lines on the XRPL with just the base reserve. Create your new account with the {% $env.PUBLIC_BASE_RESERVE %} base reserve, then you can create your 2 trust lines and the reserves are not required. If you fund your account with more than {% $env.PUBLIC_BASE_RESERVE %}, your account will be charged the normal reserve fees for your first two trust lines. ## Owner Reserves diff --git a/docs/concepts/accounts/tickets.md b/docs/concepts/accounts/tickets.md index aa3a3e114e..fc86ebe84a 100644 --- a/docs/concepts/accounts/tickets.md +++ b/docs/concepts/accounts/tickets.md @@ -40,7 +40,7 @@ Later, you can send a transaction using a specific Ticket instead of a sequence Continuing the above example, you can send a transaction using sequence number 105 or any of the three Tickets you created. If you send a transaction using Ticket 103, doing so deletes Ticket 103 from the ledger. Your next transaction after that can use sequence number 105, Ticket 102, or Ticket 104. -{% admonition type="warning" name="Caution" %}Each Ticket counts as a separate item for the [owner reserve](reserves.md), so you must set aside 2 XRP for each Ticket. (The XRP becomes available again after you use the Ticket.) This cost can add up quickly if you create a large number of Tickets at once.{% /admonition %} +{% admonition type="warning" name="Caution" %}Each Ticket counts as a separate item for the [owner reserve](reserves.md), so you must set aside {% $env.PUBLIC_OWNER_RESERVE %} for each Ticket. (The XRP becomes available again after you use the Ticket.) This cost can add up quickly if you create a large number of Tickets at once.{% /admonition %} As with sequence numbers, sending a transaction uses up the Ticket _if and only if_ the transaction is confirmed by [consensus](../consensus-protocol/index.md). However, transactions that fail to do what they were intended to do can still be confirmed by consensus with [`tec`-class result codes](../../references/protocol/transactions/transaction-results/tec-codes.md). @@ -53,7 +53,7 @@ Any account can create and use Tickets on any type of transaction. However, some - Each Ticket can only be used once. It is possible to have multiple different candidate transactions that would use the same Ticket Sequence, but only one of those candidates can be validated by consensus. - Each account cannot have more than 250 Tickets in the ledger at a time. You cannot create more than 250 Tickets at a time, either. - You _can_ use a Ticket to create more Tickets. If you do, the Ticket you used does not count towards the total number of Tickets you can have at once. -- Each Ticket counts toward the [owner reserve](reserves.md), so you must set aside 2 XRP for each Ticket you have not used yet. The XRP becomes available for you to use again after the Ticket is used. +- Each Ticket counts toward the [owner reserve](reserves.md), so you must set aside {% $env.PUBLIC_OWNER_RESERVE %} for each Ticket you have not used yet. The XRP becomes available for you to use again after the Ticket is used. - Within an individual ledger, transactions that use Tickets execute after other transactions from the same sender. If an account has multiple transactions using Tickets in the same ledger version, those Tickets execute in order from lowest Ticket Sequence to highest. (For more information, see the documentation on consensus's [canonical order](../consensus-protocol/consensus-structure.md#calculate-and-share-validations).) - To "cancel" a Ticket, use the Ticket to [perform a no-op](../transactions/finality-of-results/canceling-a-transaction.md) [AccountSet transaction][]. This deletes the Ticket so that you don't have to meet its reserve requirement. diff --git a/docs/concepts/consensus-protocol/fee-voting.md b/docs/concepts/consensus-protocol/fee-voting.md index d3ae08fe3f..b9b8c3ccfc 100644 --- a/docs/concepts/consensus-protocol/fee-voting.md +++ b/docs/concepts/consensus-protocol/fee-voting.md @@ -18,8 +18,10 @@ The parameters you can set are as follows: | Parameter | Description | Recommended Value | |-----------|-------------|-------------------| | `reference_fee` | The **reference transaction cost.** This is the amount of XRP, in _drops_ (1 XRP = 1 million drops.), that must be destroyed to send the reference transaction, the cheapest possible transaction. The actual transaction cost is a multiple of this value, scaled dynamically based on the load of individual servers. | `10` (0.00001 XRP) | -| `account_reserve` | The **base account reserve.** This is the minimum amount of XRP, in _drops_, that an account must hold in reserve, which is also the minimum requirement to fund a new account. | `10000000` (10 XRP) | -| `owner_reserve` | The **owner reserve increment.** This is how much more XRP, in _drops_, that an account must hold for _each_ object it owns in the ledger. | `2000000` (2 XRP) | +| `account_reserve` | The **base account reserve.** This is the minimum amount of XRP, in _drops_, that an account must hold in reserve, which is also the minimum requirement to fund a new account. | `1000000` ({% $env.PUBLIC_BASE_RESERVE %}) | +| `owner_reserve` | The **owner reserve increment.** This is how much more XRP, in _drops_, that an account must hold for _each_ object it owns in the ledger. | `200000` ({% $env.PUBLIC_OWNER_RESERVE %}) | + + ## Precautions diff --git a/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md b/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md index 218f4a5137..dd21ab9abf 100644 --- a/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md +++ b/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md @@ -21,7 +21,7 @@ The transaction to authorize a trust line must be signed by the issuing address, ## Reserves -Trust lines are ledger objects that require a reserve of 2 XRP each. To help new users get started, the reserve amounts are waived for the first 2 trust lines you create for a new account. Fund your new account with 10 XRP and create your new trust lines. If you have more than 10 XRP in your account, up to 4 XRP are reserved for your first 2 trust lines. If you remove the trust line later, the reserves are freed up for future use. +Trust lines are ledger objects that require a reserve of {% $env.PUBLIC_OWNER_RESERVE %} each. To help new users get started, the reserve amounts are waived for the first 2 trust lines you create for a new account. Fund your new account with {% $env.PUBLIC_BASE_RESERVE %} and create your new trust lines. If you have more than {% $env.PUBLIC_BASE_RESERVE %} in your account, up to 0.4 XRP are reserved for your first 2 trust lines. If you remove the trust line later, the reserves are freed up for future use. ## With Stablecoin Issuing diff --git a/docs/concepts/tokens/nfts/reserve-requirements.md b/docs/concepts/tokens/nfts/reserve-requirements.md index 12b2ae7af7..0dc7a9e978 100644 --- a/docs/concepts/tokens/nfts/reserve-requirements.md +++ b/docs/concepts/tokens/nfts/reserve-requirements.md @@ -12,11 +12,11 @@ Minting, holding, and offering NFTs for sale require XRP held in reserve. The re ## Base Reserve -Your account must set aside a base reserve, currently 10 XRP. The base reserve XRP amount is subject to change. See [Base Reserve and Owner Reserve](../../accounts/reserves.md#base-reserve-and-owner-reserve). +Your account must set aside a base reserve, currently {% $env.PUBLIC_BASE_RESERVE %}. The base reserve XRP amount is subject to change. See [Base Reserve and Owner Reserve](../../accounts/reserves.md#base-reserve-and-owner-reserve). ## Owner Reserve -For each object you own on the XRP Ledger, there is an owner reserve, currently 2 XRP. This is to discourage users from spamming the ledger with unnecessary data, and to encourage them to clean up any data that is no longer necessary. The owner reserve amount is subject to change. See [Base Reserve and Owner Reserve](../../accounts/reserves.md#base-reserve-and-owner-reserve). +For each object you own on the XRP Ledger, there is an owner reserve, currently 0.2 XRP. This is to discourage users from spamming the ledger with unnecessary data, and to encourage them to clean up any data that is no longer necessary. The owner reserve amount is subject to change. See [Base Reserve and Owner Reserve](../../accounts/reserves.md#base-reserve-and-owner-reserve). For NFTs, the _object_ does not refer to the individual NFTs, but to the `NFTokenPage` objects owned by the account. `NFTokenPage` objects can store up to 32 NFTs. @@ -27,16 +27,18 @@ Therefore, you can estimate the reserve requirements for minting or owning _N_ N The following table provides examples of how much the total owner reserve might be, depending on the number of NFTs owned and the number of pages holding them. -| NFTs Owned | Best Case | Typical Case | Worst Case | +| NFTs Owned | Best Case | Typical Case | Worst Case | |:------------|:----------|:-------------|:-----------| -| 32 or fewer | 2 XRP | 2 XRP | 2 XRP | -| 50 | 4 XRP | 6 XRP | 8 XRP | -| 200 | 14 XRP | 18 XRP | 26 XRP | -| 1000 | 64 XRP | 84 XRP | 126 XRP | +| 32 or fewer | 0.2 XRP | 0.2 XRP | 0.2 XRP | +| 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | +| 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | +| 1000 | 6.4 XRP | 8.4 XRP | 12.6 XRP | + + ## `NFTokenOffer` Reserve -Each `NFTokenOffer` object costs the account placing the offer one incremental reserve. As of this writing, the incremental reserve is 2 XRP. The reserve can be recovered by cancelling the offer. The reserve is also recovered if the offer is accepted, which removes the offer from the XRP Ledger. +Each `NFTokenOffer` object costs the account placing the offer one incremental reserve. As of this writing, the incremental reserve is 0.2 XRP. The reserve can be recovered by cancelling the offer. The reserve is also recovered if the offer is accepted, which removes the offer from the XRP Ledger. {% admonition type="success" name="Tip" %}After you sell an NFT, as a courtesy, cancel any stale `NFTokenOffer` objects on behalf of your bidders to give them back their reserve. You can do this with [NFTokenCancelOffer](../../../references/protocol/transactions/types/nftokencanceloffer.md) transactions.{% /admonition %} @@ -44,26 +46,24 @@ Each `NFTokenOffer` object costs the account placing the offer one incremental r When minting, holding, and offering to buy and sell NFTs, the reserve requirements can add up quickly. This can result in your account going below the reserve requirement during a transaction. Going below the requirement can limit your ability to trade on the XRPL. See [Going Below the Reserve Requirement](../../accounts/reserves.md#going-below-the-reserve-requirement). -If you create a new account, mint an NFT, and create an `NFTokenSellOffer` on the XRP Ledger, that requires a minimum reserve of 14 XRP. +If you create a new account, mint an NFT, and create an `NFTokenSellOffer` on the XRP Ledger, that requires a minimum reserve of 1.4 XRP. | Reserve Type | Amount | |:--------------------|--------:| -| Base | 10 XRP | -| NFToken Page | 2 XRP | -| NFToken Offers | 2 XRP | -| Total | 14 XRP | -| | | +| Base | 1 XRP | +| NFToken Page | 0.2 XRP | +| NFToken Offers | 0.2 XRP | +| Total | 1.4 XRP | {% admonition type="info" name="Note" %}While not a reserve requirement, keep in mind that you would want to have at least 1 XRP above your reserves to cover the trivial fee for each transaction in the mint and sell process (typically 12 drops, or .000012 XRP).{% /admonition %} -If you were to mint 200 NFTs and create an `NFTokenSellOffer`for each, that would require as much as 436 XRP held in reserve. +If you were to mint 200 NFTs and create an `NFTokenSellOffer`for each, that would require as much as 43.6 XRP held in reserve. | Reserve Type | Amount | |:--------------------|--------:| -| Base | 10 XRP | -| NFToken Pages | 26 XRP | -| NFToken Offers | 400 XRP | -| Total | 436 XRP | -| | | +| Base | 1 XRP | +| NFToken Pages | 2.6 XRP | +| NFToken Offers | 40 XRP | +| Total | 43.6 XRP | If the required reserves exceed the amount you are comfortable setting aside, consider using the mint-on-demand model to reduce the number of NFTs and offers you hold at any one time. For details, see [Batch Minting](batch-minting.md). diff --git a/docs/concepts/tokens/nfts/trading.md b/docs/concepts/tokens/nfts/trading.md index c63b36f6ae..21d1bc6c45 100644 --- a/docs/concepts/tokens/nfts/trading.md +++ b/docs/concepts/tokens/nfts/trading.md @@ -15,7 +15,7 @@ _(Added by the [NonFungibleTokensV1_1 amendment][].)_ ## Reserve Requirements -Every `NFTokenOffer` object requires that your account increase its owner reserve, currently 2 XRP per `NFTokenSellOffer` and 2 XRP per `NFTokenBuyOffer`. This is to prevent accounts from spamming the ledger with offers they don't intend to complete. +Every `NFTokenOffer` object requires that your account increase its owner reserve, currently {% $env.PUBLIC_OWNER_RESERVE %} per `NFTokenSellOffer` and {% $env.PUBLIC_OWNER_RESERVE %} per `NFTokenBuyOffer`. This is to prevent accounts from spamming the ledger with offers they don't intend to complete. See [NFT Reserve Requirements](reserve-requirements.md). diff --git a/docs/concepts/transactions/transaction-queue.md b/docs/concepts/transactions/transaction-queue.md index e23a686ad0..3679ede9da 100644 --- a/docs/concepts/transactions/transaction-queue.md +++ b/docs/concepts/transactions/transaction-queue.md @@ -40,7 +40,7 @@ The `rippled` server uses a variety of heuristics to estimate which transactions - Transactions with an `AccountTxnID` field cannot be queued. - A single sending address can have at most 10 transactions queued at the same time. - To queue a transaction, the sender must have enough XRP for all of the following: - - Destroying the XRP [transaction cost](transaction-cost.md) as specified in the `Fee` fields of all the sender's queued transactions. The total amount among queued transactions cannot be more than the base account reserve (currently 10 XRP). (Transactions paying significantly more than the minimum transaction cost of 0.00001 XRP typically skip the queue and go straight into the open ledger.) + - Destroying the XRP [transaction cost](transaction-cost.md) as specified in the `Fee` fields of all the sender's queued transactions. The total amount among queued transactions cannot be more than the base account reserve (currently {% $env.PUBLIC_BASE_RESERVE %}). (Transactions paying significantly more than the minimum transaction cost of 0.00001 XRP typically skip the queue and go straight into the open ledger.) - Sending the maximum sum of XRP that all the sender's queued transactions could send. - Keeping enough XRP to meet the account's [reserve requirements](../accounts/reserves.md). - If a transaction affects how the sending address authorizes transactions, no other transactions from the same address can be queued behind it. diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md b/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md index 2d4e19ec25..f1869d6427 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md @@ -92,14 +92,16 @@ Since each page can hold up to 32 entries, the _effective_ reserve cost per NFT Because of the way splitting and combining pages works, the actual number of `NFToken` objects per page is somewhat unpredictable and depends on the actual `NFTokenID` values involved. In practice, after minting or receiving a large number of NFTs, each page can have as few as 16 items, or as many as 32, with the typical case being around 24 `NFToken` objects per page. -Currently, the reserve per item is 2 XRP. The table below shows how much the **total owner reserve** is for various numbers of NFTs owned under various scenarios: +Currently, the reserve per item is {% $env.PUBLIC_OWNER_RESERVE %}. The table below shows how much the **total owner reserve** is for various numbers of NFTs owned under various scenarios: | NFTs Owned | Best Case | Typical | Worst Case | |:------------|:----------|:--------|:-----------| -| 32 or fewer | 2 XRP | 2 XRP | 2 XRP | -| 50 | 4 XRP | 6 XRP | 8 XRP | -| 200 | 14 XRP | 18 XRP | 26 XRP | -| 1000 | 64 XRP | 84 XRP | 126 XRP | +| 32 or fewer | 0.2 XRP | 0.2 XRP | 0.2 XRP | +| 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | +| 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | +| 1000 | 6.4 XRP | 8.4 XRP | 12.6 XRP | + + These numbers are estimates; the actual numbers may vary. diff --git a/docs/references/protocol/transactions/types/accountdelete.md b/docs/references/protocol/transactions/types/accountdelete.md index d5d16f4c50..91d8fadf0c 100644 --- a/docs/references/protocol/transactions/types/accountdelete.md +++ b/docs/references/protocol/transactions/types/accountdelete.md @@ -40,7 +40,7 @@ An AccountDelete transaction deletes an [account](../../ledger-data/ledger-entry ## Special Transaction Cost -As an additional deterrent against ledger spam, the AccountDelete transaction requires a much higher than usual [transaction cost](../../../../concepts/transactions/transaction-cost.md): instead of the standard minimum of 0.00001 XRP, AccountDelete must destroy at least the owner reserve amount, currently 2 XRP. This discourages excessive creation of new accounts because the [reserve requirement](../../../../concepts/accounts/reserves.md) cannot be fully recouped by deleting the account. +As an additional deterrent against ledger spam, the AccountDelete transaction requires a much higher than usual [transaction cost](../../../../concepts/transactions/transaction-cost.md): instead of the standard minimum of 0.00001 XRP, AccountDelete must destroy at least the owner reserve amount, currently {% $env.PUBLIC_OWNER_RESERVE %}. This discourages excessive creation of new accounts because the [reserve requirement](../../../../concepts/accounts/reserves.md) cannot be fully recouped by deleting the account. The transaction cost always applies when a transaction is included in a validated ledger, even if the transaction fails to delete the account. (See [Error Cases](#error-cases).) To greatly reduce the chances of paying the high transaction cost if the account cannot be deleted, [submit the transaction](../../../http-websocket-apis/public-api-methods/transaction-methods/submit.md) with `fail_hard` enabled. diff --git a/docs/references/protocol/transactions/types/ammcreate.md b/docs/references/protocol/transactions/types/ammcreate.md index e490091d3a..5e18e2beb4 100644 --- a/docs/references/protocol/transactions/types/ammcreate.md +++ b/docs/references/protocol/transactions/types/ammcreate.md @@ -48,7 +48,7 @@ One or both of `Amount` and `Amount2` can be [tokens](../../../../concepts/token ## Special Transaction Cost -Since each AMM instance involves an AccountRoot ledger entry, an AMM ledger entry, and a trust line for each token in its pool, an AMMCreate transaction requires a much higher than usual [transaction cost][] to deter ledger spam. Instead of the standard minimum of 0.00001 XRP, AMMCreate must destroy at least the incremental owner reserve amount, currently 2 XRP. This is the same special transaction cost as [AccountDelete transactions][]. +Since each AMM instance involves an AccountRoot ledger entry, an AMM ledger entry, and a trust line for each token in its pool, an AMMCreate transaction requires a much higher than usual [transaction cost][] to deter ledger spam. Instead of the standard minimum of 0.00001 XRP, AMMCreate must destroy at least the incremental owner reserve amount, currently {% $env.PUBLIC_OWNER_RESERVE %}. This is the same special transaction cost as [AccountDelete transactions][]. ## Error Cases diff --git a/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md b/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md index 125e3e5035..0e88ee4c4d 100644 --- a/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md +++ b/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md @@ -17,7 +17,7 @@ This tutorial demonstrates how to enable multi-signing for an address. - You must have a funded XRP Ledger [address](../../../concepts/accounts/index.md) with enough spare XRP to send transactions and meet the [reserve requirement](../../../concepts/accounts/reserves.md) of a new signer list. - - With the [MultiSignReserve amendment][] enabled, multi-signing requires 2 XRP for the account reserve, regardless of the number of signers and signatures you use. (The MultiSignReserve amendment has been enabled in the production XRP Ledger since **2019-04-07**.) + - With the [MultiSignReserve amendment][] enabled, multi-signing requires {% $env.PUBLIC_OWNER_RESERVE %} for the account reserve, regardless of the number of signers and signatures you use. (The MultiSignReserve amendment has been enabled in the production XRP Ledger since **2019-04-07**.) - If you are on a test network that does not have the [MultiSignReserve amendment][] enabled, multi-signing requires more than the usual amount of XRP for the [account reserve](../../../concepts/accounts/reserves.md), increasing with the number of signers in the list. diff --git a/docs/tutorials/how-tos/send-xrp.md b/docs/tutorials/how-tos/send-xrp.md index 2508a5e906..b23e5e9191 100644 --- a/docs/tutorials/how-tos/send-xrp.md +++ b/docs/tutorials/how-tos/send-xrp.md @@ -244,7 +244,7 @@ If you see any other result, you should check the following: - Are you using the correct addresses for the sender and destination? - Did you forget any other fields of the transaction, skip any steps, or make any other typos? -- Do you have enough Test XRP to send the transaction? The amount of XRP you can send is limited by the [reserve requirement](../../concepts/accounts/reserves.md), which is currently 10 XRP with an additional 2 XRP for each "object" you own in the ledger. (If you generated a new address with the Testnet Faucet, you don't own any objects.) +- Do you have enough Test XRP to send the transaction? The amount of XRP you can send is limited by the [reserve requirement](../../concepts/accounts/reserves.md), which is currently {% $env.PUBLIC_BASE_RESERVE %} with an additional {% $env.PUBLIC_OWNER_RESERVE %} for each "object" you own in the ledger. (If you generated a new address with the Testnet Faucet, you don't own any objects.) - Are you connected to a server on the test network? See the full list of [transaction results](../../references/protocol/transactions/transaction-results/index.md) for more possibilities. diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md index 5a60fc9132..9556f9aca0 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md @@ -67,7 +67,7 @@ Along these lines, there's a good chance that you are following industry best pr - The payer exchange must have a funded XRP Ledger account to be used to send XRP to the payee exchange. ``` - Aside from the [base reserve](../../../../concepts/accounts/reserves.md) (10 XRP) and the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) of a payment channel (2 XRP), the account must also be able to set aside enough XRP in the payment channel to cover the intended number of transactions. + Aside from the [base reserve](../../../../concepts/accounts/reserves.md) ({% $env.PUBLIC_BASE_RESERVE %}) and the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) of a payment channel ({% $env.PUBLIC_OWNER_RESERVE %}), the account must also be able to set aside enough XRP in the payment channel to cover the intended number of transactions. The payer exchange can always top-off the channel using the [PaymentChannelFund](../../../../references/protocol/transactions/types/paymentchannelfund.md) transaction if it runs out of XRP. However, topping-off requires an actual on-ledger transaction and confirmation, so it could take 4-5 seconds of processing time and ~10 drops of XRP to complete the top-off transaction. The more XRP the payer exchange pre-funds, the less often they need to top-off, so they can save some time and money by pre-funding more XRP. @@ -81,7 +81,7 @@ Along these lines, there's a good chance that you are following industry best pr - The payee exchange must have a funded XRP Ledger account to be used to redeem (receive) XRP sent by the payer exchange. ``` - The account needs at least 11 XRP, which provides the 10 XRP [base reserve](../../../../concepts/accounts/reserves.md), plus enough to pay the transaction costs of redeeming claims, which are trivial. For example, you could redeem thousands of claims for less than 1 XRP in total. + The account needs at least the {% $env.PUBLIC_BASE_RESERVE %} [base reserve](../../../../concepts/accounts/reserves.md), plus enough to pay the transaction costs of redeeming claims, which are trivial. For example, you could redeem thousands of claims for less than 1 XRP in total. ``` [Fund XRP Ledger accounts with enough XRP >](../../../../concepts/accounts/index.md) diff --git a/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker.md b/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker.md index 7ddf0c1ff8..1409f357cf 100644 --- a/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker.md +++ b/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker.md @@ -141,7 +141,7 @@ If the AMM does already exist, you should double-check that you specified the ri Creating an AMM has a special [transaction cost][] to prevent spam: since it creates objects in the ledger that no one owns, you must burn at least one [owner reserve increment](../../../concepts/accounts/reserves.md) of XRP to send the AMMCreate transaction. The exact value can change due to [fee voting](https://xrpl.org/fee-voting.html), so you should look up the current incremental reserve value using the [server_state method][]. -It is also a good practice to display this value and give a human operator a chance to stop before you send the transaction. Burning an owner reserve is typically a much higher cost than sending a normal transaction, so you don't want it to be a surprise. (Currently, on both Mainnet and Devnet, the cost of sending a typical transaction is 0.000010 XRP but the cost of AMMCreate is 2 XRP.) +It is also a good practice to display this value and give a human operator a chance to stop before you send the transaction. Burning an owner reserve is typically a much higher cost than sending a normal transaction, so you don't want it to be a surprise. (Currently, on both Mainnet and Devnet, the cost of sending a typical transaction is 0.000010 XRP but the cost of AMMCreate is {% $env.PUBLIC_OWNER_RESERVE %}.) {% tabs %} diff --git a/docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python.md b/docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python.md index e568b45e6a..dc567d5b00 100644 --- a/docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python.md +++ b/docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python.md @@ -430,7 +430,7 @@ You can now use your wallet to send XRP! You can even fund an entirely new accou 3. Open your wallet app and provide a **Secret** (seed) value from an already-funded address, such as one you got from the [Testnet Faucet](/resources/dev-tools/xrp-faucets). -4. Send at least the [base reserve](../../../concepts/accounts/reserves.md) (currently 10 XRP) to the brand-new classic address you generated in the Python interpreter. +4. Send at least the [base reserve](../../../concepts/accounts/reserves.md) (currently {% $env.PUBLIC_BASE_RESERVE %}) to the brand-new classic address you generated in the Python interpreter. 5. Wait for the transaction to be confirmed, then close your wallet app. diff --git a/docs/use-cases/tokenization/authorized-minter.md b/docs/use-cases/tokenization/authorized-minter.md index 56ff25678c..2eb5dc11b2 100644 --- a/docs/use-cases/tokenization/authorized-minter.md +++ b/docs/use-cases/tokenization/authorized-minter.md @@ -55,11 +55,11 @@ You can act as a broker, connecting sellers with bidders, completing the transfe ### Reserve requirements -There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of 2 XRP. A NFToken page can store 16-32 NFTs. +There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. A NFToken page can store 16-32 NFTs. ![Reserves](/docs/img/uc-nft-reserves.png) -Each `NFTokenOffer` object requires a reserve of 2 XRP. +Each `NFTokenOffer` object requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. When you post the `NFTokenOffer` or sell the NFT, there are trivial transfer fees (roughly 6000 drops, or .006 XRP). When you are selling at a high volume, the trivial amounts can add up quickly, and need to be considered as part of your cost of doing business. diff --git a/docs/use-cases/tokenization/digital-artist.md b/docs/use-cases/tokenization/digital-artist.md index 480c0d1614..d82fb93af6 100644 --- a/docs/use-cases/tokenization/digital-artist.md +++ b/docs/use-cases/tokenization/digital-artist.md @@ -49,9 +49,9 @@ You can sell your NFTs in an auction format. See [Running an NFT Auction](../../ ### Reserve requirements -There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of 2 XRP. A NFToken page can store 16-32 NFTs. +There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. A NFToken page can store 16-32 NFTs. -Each `NFTokenOffer` object requires a reserve of 2 XRP. +Each `NFTokenOffer` object requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. ![Reserves](/docs/img/uc-nft-reserves.png) diff --git a/docs/use-cases/tokenization/nft-mkt-overview.md b/docs/use-cases/tokenization/nft-mkt-overview.md index f281bebb2b..bc00db1b49 100644 --- a/docs/use-cases/tokenization/nft-mkt-overview.md +++ b/docs/use-cases/tokenization/nft-mkt-overview.md @@ -70,7 +70,7 @@ Once the authorized minter has finished creating NFTs for you, you can revoke th See [Authorized Minter](../../concepts/tokens/nfts/authorizing-another-minter.md). -Minted NFTs are listed on a `NFTokenPage`. There is a reserve requirement of 2 XRP for every `NFTokenPage` on your account. See [NFT Reserve Requirements](../../concepts/tokens/nfts/reserve-requirements.md). +Minted NFTs are listed on a `NFTokenPage`. There is a reserve requirement of {% $env.PUBLIC_OWNER_RESERVE %} for every `NFTokenPage` on your account. See [NFT Reserve Requirements](../../concepts/tokens/nfts/reserve-requirements.md). Each `NFTokenPage` holds 16-32 NFTs. Minting a large number of NFTs can tie up a great deal of your XRP. You can keep your XRP liquid by minting on demand (or _lazy minting_). For details of different approaches, see [Batch minting](../../concepts/tokens/nfts/batch-minting.md). @@ -79,7 +79,7 @@ Each `NFTokenPage` holds 16-32 NFTs. Minting a large number of NFTs can tie up a Set up a new wallet. See [Xaman](https://xaman.app/). -When you set up your account, keep in mind that there is a base reserve requirement of 10 XRP. See [Reserves](../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve). +When you set up your account, keep in mind that there is a base reserve requirement of {% $env.PUBLIC_BASE_RESERVE %}. See [Reserves](../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve). ### Transferring NFTs @@ -93,9 +93,9 @@ You can act as a broker, connecting sellers with bidders, completing the transfe #### Reserve requirements -There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of 2 XRP. A NFToken page can store 16-32 NFTs. +There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. A NFToken page can store 16-32 NFTs. -Each `NFTokenOffer` object requires a reserve of 2 XRP. +Each `NFTokenOffer` object requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. ![Reserves](/docs/img/uc-nft-reserves.png) diff --git a/docs/use-cases/tokenization/nftoken-marketplace.md b/docs/use-cases/tokenization/nftoken-marketplace.md index 060050be7a..7f7aebb3e0 100644 --- a/docs/use-cases/tokenization/nftoken-marketplace.md +++ b/docs/use-cases/tokenization/nftoken-marketplace.md @@ -43,11 +43,11 @@ You can act as a broker, connecting sellers with bidders, completing the transfe ### Reserve requirements -There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of 2 XRP. A NFToken page can store 16-32 NFTs. +There are several XRP reserve requirements when you mint NFTs for sale. Each NFToken page requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. A NFToken page can store 16-32 NFTs. ![Reserves](/docs/img/uc-nft-reserves.png) -Each `NFTokenOffer` object requires a reserve of 2 XRP. +Each `NFTokenOffer` object requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. When you post the `NFTokenOffer` or sell the NFT, there are trivial transfer fees (roughly 6000 drops, or .006 XRP). When you are selling at a high volume, the trivial amounts can add up quickly, and need to be considered as part of your cost of doing business.