Skip to content

XRPLBridge pallet

Derived from live runtime metadata on TRN root (pallet index 18, captured 2026-05-02). For prose-style documentation see XRPLBridge on the curated reference side.

Pallet index
18
Calls
18
Events
19
Errors
27
Storage items
22
Constants
7

Calls (extrinsics)

XRPLBridge.submit_transaction

See [Pallet::submit_transaction].

ts
api.tx.xRPLBridge.submit_transaction(ledger_index: u64, transaction_hash: H512, transaction: {"_enum":{"Payment":"{\"amount\":\"u128\",\"address\":\"H160\"}","CurrencyPayment":"{\"amount\":\"u128\",\"address\":\"H160\",\"currency\":\"PalletXrplBridgeXrplCurrency\"}","Xls20":"{\"tokenId\":\"[u8;32]\",\"address\":\"H160\"}"}}, timestamp: u64)
ArgumentTypeDoc
ledger_indexu64LedgerIndex
transaction_hashH512XrplTxHash
transaction{"_enum":{"Payment":"{\"amount\":\"u128\",\"address\":\"H160\"}","CurrencyPayment":"{\"amount\":\"u128\",\"address\":\"H160\",\"currency\":\"PalletXrplBridgeXrplCurrency\"}","Xls20":"{\"tokenId\":\"[u8;32]\",\"address\":\"H160\"}"}}XrplTxData
timestampu64Timestamp

Call index: 0

XRPLBridge.submit_challenge

See [Pallet::submit_challenge].

ts
api.tx.xRPLBridge.submit_challenge(transaction_hash: H512)
ArgumentTypeDoc
transaction_hashH512XrplTxHash

Call index: 1

XRPLBridge.set_payment_delay

See [Pallet::set_payment_delay].

ts
api.tx.xRPLBridge.set_payment_delay(asset_id: u32, payment_delay: Option<(u128,u32)>)
ArgumentTypeDoc
asset_idu32AssetId
payment_delayOption&lt;(u128,u32)&gt;Option<(Balance, BlockNumberFor<T>)>

Call index: 2

XRPLBridge.withdraw_xrp

See [Pallet::withdraw_xrp].

ts
api.tx.xRPLBridge.withdraw_xrp(amount: u128, destination: H160)
ArgumentTypeDoc
amountu128Balance
destinationH160XrplAccountId

Call index: 3

XRPLBridge.withdraw_xrp_with_destination_tag

See [Pallet::withdraw_xrp_with_destination_tag].

ts
api.tx.xRPLBridge.withdraw_xrp_with_destination_tag(amount: u128, destination: H160, destination_tag: u32)
ArgumentTypeDoc
amountu128Balance
destinationH160XrplAccountId
destination_tagu32u32

Call index: 4

XRPLBridge.withdraw

See [Pallet::withdraw].

ts
api.tx.xRPLBridge.withdraw(asset_id: u32, amount: u128, destination: H160, destination_tag: Option<u32>)
ArgumentTypeDoc
asset_idu32AssetId
amountu128Balance
destinationH160XrplAccountId
destination_tagOption&lt;u32&gt;Option<u32>

Call index: 15

XRPLBridge.add_relayer

See [Pallet::add_relayer].

ts
api.tx.xRPLBridge.add_relayer(relayer: [u8;20])
ArgumentTypeDoc
relayer[u8;20]T::AccountId

Call index: 5

XRPLBridge.remove_relayer

See [Pallet::remove_relayer].

ts
api.tx.xRPLBridge.remove_relayer(relayer: [u8;20])
ArgumentTypeDoc
relayer[u8;20]T::AccountId

Call index: 6

XRPLBridge.set_door_tx_fee

See [Pallet::set_door_tx_fee].

ts
api.tx.xRPLBridge.set_door_tx_fee(door_type: {"_enum":["Main","NFT"]}, fee: u64)
ArgumentTypeDoc
door_type{"_enum":["Main","NFT"]}XRPLDoorAccount
feeu64u64

Call index: 7

XRPLBridge.set_xrp_source_tag

See [Pallet::set_xrp_source_tag].

ts
api.tx.xRPLBridge.set_xrp_source_tag(source_tag: u32)
ArgumentTypeDoc
source_tagu32u32

Call index: 8

XRPLBridge.set_door_address

See [Pallet::set_door_address].

