OfferCreated
Emitted when a seller successfully deposits collateral and registers a new offer. AnunlockTime of 0 indicates a spot offer; any non-zero value indicates a deferred forward offer.
Sequential identifier for the newly created offer. Indexed — use as a topic filter to track a specific offer across all subsequent events.
The address that created the offer and deposited the collateral. Indexed — filter by seller to retrieve all offers from a specific wallet.
The ERC-20 token address of the collateral asset being sold. Indexed — filter by asset to retrieve all offers for a specific token.
The ERC-20 token accepted as payment. Not indexed.
The amount the seller requested to deposit. For standard tokens this equals
escrowedAssetAmount; for fee-on-transfer tokens it may be higher.The actual amount of collateral received and escrowed by the venue, measured by balance delta. This is the true starting
assetRemaining for the offer.The quote-token cost per one whole unit (
10^assetDecimals) of the asset token.Unix timestamp after which the offer can no longer be filled.
Unix timestamp at which claim tokens become redeemable. A value of
0 identifies this as a spot offer.The address permitted to fill the offer, or
address(0) for a public offer with no fill restriction.OfferFilled
Emitted on every fill, whether partial or complete. A single offer may emit multipleOfferFilled events as it is filled incrementally by one or more buyers.
Identifier of the offer that was filled. Indexed — join with
OfferCreated on this field to associate fills with their originating offer.The address that executed the fill and paid the quote tokens. For deferred offers, this is also the address that receives the minted claim tokens. Indexed.
The number of asset units requested in this fill, in base units.
The net asset tokens actually received by the buyer (spot) or credited as claim tokens (deferred). May differ from
assetUnits for fee-on-transfer asset tokens in spot fills.The base quote cost for this fill before fees, computed via the cumulative
mulDiv formula.The net quote tokens actually received by the seller after any transfer fees.
The nominal protocol fee computed as
quoteCost * feeBps / 10000.The net fee amount actually received by the fee recipient after any transfer fees.
The total amount of quote tokens debited from the buyer’s balance (cost + fee + any transfer taxes). This is the buyer’s true total outlay.
OfferCancelled
Emitted when the seller cancels the remaining unfilled portion of an offer. After this event, the offer accepts no further fills, and the escrowed remainder is returned to the seller.Identifier of the cancelled offer. Indexed.
The amount of asset collateral debited from the venue’s escrow (the full unfilled remainder).
The net amount of asset tokens actually received by the seller. For fee-on-transfer tokens, this may be less than
assetDebited.SeriesCreated
Emitted the first time a deferred offer is filled for a unique(asset, unlockTime) pair. This event signals that a new claim token contract has been deployed and that the series is now active. Subsequent deferred fills sharing the same pair do not re-emit this event — they silently join the existing series.
The deterministic series identifier, derived as
keccak256(abi.encode(asset, unlockTime)). Indexed.The ERC-20 asset token address for this series. Indexed.
The Unix timestamp at which claim tokens for this series become redeemable.
The address of the newly deployed ERC-20 claim token contract for this series. Store this address in your indexer — it is the token that buyers receive when filling deferred offers in this series.
Redeemed
Emitted when a claim token holder burns their tokens after the unlock time and receives the underlying collateral. Redemption is permissionless — any holder can redeem any amount of their claim tokens onceblock.timestamp >= unlockTime.
The series identifier from which collateral was redeemed. Indexed.
The address that burned claim tokens and received the collateral. Indexed.
The number of claim tokens burned in this redemption.
The net amount of asset collateral received by the redeemer. For standard tokens this equals
amount (1:1 backing). For fee-on-transfer asset tokens, this may be less than amount due to the transfer fee on the outbound transfer.FeeUpdated
Emitted when the admin changes the protocol fee rate or fee recipient.The new fee rate in basis points. Capped at
MAX_FEE_BPS (100 bps = 1%).The new address that will receive protocol fees on future offers.
EntryPauseUpdated
Emitted when the admin toggles the entry pause state.true when new offer creation and fills are paused; false when they are resumed.Querying Events with ethers.js
Use typed event filters to query events efficiently. The following example retrieves allOfferCreated events for a specific asset address across a block range:
null for any indexed parameter you do not want to filter on. The three indexed fields of OfferCreated correspond to topic positions [1], [2], and [3] in the raw log, so you can also compose raw eth_getLogs filters directly if you are working outside of an ethers.js context.