Skip to content

Connector Routing

[Source]

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.

Transactor → connector path

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.

TransactorLocalRipple CustodyPalisade
AccountSetsigns locallynativenative
Clawbacksigns locallynativeraw fallback¹
CredentialAcceptsigns locallyraw fallback¹raw fallback¹
CredentialCreatesigns locallyraw fallback¹raw fallback¹
CredentialDeletesigns locallyraw fallback¹raw fallback¹
DepositPreauthsigns locallynativeraw fallback¹
EscrowFinishsigns locallynativeraw fallback¹
MPTokenAuthorizesigns locallynativeraw fallback¹
MPTokenIssuanceCreatesigns locallynativeraw fallback¹
MPTokenIssuanceDestroysigns locallynativeraw fallback¹
MPTokenIssuanceSetsigns locallynativeraw fallback¹
OfferCancelsigns locallyraw fallback¹native
OfferCreatesigns locallynativenative
Paymentsigns locallynativenative
PermissionedDomainDeletesigns locallyraw fallback¹raw fallback¹
PermissionedDomainSetsigns locallyraw fallback¹raw fallback¹
SetRegularKeysigns locallyraw fallback¹raw fallback¹
TrustSetsigns locallynativenative

¹ 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.

Vertical → transactors

Which XRPL transactors each vertical builds. Cross-reference with the table above to see how a given method routes on each connector.

VerticalTransactors emitted
accountAccountSet, DepositPreauth, Payment, SetRegularKey
credentialCredentialAccept, CredentialCreate, CredentialDelete
domainPermissionedDomainDelete, PermissionedDomainSet
iouAccountSet, Clawback, OfferCancel, OfferCreate, Payment, TrustSet
tokenClawback, MPTokenAuthorize, MPTokenIssuanceCreate, MPTokenIssuanceDestroy, MPTokenIssuanceSet, Payment
xrpOfferCancel, OfferCreate, Payment

Operation → native support

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.

OperationTransactor(s)Ripple CustodyPalisade
XRP.transfer()Paymentnativenative
XRP.buyOffer()OfferCreatenativenative
XRP.sellOffer()OfferCreatenativenative
XRP.cancelOffer()OfferCancelraw fallback¹native
IOU.issue()TrustSet, AccountSet, Paymentnativenative
IOU.authorize()TrustSetnativenative
IOU.lock()TrustSetnativenative
IOU.unlock()TrustSetnativenative
IOU.clawback()Clawbacknativeraw fallback¹
IOU.transfer()Paymentnativenative
IOU.buyOffer()OfferCreatenativenative
IOU.sellOffer()OfferCreatenativenative
IOU.cancelOffer()OfferCancelraw fallback¹native
Token.issue()MPTokenIssuanceCreatenativeraw fallback¹
Token.authorize()MPTokenAuthorizenativeraw fallback¹
Token.unauthorize()MPTokenAuthorizenativeraw fallback¹
Token.grantHolder()MPTokenAuthorizenativeraw fallback¹
Token.revokeHolder()MPTokenAuthorizenativeraw fallback¹
Token.lock()MPTokenIssuanceSetnativeraw fallback¹
Token.unlock()MPTokenIssuanceSetnativeraw fallback¹
Token.destroy()MPTokenIssuanceDestroynativeraw fallback¹
Token.transfer()Paymentnativeraw fallback¹
Token.clawback()Clawbacknativeraw fallback¹
Domain.create()PermissionedDomainSetraw fallback¹raw fallback¹
Domain.setCredentials()PermissionedDomainSetraw fallback¹raw fallback¹
Domain.delete()PermissionedDomainDeleteraw fallback¹raw fallback¹
Credential.issue()CredentialCreateraw fallback¹raw fallback¹
Credential.accept()CredentialAcceptraw fallback¹raw fallback¹
Credential.delete()CredentialDeleteraw fallback¹raw fallback¹
Account.fund()Payment, AccountSetnativenative
Account.activate()Payment, AccountSetnativenative
Account.set()AccountSetnativenative
Account.setRegularKey()SetRegularKeyraw fallback¹raw fallback¹
Account.depositPreauth()DepositPreauthnativeraw 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.