Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Events

Events say what a transaction or a Pulse’s deferred phase established. A transaction’s events are part of its effects, which the receipts root commits to. Deferred-phase events (claims joining the log, batches sealing, epochs changing, …) belong to the Pulse.

sion events and GET /v1/events?from=<pulse>&limit=<n> list them as JSON with the Pulse they happened in; receipts print them as sentences (sion_cli::describe::event). Amounts in JSON are micro-units (10⁻⁶ of the asset).

$ sion events --from 1 --limit 400
…
Pulse    24  {"EpochChanged":{"epoch":1,"active":5,"rewards":2240}}
…

The same event as a sentence: epoch 1 began with 5 active validators; 0.00224 USD paid in rewards.

Money and accounts

EventFieldsEmitted bySentence
Transferredasset, outputs [(account, amount)]Transferpaid <amount> <asset> to <account>[, …]
Mintedto, asset, amountFaucetminted <amount> <asset> for <account>
PolicyRotatedaccountRotatePolicy<account>'s keys rotated

Knowledge and assurance

EventFieldsEmitted bySentence
ClaimSubmittedclaimIssueClaimclaim <id> submitted
ClaimIssuedclaim, log_indexdeferred phaseclaim <id> joined the knowledge log at position <n>
ClaimRejectedclaim, reasondeferred phaseclaim <id> rejected: <reason>
AtomRegisteredatomdeferred phaseassumption <id> registered
BondPostedatom, owner, amountdeferred phase<owner> posted a <amount> USD bond behind assumption <id>
Reservedreservation, claim, amount (κ·V)Acceptreserved <amount> USD of claim <id>'s backing
ReleasedreservationRelease (reservations that expire are released without an event)reservation <id> released
ChallengeOpenedchallenge, claim, targetChallengechallenge opened against assumption <atom> of claim <id>
ChallengeRuledchallenge, upheldRulechallenge upheld or challenge rejected
Slashedatom, amountRule (upheld)<amount> USD slashed from assumption <atom>
Falsifiedclaim, causes [atoms]Rule (upheld)claim <id> falsified
Compensatedreservation, consumer, amountRule (upheld)<consumer> compensated <amount> USD
BondWithdrawnatom, amountWithdrawBond<amount> USD withdrawn from the bond behind assumption <atom>
ClaimIndexedentry, owner, key, claim, countIndexClaim<owner>'s latest claim under "<key>" is claim <id> (<count> named so far)

Charters and Escrow Lanes

EventFieldsEmitted bySentence
CharterCreatedcharter, allotmentCreateCharter, Delegatecharter <id> created
CharterRevokedcharterRevokeChartercharter <id> revoked
CharterReclaimedcharter, amountReclaimCharter<amount> USD returned from charter <id>
AgentPaidcharter, payee, amount, receiptAgentPayagent paid <amount> USD to <payee>[ (receipt claim <id>)]
AgentRegisteredagent, account, allotmentRegisterAgentagent <id> registered, signing as <account>
AgentSpawnedagent, parent, account, allotmentSpawnAgents (one per subagent)subagent <id> launched by <parent>, signing as <account>, or for a keyless subagent (account is keyless_account(agent)) subagent <id> launched by <parent>, keyless: its nearest keyed ancestor signs for it
CohortSpawnedcohort, parent, first, countSpawnCohortcohort <id> of <n> committed under <parent> (lineage indices <first> to <last>)
AgentMaterializedagent, cohort, index, account, allotmentMaterializeAgents (one per member)member <index> of cohort <id> materialized as agent <id>, keyless, or …, signing as <account>
AgentNarrowedagent, by, narrowing (None when lifted)NarrowAgentagent <id> narrowed by <account>, with everything below it, or the narrowing of agent <id> lifted by <account>
AgentCardSetagent, cardSetAgentCardagent <id>'s card is now <hash>
AgentSuspendedagent, bySuspendAgentagent <id> suspended by <account>, with everything below it
AgentResumedagentResumeAgentagent <id> resumed
BoundedCreatedbounded, allotmentsCreateBoundedshared total created with <n> allotments
AllotmentUsedallotment, amountSpendAllotment, ReturnAllotment, Rebalance<amount> USD used from an allotment

Markets

EventFieldsEmitted bySentence
MarketCreatedmarketCreateMarketmarket <id> opened
OrderSubmittedmarket, orderSubmitOrderorder entered market <id>
BatchSealedmarket, batch, ordersdeferred phasebatch <b> sealed with <n> orders
BatchRevealedmarket, batch, revealedRevealBatch<n> sealed orders of batch <b> revealed
BatchClearedmarket, batch, price, volume, welfareClearBatchbatch <b> cleared: <volume> units at one price <price>, or batch <b> cleared with no trade
BatchRefundedmarket, batchdeferred phase (clearing deadline passed)batch <b> refunded

Validators and epochs

