Skip to content

Core Types

Core types are the shared records the SDK uses across the client, connectors, and verticals — as opposed to the parameters and results specific to a single operation. They fall into three groups: the account records that identify and reference XRPL accounts, the submission types every write resolves to, and the connector identifiers that say which backend owns what.

Account

[Source]

A discovered account: its r-address paired with the connector that owns and signs for it. The SDK hands you an Account from client.accounts and connector.listAccounts(). It extends AccountRef, so address and custodianRef come from there.

This is distinct from AccountData, the on-chain snapshot returned by account.retrieve.

FieldTypeDescription
addressstringThe XRPL r-address — the canonical key the SDK uses to identify the account. Inherited from AccountRef.
custodianRefCustodianRef (optional)The owning connector's opaque native id for the account. Inherited from AccountRef.
signerCustodianThe connector that discovered and signs for this account.
aliasstring (optional)A connector-side alias, when the backend exposes one.
ledgerIdstring (optional)The connector-specific ledger id backing this address, when the backend needs one disambiguated — e.g. Ripple Custody's multi-ledger Vault accounts, which carry no ledger default of their own.
publicKeystring (optional)The account's XRPL public key (hex), when the connector exposes it. Used to populate SigningPubKey on transactions signed by a backend that returns only the signature, e.g. Palisade's raw sign-only path.
metadataobject (optional)Advisory-only. Shape { kind?, tags? }, where kind is a CustodianKind and tags is a list of strings.

AccountRef

[Source]

The minimal reference to an account — just its r-address and the owning connector's native id. Account extends it, and a connector's primary field is an AccountRef.

FieldTypeDescription
addressstringThe XRPL r-address.
custodianRefCustodianRef (optional)The owning connector's opaque native id for the account.

AccountSelector

[Source]

How you choose the source account for an operation — the from option on writes. It is one of three forms:

FormTypeDescription
r-addressstringA bare r-address string.
{ address }objectAn object holding an explicit r-address.
{ signer, account? }objectA connector, optionally narrowed to one of the accounts it owns (by r-address).

SubmissionResult

[Source]

SubmissionResult<T> is generic over T, the operation-specific intent payload — each operation's reference page lists its own return fields. The table below is the same one those pages inline under Returns.

Every simpleXRPL write resolves to a SubmissionResult<T> — a union tagged by source, with the backend's raw response preserved verbatim. Its common fields are:

FieldTypeDescription
intentTThe operation-specific output — see the operation's own return fields.
source'xrpld' | 'custody' | 'palisade'Which backend produced the result; discriminates response.
responseTxResponse | custody record | Palisade recordThe backend's raw response, preserved verbatim.
txHashstring (optional)The XRPL transaction hash, once the transaction is on-ledger.
intentIdstring (optional)The custodian intent id, when the path produced one. Hold onto this to resume via client.intent.
idempotencyKeystring (optional)The UUIDv7 this submission carried. Pass it back as a later call's idempotencyKey to retry to the same intent rather than creating a duplicate.
Note

txHash being absent doesn't mean the write failed — on a governed connector the intent may still be awaiting approval. Hold onto intentId and resume through client.intent; see Intent Inspector.

SubmissionHandle

[Source]

Returned by an async submission, and by client.intent.handleFor(). kind is a CustodianKind; custodian is the connector itself.

A SubmissionHandle lets you poll or wait for a terminal state without holding the original request open.

FieldTypeDescription
kindCustodianKindThe connector kind that owns the underlying intent or transaction.
idstringThe custodian-native id (an intent id), or the XRPL transaction hash for local signing.
custodianCustodianThe connector that produced this handle.
poll() => Promise<SubmissionResult>A non-blocking snapshot of the current state.
wait(timeoutMs?: number) => Promise<SubmissionResult>Block until terminal state or the timeout (defaults to the connector's).
cancel() => Promise<void> (optional)Cancel the pending intent, where the backend supports it.

OnChainResult

[Source]

The outcome of a transaction confirmed on-ledger, returned by client.intent.awaitOnChain().

An OnChainResult reports a transaction that reached the ledger.

FieldTypeDescription
txHashstringThe XRPL transaction hash.
mptIssuanceIdstring (optional)Present only when the transaction created an MPT issuance.

FeeIntent

[Source]

A normalized fee intent. The public surface never takes raw drops for the fee itself — each path translates this to its backend's fee model. Used as a connector's defaultFee and as the per-write fee option.

FieldTypeDescription
priority'low' | 'medium' | 'high' (optional)Priority tier. Backends that cannot honor it auto-price and warn.
maxFeeDropsstring (optional)The maximum fee cap, in drops — the common contract across all paths.

CustodianKind

[Source]

Which signing backend a connector adapts. One of four string literals:

'local' · 'ripple-custody' · 'palisade-custody' · 'external'

CustodianRef

[Source]

A connector's opaque native identifier for an account, read only by the connector that owns it. One of:

FormTypeUsed by
account idstringAccount-id connectors.
{ vaultId, walletId }objectVault-based connectors, e.g. Palisade.
absentundefinedLocal wallets, which have no backend-side id.