derive.account
Documentation for eth_defi.derive.account Python module.
Derive account balance and collateral reading functions.
This module provides functions for reading account balances and collateral information from Derive.xyz accounts.
Functions
|
Fetch collateral balances for a Derive subaccount. |
|
Fetch comprehensive account summary including collaterals and margin info. |
|
Fetch subaccount IDs for a Derive wallet. |
Classes
Complete summary of a Derive account. |
|
Single collateral balance in a Derive account. |
- class CollateralBalance
Bases:
objectSingle collateral balance in a Derive account.
#: Token symbol (e.g., “USDC”, “WETH”) token: str
#: Available balance (not used in positions) available: Decimal
#: Total balance including locked total: Decimal
#: Balance locked in positions locked: Decimal
#: Token contract address on Derive Chain token_address: HexAddress | None = None
- __init__(token, available, total, locked, token_address=None)
- Parameters
token (str) –
available (decimal.Decimal) –
total (decimal.Decimal) –
locked (decimal.Decimal) –
token_address (Optional[eth_typing.evm.HexAddress]) –
- Return type
None
- class AccountSummary
Bases:
objectComplete summary of a Derive account.
#: Derive wallet address (smart contract wallet) account_address: HexAddress
#: Subaccount ID subaccount_id: int
#: List of collateral balances collaterals: list[CollateralBalance]
#: Total account value in USD total_value_usd: Decimal
#: Account margin status (e.g., “healthy”, “warning”) margin_status: str | None = None
#: Initial margin requirement initial_margin: Decimal | None = None
#: Maintenance margin requirement maintenance_margin: Decimal | None = None
- __init__(account_address, subaccount_id, collaterals, total_value_usd, margin_status=None, initial_margin=None, maintenance_margin=None)
- Parameters
account_address (eth_typing.evm.HexAddress) –
subaccount_id (int) –
collaterals (list[eth_defi.derive.account.CollateralBalance]) –
total_value_usd (decimal.Decimal) –
margin_status (str | None) –
initial_margin (decimal.Decimal | None) –
maintenance_margin (decimal.Decimal | None) –
- Return type
None
- fetch_subaccount_ids(client)
Fetch subaccount IDs for a Derive wallet.
- Parameters
client (DeriveApiClient) – Authenticated Derive API client with session key.
- Returns
List of subaccount IDs (may be empty if no subaccounts exist).
- Raises
ValueError – If authentication fails.
- Return type
- fetch_account_collaterals(client, subaccount_id=None)
Fetch collateral balances for a Derive subaccount.
Requires authenticated client with session key (minimum scope: read_only).
Example:
from eth_defi.derive.authentication import DeriveApiClient from eth_defi.derive.account import fetch_account_collaterals client = DeriveApiClient(...) client.session_key_private = "0x..." collaterals = fetch_account_collaterals(client) for col in collaterals: print(f"{col.token}: {col.available} available, {col.locked} locked")- Parameters
client (DeriveApiClient) – Authenticated Derive API client with session key
subaccount_id (int | None) – Subaccount ID (defaults to client.subaccount_id)
- Returns
List of collateral balances
- Raises
ValueError – If authentication fails or account not found
- Return type
- fetch_account_summary(client, subaccount_id=None)
Fetch comprehensive account summary including collaterals and margin info.
Combines multiple API calls to build a complete account picture.
Example:
from eth_defi.derive.authentication import DeriveApiClient from eth_defi.derive.account import fetch_account_summary client = DeriveApiClient(...) client.session_key_private = "0x..." summary = fetch_account_summary(client) print(f"Total value: ${summary.total_value_usd}") print(f"Margin status: {summary.margin_status}") for col in summary.collaterals: print(f" {col.token}: {col.total}")- Parameters
client (DeriveApiClient) – Authenticated Derive API client with session key
subaccount_id (int | None) – Subaccount ID (defaults to client.subaccount_id)
- Returns
Complete account summary
- Raises
ValueError – If authentication fails or account not found
- Return type