← All research
XRPL MECHANICS · 7 SEPTEMBER 2026 · 11 MIN READ

XRPL Deposit Authorization: reserve and fee math from 1 to 10,000 senders

By XORA Research · Reviewed against XRP Ledger Mainnet data and official protocol documentation

TL;DR: XRPL Deposit Authorization makes incoming value permissioned: strangers are blocked, while preauthorized senders can pay normally and the destination can still initiate certain receipt flows. At the Mainnet settings checked on 7 September 2026, each account-based DepositPreauth entry locks 0.2 XRP in owner reserve and costs an assumed 0.00001 XRP to create, so 10,000 standing approvals require 2,000 XRP of reserve but only 0.1 XRP of setup fees.

That split between temporary reserve and permanent fee burn is the key economic fact. DepositAuth itself is just an account flag. The scale cost comes from the persistent allowlist objects, so the number of approved senders matters far more than how many payments each approved sender makes.

What DepositAuth changes

New XRPL accounts can receive XRP from anyone by default. An account enables Deposit Authorization by submitting an AccountSet transaction with SetFlag: 9, the value of asfDepositAuth. Clearing the same flag disables it. One successful flag-setting transaction changes the rule for future incoming transfers but creates no DepositPreauth object by itself.

With the flag enabled, direct Payments from strangers normally fail. The account can permit a source address by sending a DepositPreauth transaction containing that address in Authorize. The approval is one-directional and currency-agnostic: permission from A to B says nothing about B paying A, and it cannot be limited to XRP or one token. A later transaction with Unauthorize removes the approval.

The control is not an absolute “receive nothing” switch. The official Deposit Authorization specification allows the destination to receive by initiating actions such as CheckCash. It also defines rules for EscrowFinish and PaymentChannelClaim. Most importantly, when the destination balance is at or below the base reserve, an unsolicited XRP Payment of no more than the base reserve can still arrive. That escape hatch prevents an account from becoming unable both to pay a fee and to receive enough XRP to transact.

Four-step DepositAuth lifecycle with reserve and fee values Enabling DepositAuth uses one AccountSet transaction. Authorizing a sender uses one DepositPreauth transaction, costs an assumed 0.00001 XRP, and locks 0.2 XRP. Approved payments need no receiver transaction. Revoking uses one transaction, costs another assumed 0.00001 XRP, and releases 0.2 XRP. Account-based authorization lifecycle · 10-drop fee assumption 1 · ENABLE AccountSet 1 transaction SetFlag: 9 0.00001 XRP fee 2 · AUTHORIZE DepositPreauth +0.2 XRP reserve 1 sender approved 0.00001 XRP fee 3 · RECEIVE Any payment count 0 new objects receiver stays passive sender pays Payment fee 4 · REVOKE Unauthorize −0.2 XRP reserve 1 transaction 0.00001 XRP fee Standing authorization: 0.2 XRP locked · Full create/revoke lifecycle: 0.00002 XRP burned The initial AccountSet fee is paid once per enable action, not once per approved sender
DepositAuth separates a one-time account policy from sender-specific allowlist entries. Approved Payments do not require a matching receiver transaction every time.

The cost model: sender count, not payment count

Ripple's public Mainnet server_info endpoint at validated ledger 106,823,472 reported a 1 XRP base reserve, a 0.2 XRP incremental reserve, and a 0.00001 XRP base fee on 7 September 2026. The official reserve documentation confirms that Deposit Preauthorizations count toward owner reserve. These settings can change through validator fee voting.

For N account-based approvals, incremental reserve is N × 0.2 XRP. Setup fees under the standard 10-drop assumption are N × 0.00001 XRP. If every approval is eventually revoked, full lifecycle fees are N × 0.00002 XRP. Reserve is temporarily unavailable for ordinary spending; fees are irrevocably destroyed.