ts
api.tx.xRPLBridge.set_door_address(door_account: {"_enum":["Main","NFT"]}, door_address: Option<H160>)
ArgumentTypeDoc
door_account{"_enum":["Main","NFT"]}XRPLDoorAccount
door_addressOption&lt;H160&gt;Option<XrplAccountId>

Call index: 9

XRPLBridge.set_ticket_sequence_next_allocation

See [Pallet::set_ticket_sequence_next_allocation].

ts
api.tx.xRPLBridge.set_ticket_sequence_next_allocation(door_account: {"_enum":["Main","NFT"]}, start_ticket_sequence: u32, ticket_bucket_size: u32)
ArgumentTypeDoc
door_account{"_enum":["Main","NFT"]}XRPLDoorAccount
start_ticket_sequenceu32u32
ticket_bucket_sizeu32u32

Call index: 10

XRPLBridge.set_ticket_sequence_current_allocation

See [Pallet::set_ticket_sequence_current_allocation].

ts
api.tx.xRPLBridge.set_ticket_sequence_current_allocation(door_account: {"_enum":["Main","NFT"]}, ticket_sequence: u32, start_ticket_sequence: u32, ticket_bucket_size: u32)
ArgumentTypeDoc
door_account{"_enum":["Main","NFT"]}XRPLDoorAccount
ticket_sequenceu32u32
start_ticket_sequenceu32u32
ticket_bucket_sizeu32u32

Call index: 11

XRPLBridge.reset_settled_xrpl_tx_data

See [Pallet::reset_settled_xrpl_tx_data].

ts
api.tx.xRPLBridge.reset_settled_xrpl_tx_data(highest_settled_ledger_index: u32, submission_window_width: u32, highest_pruned_ledger_index: Option<u32>, settled_tx_data: Option<Vec<(H512,u32,PalletXrplBridgeXrpTransaction,SeedPrimitivesSignatureAccountId20)>>)
ArgumentTypeDoc
highest_settled_ledger_indexu32u32
submission_window_widthu32u32
highest_pruned_ledger_indexOption&lt;u32&gt;Option<u32>
settled_tx_dataOption&lt;Vec&lt;(H512,u32,PalletXrplBridgeXrpTransaction,SeedPrimitivesSignatureAccountId20)&gt;&gt;Option<Vec<(XrplTxHash, u32, XrpTransaction, T::AccountId)>>

Call index: 12

XRPLBridge.prune_settled_ledger_index

See [Pallet::prune_settled_ledger_index].

ts
api.tx.xRPLBridge.prune_settled_ledger_index(ledger_index: u32)
ArgumentTypeDoc
ledger_indexu32u32

Call index: 13

XRPLBridge.set_xrpl_asset_map

See [Pallet::set_xrpl_asset_map].

ts
api.tx.xRPLBridge.set_xrpl_asset_map(asset_id: u32, xrpl_currency: Option<PalletXrplBridgeXrplCurrency>)
ArgumentTypeDoc
asset_idu32AssetId
xrpl_currencyOption&lt;PalletXrplBridgeXrplCurrency&gt;Option<XRPLCurrency>

Call index: 14

XRPLBridge.generate_nft_accept_offer

See [Pallet::generate_nft_accept_offer].

ts
api.tx.xRPLBridge.generate_nft_accept_offer(nftoken_sell_offer: [u8;32])
ArgumentTypeDoc
nftoken_sell_offer[u8;32][u8; 32]

Call index: 16

XRPLBridge.withdraw_nft

See [Pallet::withdraw_nft].

ts
api.tx.xRPLBridge.withdraw_nft(token_id: (u32,u32), destination: H160)
ArgumentTypeDoc
token_id(u32,u32)TokenId
destinationH160XrplAccountId

Call index: 17

Events

XRPLBridge.TransactionAdded

FieldTypeDoc
LedgerIndexu64
XrplTxHashH512

XRPLBridge.TransactionChallenge

FieldTypeDoc
LedgerIndexu64
XrplTxHashH512

XRPLBridge.PaymentDelaySet

The payment delay was set

FieldTypeDoc
asset_idu32
payment_thresholdu128
delayu32

XRPLBridge.PaymentDelayRemoved

The payment delay was removed

FieldTypeDoc
asset_idu32

XRPLBridge.ProcessingOk

Processing an event succeeded

FieldTypeDoc
LedgerIndexu64
XrplTxHashH512

XRPLBridge.ProcessingFailed

Processing an event failed

