create_xerberus_session

Documentation for eth_defi.xerberus.session.create_xerberus_session function.

create_xerberus_session(api_url='https://api.xerberus.io/public/v1', api_key=None, api_email=None, retries=5, backoff_factor=0.5, requests_per_minute=8.0, min_request_interval=7.5, pool_maxsize=8, rate_limit_db_path=PosixPath('/home/runner/.tradingstrategy/vaults/xerberus/rate-limit.sqlite'))

Create a XerberusSession configured for Xerberus API.

The session is configured with:

  • Dual auth headers (x-api-key + x-user-email)

  • Minute-bucket rate limiting under the public 10/min quota (default 8/min)

  • Minimum request spacing to avoid burst-then-idle behaviour

  • Retry logic for 429/5xx with Retry-After respect

Prefer passing credentials explicitly when they are already available (e.g. after source .local-test.env loaded operator secrets):

import os

from eth_defi.xerberus.session import create_xerberus_session

session = create_xerberus_session(
    api_key=os.environ["XERBERUS_API_KEY"],
    api_email=os.environ["XERBERUS_API_EMAIL"],
)

Or rely on environment defaults (operator-set only; agents must never invent the email):

session = create_xerberus_session()
Parameters
  • api_url (str) – Xerberus API base URL.

  • api_key (Optional[str]) – API key. If None, reads from XERBERUS_API_KEY. Pass explicitly when known.

  • api_email (Optional[str]) – Email registered with the API key (x-user-email). If None, reads from XERBERUS_API_EMAIL. Pass explicitly when known. Do not guess this value.

  • retries (int) – Maximum retry attempts for failed requests.

  • backoff_factor (float) – Exponential backoff factor.

  • requests_per_minute (float) – Hard minute-bucket cap (default 8, under the 10/min public limit).

  • min_request_interval (float) – Minimum seconds between authenticated requests.

  • pool_maxsize (int) – Connection pool size (serial clients can keep this small).

  • rate_limit_db_path (pathlib.Path) – SQLite path for rate-limit state.

Returns

Configured XerberusSession.

Return type

eth_defi.xerberus.session.XerberusSession