CuratorMetadata

Documentation for eth_defi.vault.curator.CuratorMetadata Python class.

class CuratorMetadata

Bases: TypedDict

Curator metadata as exported to JSON for R2 upload.

This is the public API shape consumed by the frontend. Twitter and LinkedIn fields are expanded to full URLs rather than bare handles/identifiers.

Attributes summary

slug

URL-safe slug identifier (e.g.

name

Human-readable display name.

website

Company website URL, or None.

curatorwatch

CuratorWatch profile URL, or None.

short_description

One-line description of the curator.

long_description

Multi-paragraph Markdown description of the curator.

twitter

Full Twitter/X profile URL (e.g.

linkedin

Full LinkedIn company URL (e.g.

rss

RSS or Atom feed URL, or None.

logos

Logo URLs for available 256x256 PNG variants.

protocol_curator

Whether this curator is the protocol itself (not a third party).

canonical_feeder_id

When this curator is an alias, the slug of the canonical feeder whose posts should be used.

Methods summary

__init__(*args, **kwargs)

clear()

Remove all items from the dict.

copy()

Return a shallow copy of the dict.

fromkeys([value])

Create a new dictionary with keys from iterable and values set to value.

get(key[, default])

Return the value for key if key is in the dictionary, else default.

items()

Return a set-like object providing a view on the dict's items.

keys()

Return a set-like object providing a view on the dict's keys.

pop(k[,d])

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

setdefault(key[, default])

Insert key with a value of default if key is not in the dictionary.

update([E, ]**F)

If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values()

Return an object providing a view on the dict's values.

slug: str

URL-safe slug identifier (e.g. "gauntlet", "ostium").

name: str

Human-readable display name.

website: Optional[str]

Company website URL, or None.

curatorwatch: Optional[str]

CuratorWatch profile URL, or None.

short_description: Optional[str]

One-line description of the curator.

long_description: Optional[str]

Multi-paragraph Markdown description of the curator.

twitter: Optional[str]

Full Twitter/X profile URL (e.g. "https://x.com/gauntlet_xyz"), or None.

linkedin: Optional[str]

Full LinkedIn company URL (e.g. "https://www.linkedin.com/company/gauntlet-xyz"), or None.

rss: Optional[str]

RSS or Atom feed URL, or None.

logos: eth_defi.vault.curator.CuratorLogos

Logo URLs for available 256x256 PNG variants.

protocol_curator: bool

Whether this curator is the protocol itself (not a third party).

True for protocol-curated vaults (e.g. Ostium, Gains Network, HLP, LLP). False for third-party curators (e.g. Gauntlet, RE7 Labs).

canonical_feeder_id: Optional[str]

When this curator is an alias, the slug of the canonical feeder whose posts should be used. None for non-alias curators. Consumers should look up posts under this feeder_id instead.

__init__(*args, **kwargs)
__new__(**kwargs)
clear()

Remove all items from the dict.

copy()

Return a shallow copy of the dict.

fromkeys(value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items()

Return a set-like object providing a view on the dict’s items.

keys()

Return a set-like object providing a view on the dict’s keys.

pop(k[, d]) v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values()

Return an object providing a view on the dict’s values.