Skip to main content

Interface: ServerToClientEvents

Defined in: packages/overcast-core/src/rfq/events.ts:417

Server→client broadcasts, keyed by event name. Use as the first type parameter on a client Socket<...> and the second on the server Server<...>, so .on(...) / .emit(...) are checked on both ends.

Properties​

error​

error: (payload) => void;

Defined in: packages/overcast-core/src/rfq/events.ts:428

Parameters​

ParameterType
payload{ code: | "NOT_REGISTERED" | "WRONG_ROLE" | "VALIDATION_FAILED" | "RFQ_NOT_FOUND" | "RFQ_NOT_OPEN" | "QUOTE_NOT_FOUND" | "NOT_OWNER" | "ALREADY_ACCEPTED" | "BAD_SIGNATURE" | "SETTLEMENT_SUBMIT_FAILED" | "COLLATERAL_SUBMIT_FAILED" | "ACCEPT_OFFER_FAILED" | "INTERNAL"; message: string; }
payload.code| "NOT_REGISTERED" | "WRONG_ROLE" | "VALIDATION_FAILED" | "RFQ_NOT_FOUND" | "RFQ_NOT_OPEN" | "QUOTE_NOT_FOUND" | "NOT_OWNER" | "ALREADY_ACCEPTED" | "BAD_SIGNATURE" | "SETTLEMENT_SUBMIT_FAILED" | "COLLATERAL_SUBMIT_FAILED" | "ACCEPT_OFFER_FAILED" | "INTERNAL"
payload.messagestring

Returns​

void


newQuote​

newQuote: (payload) => void;

Defined in: packages/overcast-core/src/rfq/events.ts:419

Parameters​