Approved sendersIncremental reserveTotal reserve with 1 XRP baseSetup feesCreate plus revoke fees
10.2 XRP1.2 XRP0.00001 XRP0.00002 XRP
102 XRP3 XRP0.00010 XRP0.00020 XRP
10020 XRP21 XRP0.00100 XRP0.00200 XRP
1,000200 XRP201 XRP0.01000 XRP0.02000 XRP
10,0002,000 XRP2,001 XRP0.10000 XRP0.20000 XRP

The total-reserve column assumes no other reserve-bearing objects. Real accounts may own trust lines, offers, signer lists, escrows, Tickets, or other objects. Multi-signed transactions also cost more: the published minimum is 10 drops multiplied by one plus the number of signatures, before load scaling. Production software should query current reserve and fee values rather than hardcode this dated snapshot.

DepositPreauth reserve by approved sender count At 0.2 XRP per DepositPreauth object, 10 approved senders lock 2 XRP, 100 lock 20 XRP, 1,000 lock 200 XRP, and 10,000 lock 2,000 XRP. Standing DepositPreauth reserve · 0.2 XRP per sender 0 XRP 500 1,000 1,500 2,000 2 XRP10 senders 20 XRP100 senders 200 XRP1,000 senders 2,000 XRP10,000 senders Reserve grows linearly and is released when authorizations are removed
A broad address allowlist has a working-capital cost. Moving from 100 to 10,000 active approvals multiplies the reserve from 20 XRP to 2,000 XRP, regardless of payment frequency.

The original insight: durable relationships are 100 times more reserve-efficient

Compare two services processing 100,000 incoming payments. Service A accepts 1,000 payments from each of 100 long-lived counterparties. Its allowlist needs 100 entries and locks 20 XRP. Service B accepts 10 payments from each of 10,000 counterparties. It needs 10,000 entries and locks 2,000 XRP. The payment count is identical, but Service A uses 100 times less DepositPreauth reserve.

This makes DepositAuth economically natural for known, recurring relationships: institutional settlement partners, approved treasury sources, a fixed payroll funding set, or a custody account with a bounded source list. It is less natural as a permanent account-address allowlist for a large, rotating retail population. A platform can revoke dormant sources and release 0.2 XRP per entry, but each cleanup adds another transaction and the operational burden of proving that the source is truly obsolete.

Reserve comparison for two services processing 100,000 payments A service with 100 recurring senders making 1,000 payments each processes 100,000 payments with 20 XRP in DepositPreauth reserve. A service with 10,000 senders making 10 payments each processes the same 100,000 payments with 2,000 XRP in reserve, 100 times more. Same volume: 100,000 Payments · radically different reserve 100 RECURRING SENDERS 1,000 payments each 20 XRP reserve 100 × 0.2 XRP 0.001 XRP setup fees 10,000 ROTATING SENDERS 10 payments each 2,000 XRP reserve 10,000 × 0.2 XRP 0.1 XRP setup fees 100× reserve difference Payment fees are separate and paid by the accounts submitting those Payments
The allowlist's reserve scales with unique active authorization entries, not throughput. Repeated payments from stable counterparties amortize the same 0.2 XRP reserve across more activity.

Operational tradeoffs that the simple formula misses

Transition order matters. XRPL documentation explicitly permits creating preauthorizations before enabling DepositAuth. A safer rollout builds and verifies the required allowlist first, then sets the account flag. Reversing those steps creates a window in which intended senders receive tecNO_PERMISSION.

An address is not an identity. Preauthorization proves that a payment comes from an approved XRPL account, not that the human or organization behind it still satisfies an off-ledger policy. If a partner rotates its sending address, the replacement is a stranger until approved. Operations need a controlled identity check, a mapped source-address inventory, and an audit trail for additions and revocations.

Failed attempts still have consequences. The official tec code reference says a Payment blocked by DepositAuth can return tecNO_PERMISSION. Once included in a validated ledger, a tec failure destroys the submitted fee and consumes the sender's sequence, even though the destination receives no funds. Applications should show the restriction before signing when possible.

Checks must use validated state. The deposit_authorized API method reports whether a source is allowed to pay a destination. Querying a validated ledger prevents decisions based on provisional state. A true result still does not guarantee payment success; balance, trust-line, liquidity, destination-tag, and other transaction rules can fail independently.

