Skip to main content

Types

73 structs and enums appear in endpoint arguments, view results and event payloads. They are encoded with the MultiversX top-encoding rules; every SDK that reads the ABI decodes them for you.

Generated from the build output

Contract crate corelayer 1.0.0, built with multiversx-sc 0.66.2 on rustc 1.94.1 (e408947bf 2026-03-25). The ABI itself is served at /abi/corelayer.abi.json.

Account​

struct

131 B funded with no block, 297 B with current + previous, 406 B with all three blocks. Every endpoint loads the record once, mutates it in memory and stores it once.

FieldType
versionu8
flagsu16bit0 AUTO_RENEW, bit1 PAYG_ENABLED, bit2 PAYG_AUTO_TOPUP, bit3 PAYG_CLOSING.
creditsu64micro-USDC.
payg_escrowu64micro-USDC.
payg_budgetu64micro-USDC; u64::MAX = "all credits".
max_payg_priceu64micro-USDC per RU, 0 = no ceiling.
max_renew_priceu64> 0 whenever AUTO_RENEW.
renew_tier_idu320 = same tier.
payg_disabled_at_msu640 unless PAYG_CLOSING.
last_sequ32
last_line_msu64R5 anchor (K-18): moves forward only on an accepted settlement line.
last_topup_period_idu32K-16.
sender_countu32
grant_ruu64
grant_expiry_msu64
created_msu64
currentOption<PlanBlockV1>
queuedOption<PlanBlockV1>
previousOption<PrevBlockV1>
used_ru_reportedu64
policy_idu32
latency_classu8
agent_idu64

AccountView​

struct

getAccount, getAccountById: the derived fields after a virtual advance.

FieldType
account_idu32
stateu8
at_msu64
period_idu32
period_start_msu64
period_end_msu64
tier_idu32
cap_ruu64
tariff_at_purchaseu64
payg_bpsu32
payg_priceu64
period_flagsu8
recordAccount

AutoRenewSetData​

struct

FieldType
metaEventMeta
enabledbool
renew_tier_idu32
max_renew_priceu64

AutoRenewSkippedData​

struct

FieldType
metaEventMeta
period_idu32
tier_idu32
priceu64
max_renew_priceu64
creditsu64

BatchTotals​

struct

28 bytes, informational: committed into usage_chain_head, never interpreted.

FieldType
rowsu32
ru_capu64
ru_paygu64
ru_otheru64

BlockKind​

enum

VariantDiscriminant
New0
Queued1
Upgrade2
AutoRenew3

ByData​

struct

settlementPaused, settlementUnpaused.

FieldType
metaEventMeta
byAddress

ConfigView​

struct

getConfig. reporter and treasury are the EFFECTIVE addresses; the pending pair is reported raw so a watcher sees a scheduled change.

FieldType
chain_idbytes
code_versionbytes
storage_versionu32
ownerAddress
operatorAddress
reporterAddress
pending_reporterAddress
pending_reporter_effective_msu64
treasuryAddress
pending_treasuryAddress
pending_treasury_effective_msu64
usdc_token_idTokenIdentifier
wegld_token_idTokenIdentifier
pair_addressAddress
wrapper_addressAddress
venue_validatedbool

CreditsGrantedData​

struct

FieldType
metaEventMeta
amountu64
reason_codeu8
credits_afteru64
escrow_afteru64

CustomBuyerChangedData​

struct

FieldType
metaEventMeta
addedbool

DepositData​

struct

FieldType
metaEventMeta
amountu64
credits_afteru64
escrow_afteru64
account_idu32
is_newbool

DistLedger​

struct

Storage key distLedger. Read once and written once per deposit; every amount comes from internal accounting, never from the contract balance.

FieldType
versionu8
poolBigUintRelayer share not yet pushed (atto-EGLD).
total_egld_inBigUint
total_treasury_paidBigUint
total_distributedBigUint
total_emergency_withdrawnBigUint
last_distribution_msu64
dist_sequ64

DistParams​

struct

Storage key distParams. A non-forced distribution runs only when BOTH gates pass (distribution.md §3.3). It carries the leading version: u8 of contract.md §3 and the hand-written version-byte decoder that goes with it: §3's rule ("every top-level stored record starts with version: u8") and §7.3's "Scalar defaults" row both name DistParams as a versioned struct, and distParams is read on every deposit inside try_distribute, so a later release that adds a third parameter needs the discriminator to take the lazy per-record migration path (see SPEC-DEVIATIONS DEV-20).

FieldType
versionu8
min_interval_msu64
min_amountBigUint

