0088 XLS-88d: Service Fee #262
Replies: 3 comments 5 replies
-
About using other currencies than the native one, where is it declared? Shouldn't the ServiceFee object include a "currency" field? |
Beta Was this translation helpful? Give feedback.
-
Is this different from XLS-67d? |
Beta Was this translation helpful? Give feedback.
-
I personally prefer mandatory enforcement, but Alternative Proposal: Optional EnforcementTo strike a balance, the protocol could support an optional enforcement flag within the ServiceFee field.
If Enforce is true, the transaction fails if the ServiceFee cannot be paid. |
Beta Was this translation helpful? Give feedback.
-
Service Fee - Inline Payments to Service Providers
Introduction
Fees are currently charged (burned) by the network to prevent spam. However the network is not the only interested third party to any given transaction. The vast majority of transactions are submitted via commercial wallet softwares, such as: Xaman, Crossmark, Ledger, and others.
Historically cryptocurrency wallets have had a hard time monetizing their users. Users are reluctant to pay a subscription or other up-front or on-going fee to use this type of software. One strategy that has reliably worked for other chains is the "service fee" model: a small percentage of each outgoing payment is forwarded to the wallet provider. Herein I propose an amendment to mirror this for XRP Ledger Protocol chains.
New common field:
ServiceFee
ServiceFee
is an optional field that can appear in any transaction. It is an object that contains two inner fields: Amount and Destination.Constraints
Behaviour
ServiceFee is an "all-or-nothing" delivery of the stated fee to the stated destination. If for any reason the fee cannot be delivered, the transaction processes as normal and the service fee is disregarded.
Currencies
ServiceFee supports both native (XRP/XAH) and issued currencies. This assists use-cases where fiat-pegged stable coins are exclusively used by a group of users (who are therefore otherwise uninterested in the chain's native asset).
Amount
ServiceFee amount must be strictly greater than 0, otherwise it is disregarded.
Nothing created
The ServiceFee field cannot be used to create any object (e.g. trust-line or account) on the ledger.
No on-chain enforcement
The ServiceFee is not an enforced transfer on the ledger, meaning it can fail without affecting the transaction's success code. This is reasonable because wallet software can trivially enforce its own rules client-side, whatever those may be. If the user is unable to pay the required service fee, the wallet software can simply refuse to compose and submit the transaction. If a mistake is made and the service fee is submitted but cannot be completely delivered it is disregarded and the transaction processes as normal.
Beta Was this translation helpful? Give feedback.
All reactions