Skip to main content

Variable: assetSchema

const assetSchema: ZodObject<{
address: ZodString;
cashLike: ZodOptional<ZodBoolean>;
chain: ZodOptional<ZodString>;
coinGeckoId: ZodOptional<ZodString>;
decimals: ZodOptional<ZodNumber>;
domain: ZodOptional<ZodNumber>;
lastKnownPriceUsd: ZodOptional<ZodNumber>;
logoUrl: ZodOptional<ZodString>;
name: ZodOptional<ZodString>;
rwa: ZodOptional<ZodBoolean>;
symbol: ZodOptional<ZodString>;
volatility: ZodOptional<ZodNumber>;
}, $strip>;

Defined in: packages/overcast-core/src/assets/asset.ts:25

Curated metadata describing a tradeable asset, keyed by the pair (domain, address) — the protocol domain the asset lives on plus its on-chain address in that layer's own encoding (Address). This is display data, so the address is spelled the way a human reads it, not as the canonical Bytes32 slot core hashes. Resolving one from the other is OvercastUtils.formatAddress's job, which is why every curation entry point takes the layer's utils.

Purely additive: it never replaces the address used for signing / content-addressing, only annotates it. Metadata is also never a permission — the protocol trades whatever asset an offer's terms name, so an asset nobody has curated is perfectly tradeable; it simply renders as its bare address, in native units, until someone describes it.

Defined as a zod schema so it can be reused for DTO validation on the wire; the Asset type is inferred from it.