DistributionDeferredData​

struct

FieldType
metaEventMeta
poolBigUint
reasonu8

DistributionParamsChangedData​

struct

FieldType
metaEventMeta
min_interval_msu64
min_amountBigUint

DistributionStateView​

struct

getDistributionState.

FieldType
ledgerDistLedger
paramsDistParams
pausedbool
max_relayer_share_bpsu32SPEC-DEVIATIONS DEV-21: the share bound the owner's off-chain transaction builder must recompute against, which distribution.md §2.4 left without any read path.

EffectiveMsData​

struct

treasuryScheduled, relayerReserveScheduled: the scheduled address is the topic.

FieldType
metaEventMeta
effective_msu64

EscrowMovedData​

struct

FieldType
metaEventMeta
amountu64
to_escrowbool
period_idu32
credits_afteru64
escrow_afteru64

EventMeta​

struct

Common header. event_seq is contract-wide, +1 per event, gap-free, starts at 1.

FieldType
event_sequ64
timestamp_msu64

GrantReason​

enum

VariantDiscriminant
Trial1
SlaRemedy2
Goodwill3
ReporterIncident4

InitializedData​

struct

FieldType
metaEventMeta
chain_idbytes
code_versionbytes
storage_versionu32

MaxRelayerShareBpsChangedData​

struct

maxRelayerShareBpsChanged (SPEC-DEVIATIONS DEV-21). old_bps is what the mirror had, new_bps what every later activateRelayers / setRelayerWeights is measured against.

FieldType
metaEventMeta
old_bpsu32
new_bpsu32
byAddress

MetaOnlyData​

struct

Events whose whole payload is in the topics: treasuryPendingCancelled, ruScheduleActivated, ruSchedulePendingCancelled, tierActivated, relayerReserveChanged.

FieldType
metaEventMeta

OldAddressData​

struct

treasuryChanged: the new address is the topic.

FieldType
metaEventMeta
oldAddress

PauseChangedData​

struct

pauseChanged, distributionPauseChanged.

FieldType
metaEventMeta
pausedbool
byAddress

PauseStateView​

struct

getPauseState.

FieldType
pausedbool
deposits_pausedbool
settlement_pausedbool
distribution_pausedbool
renewals_pausedbool

PaygSetData​

struct

FieldType
metaEventMeta
enabledbool
budgetu64
auto_topupbool
max_payg_priceu64
disabled_at_msu64
credits_afteru64
escrow_afteru64

PaygSettledData​

struct

FieldType
metaEventMeta
batch_idu64
sequ32
ruu32
tariff_idxu16
price_per_ruu64
debitu64
closingbool
credits_afteru64
escrow_afteru64

PaymentSwappedData​

struct

FieldType
metaEventMeta
accountAddress
usdc_inu64
wegld_outBigUint
egld_outBigUint
treasury_partBigUint
relayer_partBigUint
treasuryAddress

PlanBlockV1​

struct

109 bytes nested, no managed types.

FieldType
block_idu64Global counter, never a timestamp.
tier_idu32
kindBlockKind
start_msu64
end_msu64start_ms + months * period_ms (checked); u64::MAX for a no-period block (K-11).
period_msu64Snapshot; 0 = no period.
monthsu80 for a no-period block.
first_period_idu32Period k of this block has period_id = first_period_id + k (K-01).
cap_ruu64
bonus_ruu64RESERVED, always 0 in v1 (K-08).
tariff_at_purchaseu64
tariff_versionu32
payg_bpsu32
payg_priceu64tariff_at_purchase * payg_bps / 10_000, exact; 0 when FLOATING.
max_sendersu32
max_ru_per_su32
burst_ruu32
rate_classu8
sla_classu8
flagsu32
period_flagsu8bit0 FLOATING.
price_paidu64

PoolDistributedData​

struct

One aggregated event per round: amount_i = unit * weight_i with the weights of registry_version reproduces every transfer exactly.

FieldType
metaEventMeta
total_sentBigUint
unitBigUint
total_weightu64
n_transfersu32
remainderBigUint
registry_versionu64
triggeru8DistTrigger: 0 deposit, 1 permissionless, 2 forced.

PoolEmergencyWithdrawnData​

struct

FieldType
metaEventMeta
amountBigUint
toAddress

PrevBlockV1​

struct

57 bytes: what late settlement lines and the renew path need from the block that ended.

FieldType
block_idu64
tier_idu32
first_period_idu32
last_period_idu32
end_msu64
tariff_at_purchaseu64
payg_bpsu32
payg_priceu64
period_flagsu8
max_ru_per_su32
burst_ruu32