FieldTypeDoc
LedgerIndexu64
XrplTxHashH512
DispatchError{"_enum":{"Other":"Null","CannotLookup":"Null","BadOrigin":"Null","Module":"SpRuntimeModuleError","ConsumerRemaining":"Null","NoProviders":"Null","TooManyConsumers":"Null","Token":"SpRuntimeTokenError","Arithmetic":"SpArithmeticArithmeticError","Transactional":"SpRuntimeTransactionalError","Exhausted":"Null","Corruption":"Null","Unavailable":"Null","RootNotAllowed":"Null"}}

XRPLBridge.NotSupportedTransaction

Transaction not supported

No payload.

XRPLBridge.WithdrawRequest

Request to withdraw some XRP amount to XRPL

FieldTypeDoc
proof_idu64
sender[u8;20]
asset_idu32
amountu128
destinationH160

XRPLBridge.WithdrawDelayed

A withdrawal was delayed as it was above the min_payment threshold

FieldTypeDoc
sender[u8;20]
asset_idu32
amountu128
destinationH160
delayed_payment_idu64
payment_blocku32

XRPLBridge.RelayerAdded

FieldTypeDoc
T::AccountId[u8;20]

XRPLBridge.RelayerRemoved

FieldTypeDoc
T::AccountId[u8;20]

XRPLBridge.DoorAddressSet

XRPL Door address set/reset

FieldTypeDoc
door_account{"_enum":["Main","NFT"]}
addressOption&lt;H160&gt;

XRPLBridge.DoorNextTicketSequenceParamSet

Next ticket sequence params set for the XRPL door account

FieldTypeDoc
door_account{"_enum":["Main","NFT"]}
ticket_sequence_start_nextu32
ticket_bucket_size_nextu32

XRPLBridge.DoorTicketSequenceParamSet

ticket sequence params set for the XRPL door account

FieldTypeDoc
door_account{"_enum":["Main","NFT"]}
ticket_sequenceu32
ticket_sequence_startu32
ticket_bucket_sizeu32

XRPLBridge.LedgerIndexManualPrune

FieldTypeDoc
ledger_indexu32
total_clearedu32

XRPLBridge.TicketSequenceThresholdReached

ticket sequence threshold reached for the XRPL door account

FieldTypeDoc
door_account{"_enum":["Main","NFT"]}
current_ticketu32

XRPLBridge.XrplAssetMapSet

FieldTypeDoc
asset_idu32
xrpl_currency{"symbol":"PalletXrplBridgeXrplCurrencyType","issuer":"H160"}

XRPLBridge.XrplAssetMapRemoved

FieldTypeDoc
asset_idu32
xrpl_currency{"symbol":"PalletXrplBridgeXrplCurrencyType","issuer":"H160"}

XRPLBridge.XrplTxSignRequest

Submit XRPL Tx signing request

FieldTypeDoc
proof_idu64
tx{"_enum":{"NFTokenAcceptOffer":"PalletXrplBridgeNfTokenAcceptOfferTransaction","NFTokenCreateOffer":"PalletXrplBridgeNfTokenCreateOfferTransaction"}}

Errors

XRPLBridge.AssetNotSupported

This asset is not supported by the bridge

XRPLBridge.NotPermitted

Only the active relayer is permitted to perform this action

XRPLBridge.NoAvailablePaymentIds

The paymentIds have been exhausted

XRPLBridge.DelayScheduleAtCapacity

The scheduled block cannot hold any more delayed payments

XRPLBridge.NoTransactionDetails

There is no settledXRPTransactionDetails for this ledger index

XRPLBridge.RelayerDoesNotExists

The relayer account does not exist

XRPLBridge.WithdrawInvalidAmount

Withdraw amount must be non-zero and <= u64

XRPLBridge.DoorAddressNotSet

The door address has not been configured

XRPLBridge.TooManySigners

XRPL does not allow more than 8 signers for door address

XRPLBridge.InvalidAssetDecimals

The asset decimals are too high to bridge to XRPL

XRPLBridge.InvalidCurrencyCode

The issued amount currency code is invalid

XRPLBridge.InvalidMantissaExponentConversion

Could not convert Balance to Mantissa Exponent

XRPLBridge.InvalidSigners

The signers are not known by ethy

XRPLBridge.InvalidHighestPrunedIndex

highest_pruned_ledger_index must be less than highest_settled_ledger_index - submission_window_width

XRPLBridge.TxReplay

Submitted a duplicate transaction hash

XRPLBridge.NextTicketSequenceParamsNotSet

The NextTicketSequenceParams has not been set

XRPLBridge.NextTicketSequenceParamsInvalid

