xrpl-mpp-facilitator
Authenticated FastAPI facilitator for Ripple-compatible XRPL MPP charge and PaymentChannel verification.
pip install xrpl-mpp-facilitator
xrpl-mpp-facilitator --help
xrpl-mpp-facilitator --reload
Entry point: xrpl_mpp_facilitator.main:app
Factory: xrpl_mpp_facilitator.factory:create_app
Endpoints:
GET /healthGET /supportedPOST /chargePOST /session
Charge credentials may contain a signed transaction blob or a submitted
transaction hash. The service enforces exact XRPL fields, named network,
source DID, invoice, freshness, successful settlement, and replay protection.
Session credentials use PaymentChannel open, cumulative voucher, and
close actions with atomic high-water state.
Configure gateway bearer authentication, Redis, XRPL RPC, destination,
challenge keys, allowlists, and validated settlement before starting. Never
expose payment endpoints without gateway authentication.
XRPL_RPC_URL requires HTTPS; local rippled development may explicitly set
ALLOW_INSECURE_XRPL_RPC=true only with a localhost/loopback HTTP URL.
PAYCHANNEL_PAYER_PUBLIC_KEY enables and restricts session verification. The
service can import a matching externally opened channel and notices a validated
out-of-band PaymentChannelFund increase before accepting a later voucher.
PAYCHANNEL_SETTLEMENT_MARGIN_SECONDS rejects claims too close to an on-ledger
expiry/close deadline.
MPP close is a final voucher, not an on-ledger channel close. An optional
recipient signer lets the facilitator redeem that cumulative claim and wait for
validation; PAYCHANNEL_RECIPIENT_SEED is the built-in local adapter. Recipient
redemption does not set tfClose, refund unused XRP, or delete the channel.
Without a recipient signer, the MPP session is still finalized and its voucher
is retained for a separate redemption workflow.
Applications that construct XRPLService directly can inject a
RecipientSigner backed by a KMS, HSM, Vault, or remote signer instead of
placing a seed in the facilitator process. The complete claim is prepared by
the facilitator; signer responses that change any field or add tfClose are
rejected. LocalSeedRecipientSigner is the adapter used by
PAYCHANNEL_RECIPIENT_SEED.
Set PAYCHANNEL_REDEEM_INTERVAL_SECONDS above zero to enable the bounded
background redemption sweep. It uses a per-channel Redis lease across replicas,
processes at most PAYCHANNEL_REDEEM_BATCH_SIZE records per interval, and caps
recipient claim fees. PAYCHANNEL_IDLE_CLOSE_SECONDS additionally finalizes
inactive MPP sessions after redeeming their latest claim. “Idle close” is a
durable application-state transition only; the recipient transaction never
sets XRPL tfClose.
Documentation: https://lgcarrier.github.io/xrpl-mpp-stack/packages/facilitator/
Metadata
Release files for xrpl-mpp-facilitator 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| xrpl_mpp_facilitator-0.2.0.tar.gz | 35.3 kB | With provenance | Details for xrpl_mpp_facilitator-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| xrpl_mpp_facilitator-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for xrpl_mpp_facilitator-0.2.0-py3-none-any.whl |
Total release size: 78.4 kB
Release files / xrpl_mpp_facilitator-0.2.0.tar.gz
| Download URL | xrpl_mpp_facilitator-0.2.0.tar.gz |
|---|---|
| Size | 35.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a3117c93d4d7dc33a7411fa0ae354e2305452b274aa883cb13a7e329506a69b
|
|
BLAKE2b-256 checksum How to use checksums |
9d0081aa59936f90657fe5244c3468ad50d3e277df2b545aa02750c9cc834a8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.
Transparency logRelease files / xrpl_mpp_facilitator-0.2.0-py3-none-any.whl
| Download URL | xrpl_mpp_facilitator-0.2.0-py3-none-any.whl |
|---|---|
| Size | 43.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aa8737bed26db5493d5a8d3c4de5980920da2290cd6f119bd08e02a272f81d31
|
|
BLAKE2b-256 checksum How to use checksums |
4172b20bc3975e3aa4c4cbf0fe80aa469cc9016e2ffeeac6c275d5f92fccbbc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.
Transparency logSecurity for xrpl-mpp-facilitator 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for xrpl_mpp_facilitator-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.