PricingConfigView​

struct

getPricingConfig: everything /v1/pricing needs in one query.

FieldType
tariffu64Raw storage, as getTariff.
pending_tariffu64
pending_tariff_effective_msu64
tariff_versionu32
effective_tariffu64Lazy rule applied, as getEffectiveTariff.
effective_tariff_versionu32
ru_scheduleRuScheduleView
min_depositu64
max_depositu640 = unlimited.
tariff_minu64
tariff_maxu64
tariff_granularityu64
tariff_increase_notice_msu64

RateClassEntry​

struct

View output of getRateClasses.

FieldType
classu8
max_ru_per_su32
burst_ruu32

RateClassSetData​

struct

FieldType
metaEventMeta
max_ru_per_su32
burst_ruu32

RateClassV1​

struct

Storage key rate_class(class): the on-chain upper bound the settlement reject rule R5 uses, snapshotted into every plan block (K-09).

FieldType
versionu8
max_ru_per_su32
burst_ruu32

RelayerAddedData​

struct

FieldType
metaEventMeta
infoRelayerInfo
registry_versionu64

RelayerInfo​

struct

Storage key relayerInfo(addr). Cold path: owner calls and views.

FieldType
versionu8
operator_idu32Forward hook; v1 requires OPERATOR_ID_CORELAYER.
sla_classu8Forward hook; 0 shared pool, 1 Standard, 2 Priority, 3 Dedicated.
shardu8Computed on-chain with get_shard_of_address; always below 3.
stateRelayerState
weightu32Non-zero exactly when state == Active (invariant I5).
stakeBigUintForward hook; always 0 in v1.
registered_at_msu64
activatable_at_msu64RESERVED, always equal to registered_at_ms in v1 (K-20).
state_changed_at_msu64

RelayerMetaChangedData​

struct

FieldType
metaEventMeta
operator_idu32
sla_classu8
registry_versionu64

RelayerRemovedData​

struct

FieldType
metaEventMeta
registry_versionu64

RelayerRow​

struct

View output of getRelayers.

FieldType
addressAddress
infoRelayerInfo

RelayerState​

enum

None = 0 is the answer of getRelayerState for an address that is not ours.

VariantDiscriminant
None0
Registered1
Active2
Draining3
Retired4

RelayerStateChangedData​

struct

FieldType
metaEventMeta
old_stateRelayerState
new_stateRelayerState
weightu32
registry_versionu64

RelayerWeightsChangedData​

struct

One event per call, not per relayer.

FieldType
metaEventMeta
entriesList<WeightEntry>
total_weightu64

RenewedData​

struct

renewed: every subscribed field (kind = AutoRenew) plus three.

FieldType
metaEventMeta
block_idu64
kindBlockKind
monthsu8
start_msu64
end_msu64
period_msu64
cap_ruu64
bonus_ruu64
tariff_at_purchaseu64
tariff_versionu32
payg_bpsu32
payg_priceu64
floatingbool
max_sendersu32
rate_classu8
sla_classu8
flagsu32
price_paidu64
credited_backu64
referencebytes
credits_afteru64
escrow_afteru64
gap_msu64
grid_alignedbool
callerAddress

RenewOutcome​

enum

VariantDiscriminant
Ok0
NotDue1
NotEnabled2
Price3
Credits4
TierInactive5
QueuedStarted6
NoAccount7
Paused8renewals_paused: nothing charged, no block written, no revert (K-19).

RenewQuote​

struct

quoteRenew.

FieldType
outcomeRenewOutcome
duebool
tier_idu32
priceu64
new_start_msu64
new_end_msu64

ReporterScheduledData​

struct

FieldType
metaEventMeta
currentAddress
pendingAddress
effective_msu64
byAddress

RoleChangedData​

struct

operatorChanged, reporterChanged.

FieldType
metaEventMeta
oldAddress
newAddress
byAddress

RuGrantedData​

struct

FieldType
metaEventMeta
ruu64
grant_ru_afteru64
expiry_msu64
reasonGrantReason

RuScheduleScheduledData​

struct

FieldType
metaEventMeta
hasharray32<u8>
effective_msu64

RuScheduleView​

struct

getRuSchedule, with the lazy rule applied at the evaluation time.

FieldType
ru_size_attou64
versionu32
hasharray32<u8>
pending_versionu32
pending_hasharray32<u8>
pending_effective_msu64

SenderChangedData​

struct

senderAdded, senderRemoved.

