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.