ParameterTypeDescription
payload{ creator: Address; details: { borrowAllowed: boolean; collateralAmount: string; collateralAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; domain: number; endTimestamp: number; premiumAmount: string; premiumAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementAmount: string; settlementAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementLayer: string; startTimestamp: number; }; expiry: number; quoteId: string; rfqId: string; }-
payload.creatorAddressThe creator of the quote.
payload.details{ borrowAllowed: boolean; collateralAmount: string; collateralAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; domain: number; endTimestamp: number; premiumAmount: string; premiumAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementAmount: string; settlementAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementLayer: string; startTimestamp: number; }-
payload.details.borrowAllowedboolean-
payload.details.collateralAmountstring-
payload.details.collateralAsset{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.collateralAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.collateralAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.collateralAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.collateralAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.collateralAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.collateralAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.collateralAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.collateralAsset.logoUrl?stringLogo of the coin
payload.details.collateralAsset.name?stringHuman name of the asset.
payload.details.collateralAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.collateralAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.collateralAsset.volatility?numberVolatility of the asset
payload.details.domainnumber-
payload.details.endTimestampnumber-
payload.details.premiumAmountstring-
payload.details.premiumAsset{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.premiumAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.premiumAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.premiumAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.premiumAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.premiumAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.premiumAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.premiumAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.premiumAsset.logoUrl?stringLogo of the coin
payload.details.premiumAsset.name?stringHuman name of the asset.
payload.details.premiumAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.premiumAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.premiumAsset.volatility?numberVolatility of the asset
payload.details.settlementAmountstring-
payload.details.settlementAsset{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.settlementAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.settlementAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.settlementAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.settlementAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.settlementAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.settlementAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.settlementAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.settlementAsset.logoUrl?stringLogo of the coin
payload.details.settlementAsset.name?stringHuman name of the asset.
payload.details.settlementAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.settlementAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.settlementAsset.volatility?numberVolatility of the asset
payload.details.settlementLayerstring-
payload.details.startTimestampnumber-
payload.expirynumberWhen this quote becomes invalid.
payload.quoteIdstring-
payload.rfqIdstring-

Returns​

void


newRfq​

newRfq: (payload) => void;

Defined in: packages/overcast-core/src/rfq/events.ts:418

Parameters​

ParameterTypeDescription
payload{ creator: Address; details: { borrowAllowed?: boolean; collateralAmount?: string; collateralAsset?: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; domain?: number; endTimestamp?: number; premiumAmount?: string; premiumAsset?: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementAmount?: string; settlementAsset?: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementLayer?: string; startTimestamp?: number; }; domain: number; expiry: number; options?: { [key: string]: unknown; responder?: Bytes32[]; }; rfqId: string; side: "TAKER" | "MAKER"; }-
payload.creatorAddressThe creator of the RFQ.
payload.details{ borrowAllowed?: boolean; collateralAmount?: string; collateralAsset?: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; domain?: number; endTimestamp?: number; premiumAmount?: string; premiumAsset?: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementAmount?: string; settlementAsset?: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementLayer?: string; startTimestamp?: number; }Curated details of the RFQ.
payload.details.borrowAllowed?boolean-
payload.details.collateralAmount?string-
payload.details.collateralAsset?{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.collateralAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.collateralAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.collateralAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.collateralAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.collateralAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.collateralAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.collateralAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.collateralAsset.logoUrl?stringLogo of the coin
payload.details.collateralAsset.name?stringHuman name of the asset.
payload.details.collateralAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.collateralAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.collateralAsset.volatility?numberVolatility of the asset
payload.details.domain?number-
payload.details.endTimestamp?number-
payload.details.premiumAmount?string-
payload.details.premiumAsset?{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.premiumAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.premiumAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.premiumAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.premiumAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.premiumAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.premiumAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.premiumAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.premiumAsset.logoUrl?stringLogo of the coin
payload.details.premiumAsset.name?stringHuman name of the asset.
payload.details.premiumAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.premiumAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.premiumAsset.volatility?numberVolatility of the asset
payload.details.settlementAmount?string-
payload.details.settlementAsset?{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.settlementAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.settlementAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.settlementAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.settlementAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.settlementAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.settlementAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.settlementAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.settlementAsset.logoUrl?stringLogo of the coin
payload.details.settlementAsset.name?stringHuman name of the asset.
payload.details.settlementAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.settlementAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.settlementAsset.volatility?numberVolatility of the asset
payload.details.settlementLayer?string-
payload.details.startTimestamp?number-
payload.domainnumberThe deployment this RFQ is for, so a subscriber can filter by chain even though details is partial. Authoritative over details.domain.
payload.expirynumberWhen this RFQ becomes invalid.
payload.options?{ [key: string]: unknown; responder?: Bytes32[]; }RFQ options; there might be an unknown option in the future.
payload.options.responder?Bytes32[]Optional list that are allowed to respond. If not provided, everyone can respond
payload.rfqIdstring-
payload.side"TAKER" | "MAKER"RFQ is designed in a way that it is side un-aware. Both makers or takers of options can create RFQs.

Returns​

void


quoteAccepted​

quoteAccepted: (payload) => void;

Defined in: packages/overcast-core/src/rfq/events.ts:421

Parameters​

ParameterTypeDescription
payload{ details: { borrowAllowed: boolean; collateralAmount: string; collateralAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; domain: number; endTimestamp: number; premiumAmount: string; premiumAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementAmount: string; settlementAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementLayer: string; startTimestamp: number; }; maker: Address; optionId: Bytes32; quoteId: string; rfqId: string; taker: Address; }-
payload.details{ borrowAllowed: boolean; collateralAmount: string; collateralAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; domain: number; endTimestamp: number; premiumAmount: string; premiumAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementAmount: string; settlementAsset: { address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }; settlementLayer: string; startTimestamp: number; }-
payload.details.borrowAllowedboolean-
payload.details.collateralAmountstring-
payload.details.collateralAsset{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.collateralAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.collateralAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.collateralAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.collateralAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.collateralAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.collateralAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.collateralAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.collateralAsset.logoUrl?stringLogo of the coin
payload.details.collateralAsset.name?stringHuman name of the asset.
payload.details.collateralAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.collateralAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.collateralAsset.volatility?numberVolatility of the asset
payload.details.domainnumber-
payload.details.endTimestampnumber-
payload.details.premiumAmountstring-
payload.details.premiumAsset{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.premiumAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.premiumAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.premiumAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.premiumAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.premiumAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.premiumAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.premiumAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.premiumAsset.logoUrl?stringLogo of the coin
payload.details.premiumAsset.name?stringHuman name of the asset.
payload.details.premiumAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.premiumAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.premiumAsset.volatility?numberVolatility of the asset
payload.details.settlementAmountstring-
payload.details.settlementAsset{ address: string; cashLike?: boolean; chain?: string; coinGeckoId?: string; decimals?: number; domain?: number; lastKnownPriceUsd?: number; logoUrl?: string; name?: string; rwa?: boolean; symbol?: string; volatility?: number; }-
payload.details.settlementAsset.addressstringThe on-chain address (mint) identifying the asset, in the layer's own encoding (base58 on Solana, 0x… on an EVM chain) — see Address.
payload.details.settlementAsset.cashLike?booleanWhether or not the asset can be treated similar to cash
payload.details.settlementAsset.chain?stringThe chain the asset lives on, e.g. "base". A display label only — it is a caller-chosen name (see ChainName), carried by no wire payload and never used to key or look up an asset. domain is the identity.
payload.details.settlementAsset.coinGeckoId?stringCoinGecko id for price lookups, e.g. usd-coin.
payload.details.settlementAsset.decimals?numberNumber of decimal places in the asset's native units.
payload.details.settlementAsset.domain?numberThe protocol domain the asset lives on — the same separator OptionDetails.domain carries and every indexed event is tagged with, and the first half of the asset's key in an AssetRegistry. Optional because a single-domain deployment has nothing to disambiguate; such an asset registers as a wildcard, matching any domain that has no asset of its own at that address. Populate it as soon as one backend serves two domains — an address is only unique within a domain.
payload.details.settlementAsset.lastKnownPriceUsd?numberLast known USD price, sourced best-effort from an external feed (CoinGecko). Untrusted — do not use for settlement, signing, valuation, or any value transfer. It is informational only (e.g. showing an approximate notional in a picker), may be stale, missing, or wrong, and is never part of the canonical, content-addressed asset identity. Present only once a price has actually been fetched for the asset.
payload.details.settlementAsset.logoUrl?stringLogo of the coin
payload.details.settlementAsset.name?stringHuman name of the asset.
payload.details.settlementAsset.rwa?booleanWhether the asset is a real-world asset (RWA) — e.g. tokenized private equity — rather than a native crypto asset.
payload.details.settlementAsset.symbol?stringHuman ticker, e.g. USDC.
payload.details.settlementAsset.volatility?numberVolatility of the asset
payload.details.settlementLayerstring-
payload.details.startTimestampnumber-
payload.makerAddress-
payload.optionIdBytes32Content-address of the option the accepted quote settled into.
payload.quoteIdstring-
payload.rfqIdstring-
payload.takerAddress-

Returns​

void


quoteCancelled​

quoteCancelled: (payload) => void;

Defined in: packages/overcast-core/src/rfq/events.ts:420

Parameters​

ParameterTypeDescription
payload{ operation?: { curve: SignatureCurve; digest: Bytes32; expiry: number; salt: Bytes32; signature: Hex; signingKey: Bytes32; }; quoteId: string; }-
payload.operation?{ curve: SignatureCurve; digest: Bytes32; expiry: number; salt: Bytes32; signature: Hex; signingKey: Bytes32; }-
payload.operation.curveSignatureCurveThe curve that was used to sign the digest
payload.operation.digestBytes32The digest that has been signed
payload.operation.expirynumberUnix seconds after which the operation is no longer valid.
payload.operation.saltBytes32Random per-operation salt (nonce) for replay protection.
payload.operation.signatureHexed25519 signature over the operation digest — 64 raw bytes in hex.
payload.operation.signingKeyBytes32The public key that produced signature.
payload.quoteIdstring-

Returns​

void


rfqCancelled​

rfqCancelled: (payload) => void;

Defined in: packages/overcast-core/src/rfq/events.ts:423

An RFQ was cancelled by its creator (or its creator disconnected).

Parameters​

ParameterType
payload{ rfqId: string; }
payload.rfqIdstring

Returns​

void


rfqExpired​

rfqExpired: (payload) => void;

Defined in: packages/overcast-core/src/rfq/events.ts:425

An RFQ reached its TTL without being accepted.

Parameters​

ParameterType
payload{ rfqId: string; }
payload.rfqIdstring

Returns​

void


rfqSkipped​

rfqSkipped: (payload) => void;

Defined in: packages/overcast-core/src/rfq/events.ts:427

A quoter explicitly skipped an RFQ. Sent to the RFQ's creator only.

Parameters​

ParameterTypeDescription
payload{ quoter: Address; reason?: string; rfqId: string; }-
payload.quoterAddressThe quoter that skipped.
payload.reason?stringThe quoter's optional reason, as given in SkipRfqPayload.
payload.rfqIdstring-

Returns​

void