The NextTicketSequenceParams is invalid

XRPLBridge.TicketSequenceParamsInvalid

The TicketSequenceParams is invalid

XRPLBridge.CannotProcessMoreTransactionsAtThatBlock

Cannot process more transactions at that block

XRPLBridge.CannotPruneActiveLedgerIndex

This ledger index is within the submission window and can't be pruned

XRPLBridge.OutSideSubmissionWindow

Transaction submitted is outside the submission window

XRPLBridge.TooManyTransactionsPerLedger

Too Many transactions per ledger

XRPLBridge.InvalidSymbolMapping

XRPL symbol to TRN asset id mapping is invalid

XRPLBridge.AssetRoundingTooHigh

The asset rounding due to saturation is too high, reduce the significant digits

XRPLBridge.Xls20Incompatible

XLS20 incompatible NFT

XRPLBridge.Xls20TokenIDNotFound

XLS20 token id not found

XRPLBridge.TestErrorRemoveAfterUsing

Storage

XRPLBridge.Relayer

List of all XRP transaction relayers

ts
await api.query.xRPLBridge.relayer(key1)
  • Key: [u8;20] (hasher: Blake2_128Concat)
  • Returns: bool

Modifier: Optional

XRPLBridge.ProcessXRPTransaction

Temporary storage to set the transactions ready to be processed at specified block number

ts
await api.query.xRPLBridge.processXRPTransaction(key1)
  • Key: u32 (hasher: Twox64Concat)
  • Returns: Vec<H512>

Modifier: Optional

XRPLBridge.ProcessXRPTransactionDetails

Stores submitted transactions from XRPL waiting to be processed Transactions will be cleared according to the submission window after processing

ts
await api.query.xRPLBridge.processXRPTransactionDetails(key1)
  • Key: H512 (hasher: Identity)
  • Returns: (u64,PalletXrplBridgeXrpTransaction,SeedPrimitivesSignatureAccountId20)

Modifier: Optional

XRPLBridge.SettledXRPTransactionDetails

Settled xrp transactions stored against XRPL ledger index

ts
await api.query.xRPLBridge.settledXRPTransactionDetails(key1)
  • Key: u32 (hasher: Twox64Concat)
  • Returns: Vec<H512>

Modifier: Optional

XRPLBridge.AssetIdToXRPL

Map TRN asset Id to XRPL symbol, storage to keep mapping between TRN -> XRPL tokens/assets

ts
await api.query.xRPLBridge.assetIdToXRPL(key1)
  • Key: u32 (hasher: Twox64Concat)
  • Returns: {"symbol":"PalletXrplBridgeXrplCurrencyType","issuer":"H160"}

Modifier: Optional

XRPLBridge.XRPLToAssetId

Map XRPL symbol to TRN asset Id, storage to keep mapping between XRPL -> TRN tokens/assets

ts
await api.query.xRPLBridge.xRPLToAssetId(key1)
  • Key: {"symbol":"PalletXrplBridgeXrplCurrencyType","issuer":"H160"} (hasher: Twox64Concat)
  • Returns: u32

Modifier: Optional

XRPLBridge.HighestSettledLedgerIndex

Highest settled XRPL ledger index

ts
await api.query.xRPLBridge.highestSettledLedgerIndex()

Returns: u32

Modifier: Default

XRPLBridge.SourceTag

Source tag to be used to indicate the transaction is happening from futureverse

ts
await api.query.xRPLBridge.sourceTag()

Returns: u32

Modifier: Default

XRPLBridge.HighestPrunedLedgerIndex

Highest pruned XRPL ledger index

ts
await api.query.xRPLBridge.highestPrunedLedgerIndex()

Returns: u32

Modifier: Default

XRPLBridge.SubmissionWindowWidth

XRPL transactions submission window width in ledger indexes

ts
await api.query.xRPLBridge.submissionWindowWidth()

Returns: u32

Modifier: Default

XRPLBridge.PaymentDelay

Payment delay for any withdraw over the specified Balance threshold

ts
await api.query.xRPLBridge.paymentDelay(key1)
  • Key: u32 (hasher: Twox64Concat)
  • Returns: (u128,u32)

Modifier: Optional

XRPLBridge.DelayedPayments

Map from DelayedPaymentId to (sender, WithdrawTx)

ts
await api.query.xRPLBridge.delayedPayments(key1)
  • Key: u64 (hasher: Identity)
  • Returns: {"sender":"SeedPrimitivesSignatureAccountId20","destinationTag":"Option<u32>","withdrawTx":"PalletXrplBridgeWithdrawTransaction"}

Modifier: Optional

XRPLBridge.DelayedPaymentSchedule

Map from block number to DelayedPaymentIds scheduled for that block

ts
await api.query.xRPLBridge.delayedPaymentSchedule(key1)
  • Key: u32 (hasher: Identity)
  • Returns: Vec<u64>

Modifier: Optional

XRPLBridge.NextDelayProcessBlock

The highest block number that has had all delayed payments processed

ts
await api.query.xRPLBridge.nextDelayProcessBlock()

Returns: u32

Modifier: Default

XRPLBridge.NextDelayedPaymentId

The next available delayedPaymentId

ts
await api.query.xRPLBridge.nextDelayedPaymentId()

Returns: u64

Modifier: Default

XRPLBridge.ChallengeXRPTransactionList

Challenge received for a transaction mapped by hash, will be cleared when validator validates

ts
await api.query.xRPLBridge.challengeXRPTransactionList(key1)
  • Key: H512 (hasher: Identity)
  • Returns: [u8;20]

Modifier: Optional

XRPLBridge.DoorTicketSequence

The current ticket sequence of the XRPL door accounts

ts
await api.query.xRPLBridge.doorTicketSequence(key1)
  • Key: {"_enum":["Main","NFT"]} (hasher: Twox64Concat)
  • Returns: u32

Modifier: Default

XRPLBridge.DoorTicketSequenceParams

The Ticket sequence params of the XRPL door accounts for the current allocation

ts
await api.query.xRPLBridge.doorTicketSequenceParams(key1)
  • Key: {"_enum":["Main","NFT"]} (hasher: Twox64Concat)
  • Returns: {"startSequence":"u32","bucketSize":"u32"}

Modifier: Default

XRPLBridge.DoorTicketSequenceParamsNext

The Ticket sequence params of the XRPL door accounts for the next allocation

ts
await api.query.xRPLBridge.doorTicketSequenceParamsNext(key1)
  • Key: {"_enum":["Main","NFT"]} (hasher: Twox64Concat)
  • Returns: {"startSequence":"u32","bucketSize":"u32"}

Modifier: Default

XRPLBridge.TicketSequenceThresholdReachedEmitted

Keeps track whether the TicketSequenceThresholdReached event is emitted for XRPL door accounts

ts
await api.query.xRPLBridge.ticketSequenceThresholdReachedEmitted(key1)
  • Key: {"_enum":["Main","NFT"]} (hasher: Twox64Concat)
  • Returns: bool

Modifier: Default

XRPLBridge.DoorTxFee

The flat fee for XRPL door txs

ts
await api.query.xRPLBridge.doorTxFee(key1)
  • Key: {"_enum":["Main","NFT"]} (hasher: Twox64Concat)
  • Returns: u64

Modifier: Default

XRPLBridge.DoorAddress

The door address on XRPL

ts
await api.query.xRPLBridge.doorAddress(key1)
  • Key: {"_enum":["Main","NFT"]} (hasher: Twox64Concat)
  • Returns: H160

Modifier: Optional

Constants

XRPLBridge.XrpAssetId

XRP Asset Id set at runtime

Type: u32
SCALE-encoded value: 0x02000000

XRPLBridge.NativeAssetId

ROOT AssetId set at runtime

Type: u32
SCALE-encoded value: 0x01000000

XRPLBridge.PalletId

This pallet's Id, used for deriving a sovereign account ID

Type: [u8;8]
SCALE-encoded value: 0x7872706c2d706567

XRPLBridge.ChallengePeriod

Challenge Period to wait for a challenge before processing the transaction

Type: u32
SCALE-encoded value: 0x96000000

XRPLBridge.MaxPrunedTransactionsPerBlock

Maximum number of transactions that can be pruned in on_idle

Type: u32
SCALE-encoded value: 0x88130000

XRPLBridge.MaxDelayedPaymentsPerBlock

Maximum number of delayed transactions that can be processed in a single block

Type: u32
SCALE-encoded value: 0xe8030000

XRPLBridge.DelayedPaymentBlockLimit

Upper limit to the number of blocks we can check per block for delayed payments

Type: u32
SCALE-encoded value: 0xe8030000

Source: live chain metadata from wss://root.rootnet.live/archive/ws · captured 2026-05-02

Curated independently by Codeology. Source-attributed reference for The Root Network. Not affiliated with Futureverse / TRN Labs.