Risk boundary: DepositAuth is a payment-admission control, not custody security, sender due diligence, transaction finality, sanctions screening, or protection against compromised approved keys. It should be one control inside a broader operating model.

DepositAuth versus nearby account controls

RequireDest and DepositAuth solve different problems. Requiring a destination tag helps a shared receiving address route a payment to the correct customer or invoice, but any sender can invent a tag. DepositAuth decides whether that source may deliver value directly at all. Many custodial systems may need both.

DisallowXRP is also different. Official XRPL documentation describes it as advisory: clients should honor it, but the ledger does not enforce it as a hard payment barrier. DepositAuth is enforced by transaction processing, subject to its documented exceptions. Meanwhile, RequireAuth governs who may hold issued trust-line tokens and is not a replacement for controlling incoming value to the account.

Credential-based preauthorization is also available when the applicable Credentials functionality is enabled. It can express a policy around one exact set of accepted on-ledger credentials rather than maintaining only a list of source accounts. That adds credential issuance, acceptance, expiration, and matching semantics, so teams should model it as a separate architecture rather than assume it is a free drop-in substitute.

A practical deployment checklist

  1. Inventory every expected source and decide whether address-based approval fits its key-rotation behavior.
  2. Calculate reserve headroom as current OwnerCount × reserve_inc_xrp, plus the new entries and a fee buffer.
  3. Create and validate preauthorizations before setting asfDepositAuth; test each expected source with validated-state queries.
  4. Monitor blocked attempts, stale entries, source-address changes, reserve headroom, and validated transaction results.
  5. Revoke obsolete approvals promptly, then confirm the object disappeared and the 0.2 XRP incremental reserve was released.

FAQ

What does XRPL Deposit Authorization do?

It is an optional account setting that blocks direct value transfers from strangers. Preauthorized sources can send normally, while the destination can still receive through permitted destination-initiated flows such as cashing a Check.

How much reserve does one DepositPreauth entry require?

At the Mainnet settings checked on 7 September 2026, one DepositPreauth object adds 0.2 XRP to the authorizing account's reserve requirement. Revoking the approval removes the object and releases that incremental reserve. Validator voting can change reserve values.

How much does DepositPreauth cost in transaction fees?

At the standard 10-drop assumption, creating one approval destroys 0.00001 XRP. Creating and later revoking it costs 0.00002 XRP total. Network load, the signed Fee value, and multisigning can increase the real cost.

Does DepositAuth block every unsolicited XRP payment?

No. If the destination's XRP balance is at or below the 1 XRP base reserve, an unsolicited XRP Payment no larger than the base reserve is allowed. Protocol-specific and destination-initiated receipt paths have additional precise rules.

Is DepositAuth the same as requiring a destination tag?

No. A required destination tag identifies routing or purpose, but a stranger can provide any tag. DepositAuth enforces whether the source is allowed to deliver value directly. They can be used together.

Related reading

Sources checked

Mainnet values were checked directly through Ripple's public server_info service at validated ledger 106,823,472 on 7 September 2026. All examples assume single-signed transactions at the 10-drop base fee with no load escalation. Reserve settings, fees, supported amendments, and network conditions can change after publication. Calculations are XORA analysis based on the explicit assumptions above.

Put XRP to work, not idle on an exchange

Deposit Authorization is payment-control infrastructure, not a source of XRP yield. XORA's separate offering is up to 22% APY value (15% native XRP yield, treasury-subsidised during a disclosed bootstrap, plus estimated XORA reward value). Returns are variable and never guaranteed, and users should assess custody, liquidity, operational, counterparty, market, and reward-value risks.

xora.finance is where to put your XRP to work, earning up to 22% instead of leaving it idle on an exchange. Model the potential outcome with the XRP yield calculator, read how XRP yield works, and review the security model before depositing an amount appropriate for your risk tolerance.

Put your XRP to work → Review the risks →