How simpleXRPL dispatches each XRPL transactor per connector. Derived directly from each custodian's native-operation set and the transactors the verticals build, so it always matches the code.
The pipeline routes by transactor type: Local signs everything in-process; a custodian uses its native operation when the transactor is in its capability set, otherwise the raw sign-only fallback, otherwise the write is rejected.
| Transactor | Local | Ripple Custody | Palisade |
|---|---|---|---|
AccountSet | signs locally | native | native |
Clawback | signs locally | native | raw fallback¹ |
CredentialAccept | signs locally | raw fallback¹ | raw fallback¹ |
CredentialCreate | signs locally | raw fallback¹ | raw fallback¹ |
CredentialDelete | signs locally | raw fallback¹ | raw fallback¹ |
DepositPreauth | signs locally | native | raw fallback¹ |
EscrowFinish | signs locally | native | raw fallback¹ |
MPTokenAuthorize | signs locally | native | raw fallback¹ |
MPTokenIssuanceCreate | signs locally | native | raw fallback¹ |
MPTokenIssuanceDestroy | signs locally | native | raw fallback¹ |
MPTokenIssuanceSet | signs locally | native | raw fallback¹ |
OfferCancel | signs locally | raw fallback¹ | native |
OfferCreate | signs locally | native | native |
Payment | signs locally | native | native |
PermissionedDomainDelete | signs locally | raw fallback¹ | raw fallback¹ |
PermissionedDomainSet | signs locally | raw fallback¹ | raw fallback¹ |
SetRegularKey | signs locally | raw fallback¹ | raw fallback¹ |
TrustSet | signs locally | native | native |
¹ raw fallback applies only when raw signing is enabled on that custodian (allowRawSigning). With raw signing disabled, a non-native transactor is rejected with SignerCapabilityError — use a Local account or a custodian that natively supports it. The raw path signs the encoded transaction and submits it through the shared XRPL connection.
Which XRPL transactors each vertical builds. Cross-reference with the table above to see how a given method routes on each connector.
| Vertical | Transactors emitted |
|---|---|
account | AccountSet, DepositPreauth, Payment, SetRegularKey |
credential | CredentialAccept, CredentialCreate, CredentialDelete |
domain | PermissionedDomainDelete, PermissionedDomainSet |
iou | AccountSet, Clawback, OfferCancel, OfferCreate, Payment, TrustSet |
token | Clawback, MPTokenAuthorize, MPTokenIssuanceCreate, MPTokenIssuanceDestroy, MPTokenIssuanceSet, Payment |
xrp | OfferCancel, OfferCreate, Payment |
Each simpleXRPL write operation, the XRPL transactor(s) it emits, and whether that operation is native on each custodian (all its transactors are in the custodian's native-ops set) or falls back to raw signing. Local signs every operation in-process. Read operations emit no transactor and are omitted.
| Operation | Transactor(s) | Ripple Custody | Palisade |
|---|---|---|---|
XRP.transfer() | Payment | native | native |
XRP.buyOffer() | OfferCreate | native | native |
XRP.sellOffer() | OfferCreate | native | native |
XRP.cancelOffer() | OfferCancel | raw fallback¹ | native |
IOU.issue() | TrustSet, AccountSet, Payment | native | native |
IOU.authorize() | TrustSet | native | native |
IOU.lock() | TrustSet | native | native |
IOU.unlock() | TrustSet | native | native |
IOU.clawback() | Clawback | native | raw fallback¹ |
IOU.transfer() | Payment | native | native |
IOU.buyOffer() | OfferCreate | native | native |
IOU.sellOffer() | OfferCreate | native | native |
IOU.cancelOffer() | OfferCancel | raw fallback¹ | native |
Token.issue() | MPTokenIssuanceCreate | native | raw fallback¹ |
Token.authorize() | MPTokenAuthorize | native | raw fallback¹ |
Token.unauthorize() | MPTokenAuthorize | native | raw fallback¹ |
Token.grantHolder() | MPTokenAuthorize | native | raw fallback¹ |
Token.revokeHolder() | MPTokenAuthorize | native | raw fallback¹ |
Token.lock() | MPTokenIssuanceSet | native | raw fallback¹ |
Token.unlock() | MPTokenIssuanceSet | native | raw fallback¹ |
Token.destroy() | MPTokenIssuanceDestroy | native | raw fallback¹ |
Token.transfer() | Payment | native | raw fallback¹ |
Token.clawback() | Clawback | native | raw fallback¹ |
Domain.create() | PermissionedDomainSet | raw fallback¹ | raw fallback¹ |
Domain.setCredentials() | PermissionedDomainSet | raw fallback¹ | raw fallback¹ |
Domain.delete() | PermissionedDomainDelete | raw fallback¹ | raw fallback¹ |
Credential.issue() | CredentialCreate | raw fallback¹ | raw fallback¹ |
Credential.accept() | CredentialAccept | raw fallback¹ | raw fallback¹ |
Credential.delete() | CredentialDelete | raw fallback¹ | raw fallback¹ |
Account.fund() | Payment, AccountSet | native | native |
Account.activate() | Payment, AccountSet | native | native |
Account.set() | AccountSet | native | native |
Account.setRegularKey() | SetRegularKey | raw fallback¹ | raw fallback¹ |
Account.depositPreauth() | DepositPreauth | native | raw fallback¹ |
¹ raw fallback applies only when raw signing is enabled on that custodian (allowRawSigning); otherwise the operation is rejected with SignerCapabilityError. A multi-transactor operation (e.g. IOU.issue) is native only when every step is native. Palisade has no native MPT support, so the MPT-carrying operations Token.transfer and Token.clawback fall back to raw there even though Payment and Clawback are otherwise native; Ripple Custody handles MPT natively. The DEX offer operations (buyOffer / sellOffer / cancelOffer on iou and xrp) never carry an MPT — MPTs aren't DEX-tradeable — so they route purely on their OfferCreate / OfferCancel legs: buyOffer / sellOffer are native on both custodians, while cancelOffer is native on Palisade but falls back to raw on Ripple Custody, which doesn't natively model OfferCancel.
Native-ops sets: NATIVE_XRPL_TRANSACTORS (Ripple Custody), PALISADE_NATIVE_TRANSACTORS (Palisade). Local signs all transactors.