xerberus.constants

Documentation for eth_defi.xerberus.constants Python module.

Shared constants for Xerberus integration.

Centralises API URLs, default paths, and configuration values used by eth_defi.xerberus.session, eth_defi.xerberus.database, and eth_defi.xerberus.scanner.

Module Attributes

XERBERUS_API_URL

Xerberus public REST API base URL.

XERBERUS_USER_AGENT

User-Agent header for API requests.

XERBERUS_SCORE_SCALE

Score scale label embedded in every export record.

XERBERUS_VAULT_PLATFORMS

Platforms accepted by GET /vault/list.

XERBERUS_DEFAULT_REQUESTS_PER_MINUTE

Hard rate-limit cap under the public 10 requests / 60 s quota.

XERBERUS_DEFAULT_MIN_REQUEST_INTERVAL_SECONDS

Minimum spacing between authenticated requests (pacing under the minute cap).

XERBERUS_DEFAULT_MAX_SCORE_AGE_DAYS

Export max-age for scores (days).

XERBERUS_DEFAULT_TIMEOUT

Default HTTP request timeout in seconds.

XERBERUS_DEFAULT_REPORT_LIMIT

Default cap for report URL backfill per run.

Functions

resolve_xerberus_api_email()

Resolve the registered email for Xerberus API auth from the environment.

resolve_xerberus_database_path()

Resolve the Xerberus DuckDB database path.

XERBERUS_API_URL: str = 'https://api.xerberus.io/public/v1'

Xerberus public REST API base URL.

All endpoint paths are appended to this, e.g. XERBERUS_API_URL + "/registry/scores".

XERBERUS_DATABASE_PATH: pathlib.Path = PosixPath('/home/runner/.tradingstrategy/vaults/xerberus/xerberus.duckdb')

Default DuckDB path for Xerberus risk data.

XERBERUS_RATE_LIMIT_SQLITE_DATABASE: pathlib.Path = PosixPath('/home/runner/.tradingstrategy/vaults/xerberus/rate-limit.sqlite')

Default SQLite database path for rate limiting state.

XERBERUS_USER_AGENT: str = 'eth-defi/xerberus'

User-Agent header for API requests.

XERBERUS_SCORE_SCALE: str = '0_100_higher_is_better'

Score scale label embedded in every export record.

Higher composite scores indicate better risk posture (opposite polarity to Core3 PoL, where lower is safer).

XERBERUS_VAULT_PLATFORMS: tuple[str, ...] = ('ipor', 'morpho', 'spark', 't3tris')

Platforms accepted by GET /vault/list.

XERBERUS_DEFAULT_REQUESTS_PER_MINUTE: float = 8.0

Hard rate-limit cap under the public 10 requests / 60 s quota.

XERBERUS_DEFAULT_MIN_REQUEST_INTERVAL_SECONDS: float = 7.5

Minimum spacing between authenticated requests (pacing under the minute cap).

XERBERUS_DEFAULT_MAX_SCORE_AGE_DAYS: int = 30

Export max-age for scores (days). Older snapshots are treated as missing.

XERBERUS_DEFAULT_TIMEOUT: float = 60.0

Default HTTP request timeout in seconds.

XERBERUS_DEFAULT_REPORT_LIMIT: int = 50

Default cap for report URL backfill per run.

resolve_xerberus_database_path()

Resolve the Xerberus DuckDB database path.

Scripts share the same XERBERUS_DATABASE_PATH environment variable override. Keeping the resolver next to XERBERUS_DATABASE_PATH avoids each caller repeating the same environment lookup.

Returns

Path from XERBERUS_DATABASE_PATH or the default DuckDB path.

Return type

pathlib.Path

resolve_xerberus_api_email()

Resolve the registered email for Xerberus API auth from the environment.

Xerberus requires the email registered with the API key on every authenticated request (x-user-email header). This helper only reads XERBERUS_API_EMAIL.

It does not invent, default, or derive an email from git config, hostname, or other heuristics. Callers and agents must not guess the value: if this returns None, the operator must set the env var or pass api_email= explicitly into create_xerberus_session().

See README-xerberus.md (Authentication section).

Returns

Email string from XERBERUS_API_EMAIL, or None if unset.

Return type

Optional[str]