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/
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xrpl_mpp_facilitator-0.2.0.tar.gz.
File metadata
- Download URL: xrpl_mpp_facilitator-0.2.0.tar.gz
- Upload date:
- Size: 35.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a3117c93d4d7dc33a7411fa0ae354e2305452b274aa883cb13a7e329506a69b
|
|
| MD5 |
a53854bc373620286a236f1d47541b82
|
|
| BLAKE2b-256 |
9d0081aa59936f90657fe5244c3468ad50d3e277df2b545aa02750c9cc834a8a
|
Provenance
The following attestation bundles were made for xrpl_mpp_facilitator-0.2.0.tar.gz:
Publisher:
publish-package.yml on lgcarrier/xrpl-mpp-stack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xrpl_mpp_facilitator-0.2.0.tar.gz -
Subject digest:
0a3117c93d4d7dc33a7411fa0ae354e2305452b274aa883cb13a7e329506a69b - Sigstore transparency entry: 2703376613
- Sigstore integration time:
-
Permalink:
lgcarrier/xrpl-mpp-stack@da4b469b8d2a16c36baa509b1395dabe22fcc342 -
Branch / Tag:
refs/tags/facilitator-v0.2.0 - Owner: https://github.com/lgcarrier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-package.yml@da4b469b8d2a16c36baa509b1395dabe22fcc342 -
Trigger Event:
push
-
Statement type:
File details
Details for the file xrpl_mpp_facilitator-0.2.0-py3-none-any.whl.
File metadata
- Download URL: xrpl_mpp_facilitator-0.2.0-py3-none-any.whl
- Upload date:
- Size: 43.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa8737bed26db5493d5a8d3c4de5980920da2290cd6f119bd08e02a272f81d31
|
|
| MD5 |
ec975e1a7044b1e3ba1feced49480d6f
|
|
| BLAKE2b-256 |
4172b20bc3975e3aa4c4cbf0fe80aa469cc9016e2ffeeac6c275d5f92fccbbc3
|
Provenance
The following attestation bundles were made for xrpl_mpp_facilitator-0.2.0-py3-none-any.whl:
Publisher:
publish-package.yml on lgcarrier/xrpl-mpp-stack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xrpl_mpp_facilitator-0.2.0-py3-none-any.whl -
Subject digest:
aa8737bed26db5493d5a8d3c4de5980920da2290cd6f119bd08e02a272f81d31 - Sigstore transparency entry: 2703376938
- Sigstore integration time:
-
Permalink:
lgcarrier/xrpl-mpp-stack@da4b469b8d2a16c36baa509b1395dabe22fcc342 -
Branch / Tag:
refs/tags/facilitator-v0.2.0 - Owner: https://github.com/lgcarrier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-package.yml@da4b469b8d2a16c36baa509b1395dabe22fcc342 -
Trigger Event:
push
-
Statement type: