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.