FieldType
metaEventMeta
count_afteru32
feeu64
credits_afteru64
escrow_afteru64

SettleConfigChangedData​

struct

FieldType
metaEventMeta
max_settle_per_windowu64
ceilingu64
sender_fee_ruu32
pending_sender_fee_ruu32
pending_sender_fee_effective_msu64
byAddress

SettleLineRejectedData​

struct

FieldType
metaEventMeta
batch_idu64
sequ32
period_idu32
ruu32

SettlementStateView​

struct

getSettlementState. reporter is the effective address.

FieldType
reporterAddress
settlement_pausedbool
settle_stateSettleState
totalsTotals

SettleState​

struct

Storage key settle_state: ONE struct, one read and one write per endpoint.

FieldType
versionu8
last_batch_idu64
last_window_end_msu64
usage_chain_headarray32<u8>
settle_window_start_msu64
settle_window_debitedu64
max_settle_per_windowu64
max_settle_per_window_ceilingu64
sender_fee_ruu32
pending_sender_fee_ruu32Lazy 48 h activation of a fee INCREASE; an effective time of 0 means none pending.
pending_sender_fee_effective_msu64

SubscribedData​

struct

subscribed. The spec names the opaque purchase reference ref; that is a Rust keyword, so the ABI publishes it as reference (SPEC-DEVIATIONS.md DEV-23 — clients, and the account_blocks.ref column of §16.4, map ref to this name).

FieldType
metaEventMeta
block_idu64
kindBlockKind
monthsu8
start_msu64
end_msu64
period_msu64
cap_ruu64
bonus_ruu64Always 0 in v1 (K-08).
tariff_at_purchaseu64
tariff_versionu32
payg_bpsu32
payg_priceu64
floatingbool
max_sendersu32
rate_classu8
sla_classu8
flagsu32
price_paidu64
credited_backu64
referencebytes
credits_afteru64
escrow_afteru64

SwapVenueChangedData​

struct

FieldType
metaEventMeta
pairAddress
wrapperAddress
usdc_token_idTokenIdentifier
wegld_token_idTokenIdentifier

TariffActivatedData​

struct

FieldType
metaEventMeta
tariffu64
effective_msu64The SCHEDULED time, which is what tariff_hist stores.
materialised_msu64The block time of the mutation that materialised it.

TariffEntry​

struct

One element of tariff_hist (1-based, append-only). effective_ms is the SCHEDULED activation time, not the time of materialisation (K-10).

FieldType
tariffu64
effective_msu64

TariffPendingCancelledData​

struct

FieldType
metaEventMeta
cancelled_valueu64
would_have_been_effective_msu64

TariffScheduledData​

struct

FieldType
metaEventMeta
oldu64
newu64
effective_msu64

TierSavedData​

struct

FieldType
metaEventMeta
tierTierV1

TierStatus​

enum

VariantDiscriminant
Draft0
Active1
Legacy2
Retired3

TierStatusChangedData​

struct

FieldType
metaEventMeta
oldTierStatus
newTierStatus
successor_tier_idu32

TierV1​

struct

Storage key tiers(tier_id). Editable only while Draft; after activateTier only status and successor_tier_id change (pricing.md §4.2).

FieldType
versionu8
tier_idu32
slugbytes
statusTierStatus
cap_ruu64
price_unitsu64
payg_bpsu32
period_msu64
max_sendersu32
rate_classu8
sla_classu8
flagsu32
successor_tier_idu32
created_msu64

Totals​

struct

Storage key totals: the conservation counters, all micro-USDC. INV-C1: total_deposited + total_granted == total_credits + total_escrow + total_spent_plans + total_settled_payg + total_fees.

FieldType
versionu8
total_depositedu64
total_grantedu64
total_creditsu64
total_escrowu64
total_spent_plansu64
total_settled_paygu64
total_feesu64

U64ChangedData​

struct

minDepositChanged, maxDepositChanged.

FieldType
metaEventMeta
oldu64
newu64

UpgradedData​

struct

FieldType
metaEventMeta
old_storage_versionu32
new_storage_versionu32
code_versionbytes

UsageSettledData​

struct

FieldType
metaEventMeta
operator_idu32Always OPERATOR_ID_CORELAYER in v1.
window_end_msu64
usage_rootarray32<u8>
usage_chain_headarray32<u8>
rowsu32
ru_capu64
ru_paygu64
ru_otheru64
lines_acceptedu32
lines_rejectedu32
debit_totalu64
window_debited_afteru64

WeightEntry​

struct

One element of relayerWeightsChanged.entries.

FieldType
addressAddress
weightu32