Events
Core protocol events emitted by Dumpster and DumpsterSwap and how to think about them as an integration surface.
Protocol
Events are the cleanest activity surface
Dumpster and DumpsterSwap emit structured Anchor events. Read them from successful transactions to build activity history; logs are convenient, while event CPI data preserves the same events when logs are unavailable.
Dumpster events
CreateEventTradeEventCompleteEventMigrateEventTransferCreatorEventSetCreatorEventSetParamsEventCollectCreatorFeeEvent
DumpsterSwap events
CreatePoolEventBuyEventSellEventDepositEventWithdrawEventTransferCoinCreatorEventCollectCoinCreatorFeeEvent
Token creation values
CreateEvent identifies the mint, creator, name, symbol, metadata URI, bonding curve and submitting user. It also records the initialized curve's starting values:
| Field | Type | Meaning |
|---|---|---|
token_total_supply | u64 | Total token base units minted at launch |
initial_virtual_token_reserves | u64 | Starting virtual token reserve, in token base units |
initial_virtual_gor_reserves | u64 | Starting virtual GOR reserve, in native base units |
initial_real_token_reserves | u64 | Token base units initially available to buy on the curve |
Dumpster tokens use 6 decimals; GOR uses 9. SDK decoding exposes these fields in camelCase as BN values. Keep integer precision when storing them.
The event records creation, not the transaction's final reserves. A first buy in the same transaction can change reserves after the event, and later Global settings apply to new launches. Launch supply is also distinct from current mint supply, which can decrease through burns.
Use these values to record each token's launch state. Do not substitute current configuration for a missing event value.
Check transaction success and your required commitment before applying an event. Create can emit logs before a later instruction fails and rolls back the entire launch. Log and event-CPI copies describe the same creation and must not be counted twice.
Curve trade fees
The Curve program and SDK also report three fields on
TradeEvent: protocol_fee_amount, creator_fee_amount and creator. Fee
amounts are native GOR base units; the two components sum to
total_fee_amount. creator is the fee recipient at the time of that trade,
which can differ from the original launcher after a handover. A default creator
receives no creator fee.
Use the interface that matches the program version; do not calculate earnings using today's fee settings or creator.
DumpsterSwap BuyEvent and SellEvent also report creator_fee_amount and
coin_creator. The latter is the pool creator whose vault receives that trade's
fee. Use the values from the executed trade when attributing AMM earnings; a
later creator handover does not change them.
Creator fee collections
CollectCreatorFeeEvent records a nonzero native GOR payout to the creator.
CollectCoinCreatorFeeEvent records a nonzero AMM-side token payout, including
the creator, quote mint, vault token account, destination token account and
amount. For Dumpster's canonical migrated pools, the quote mint is WGOR.
Collections can be submitted outside this website; read successful transactions
to build claim history. A zero-balance collection emits no collection event.
Creator handover events
These handover rules require matching Curve and Swap program versions.
| Successful operation | Curve event | Swap event |
|---|---|---|
| Voluntary handover changes the recipient | TransferCreatorEvent | TransferCoinCreatorEvent if a migrated pool changes |
| Administrative assignment changes either record | SetCreatorEvent | TransferCoinCreatorEvent only if the pool recipient changes |
| Both records already match the requested recipient | None | None |
Same-target calls still validate the signer and required accounts. Voluntary handover rejects disagreement between the curve and pool; the designated authority can reconcile it. A pool-only administrative repair emits SetCreatorEvent with equal old_creator and new_creator and synced_to_pool=true, plus the Swap event with its actual old/new recipient. Do not discard that administrative event as an unchanged operation.
synced_to_pool means checked synchronization against a present pool succeeded, not necessarily that the pool recipient changed. A curve-only repair where the pool already names the target emits no Swap change event. A poolless handover sets synced_to_pool=false on its administrative event.
Only successful confirmed execution supports a handover projection. A failed transaction can contain logs without committing either creator change. Log and event-CPI copies represent the same event; a nested Swap event and its outer curve event describe one coordinated handover, while distinct handover instructions remain distinct actions.
Why events matter
- They are easier to index than reconstructing full state transitions from raw account diffs.
- They expose reserve snapshots and, with the matching program version, executed fee values.
- The SDK bundles the IDLs and exposes typed program instances for event parsing.