EventFieldsEmitted bySentence
ValidatorRegisteredvalidator, operator, stakeRegisterValidatorvalidator <id> registered by <operator> with <stake> USD at stake
ValidatorLeavingvalidatorUnstakevalidator <id> is leaving the active set
StakeWithdrawnvalidator, amount (stake returned)WithdrawStake<amount> USD of stake withdrawn from validator <id>
RewardsClaimedvalidator, amountClaimRewards<amount> USD of rewards claimed for validator <id>
ValidatorSlashedvalidator, amount (its own stake forfeited), reporter, reward (reporter’s share of the stake forfeited, its pool’s included)ReportEquivocationvalidator <id> slashed: <amount> USD forfeited, <reward> USD of it to <reporter> for the report
PoolSlashedvalidator, amount (forfeited from its pool)ReportEquivocation, when the offender has a poolvalidator <id>'s pool lost <amount> USD of its delegated stake
EpochChangedepoch (the new one), active (size of its active set), rewards (paid from the fees of the epoch that ended)deferred phase (epoch’s last Pulse)epoch <e> began with <n> active validators; <rewards> USD paid in rewards

Forced inclusion

EventFieldsEmitted bySentence
ForcedPostedintent, shard, deadlinedeferred phase (Pulse that committed the intent)forced intent <id> is now owed by shard <s>, due by Pulse <p>
ForcedDismissedintent, reason (free text)deferred phaseforced intent <id> dismissed: <reason>
ForcedResolvedintentdeferred phase (deadline: the intent can no longer execute)forced intent <id> settled
ForcedOverdueintent, sharddeferred phase (deadline: the intent could still execute)shard <s> missed its deadline for forced intent <id>
ShardRotatedshard, rotation (count this epoch)deferred phase, after ForcedOverdueshard <s>'s committee was replaced (rotation <n> this epoch)

See Censorship resistance for when each happens.

Payment streams

EventFieldsEmitted bySentence
StreamOpenedstream, payer, payee, depositOpenStream<payer> opened stream <id> to <payee> with <deposit> USD in escrow
StreamSettledstream, position, head (the element at position), amountSettleStreamstream <id> settled to step <p>: <amount> USD paid
StreamToppedUpstream, deposit, untilTopUpStreamstream <id> topped up by <deposit> USD, open until Pulse <until>
StreamClosedstream, refundCloseStreamstream <id> closed: <refund> USD returned to its payer

Memory logs

EventFieldsEmitted bySentence
MemoryOpenedlog, account (the writer), agentOpenMemorymemory log <id> opened[ for agent <id>]
MemoryCommittedlog, size, root, commits (the head’s sequence number), sealedCommitMemorymemory log <id> now holds <n> atoms (head <k>)[, sealed]

The atoms a commit adds have the commit’s Pulse as their transaction time.

Task Charters

EventFieldsEmitted bySentence
TaskPostedtask, poster, worker, amount, deadlinePostTasktask <id> posted with <amount> USD in escrow, for <worker>|open to anyone, until Pulse <deadline>
TaskSettledtask, worker, result, amount, reservationSettleTasktask <id> settled: <amount> USD paid to <worker> for result <id>, its backing reserved
TaskCancelledtask, refund, toCancelTasktask <id> cancelled: <refund> USD refunded to <account>

If a claim a paid result rests on is later falsified, the payer’s compensation appears as Compensated events of the Rule that broke it.

Pooled stake

EventFieldsEmitted bySentence
Delegateddelegation, validator, owner, amount, sharesDelegateStake<owner> delegated <amount> USD to validator <id> as delegation <id>, earning from the epoch's end
Undelegateddelegation, rewards (paid now), withdrawable_atUndelegatedelegation <id> stopped earning (<rewards> USD of rewards paid) and is withdrawable from Pulse <p>
DelegationWithdrawndelegation, amount (stake returned)WithdrawDelegation<amount> USD withdrawn from delegation <id>
DelegatorRewardsClaimeddelegation, amountClaimDelegatorRewards<amount> USD of rewards collected from delegation <id>
CommissionSetvalidator, permilleSetCommissionvalidator <id>'s commission becomes <p>% at the epoch's end

Rewards reach pools at epoch ends, in the deferred phase, without an event of their own: EpochChanged’s rewards is the total paid to validators and their pools together. sion stake show prints what each delegation is owed.

Storage deals

EventFieldsEmitted bySentence
DealPosteddeal, client, provider (or none: open), size, price, rounds, collateralPostDealstorage deal <id> posted: <n> leaves, <r> rounds at <price> USD each, <collateral> USD of collateral, for <provider>|open to any provider
DealAccepteddeal, provider, custody, startAcceptDeal<provider> accepted storage deal <id> (custody record <id>); rounds start at Pulse <p>
StorageProvendeal, custody, roundProveStorage, one per dealround <i> of storage deal <id> proven
DealSettleddeal, rounds, amountSettleDeal<amount> USD paid for <n> proven round(s) of storage deal <id>
DealCloseddeal, refund, paid, returned, forfeited, missedCloseDealstorage deal <id> closed: <refund> USD refunded, <paid> USD paid, <returned> USD of collateral returned, <forfeited> USD forfeited, <m> round(s) missed

Forfeited collateral reaches the treasury in the deferred phase, as a Treasury item, without an event of its own.

Failed transactions

A transaction that fails keeps no events: its receipt reads Failed (<reason>); nothing happened except the fee of <fee> USD. A rejected transaction has no effects at all.