Skip to content

Subaccount

Subaccount

Subaccount operations.

Initialize subaccount (internal use - use from_api() instead).

Parameters:

Name Type Description Default
subaccount_id int

Unique identifier for this subaccount

required
auth AuthContext

Authentication context for signing operations

required
config EnvConfig

Environment configuration

required
markets MarketOperations

Market operations interface

required
transactions TransactionOperations

Transaction operations interface

required
public_api PublicAPI

Public API interface

required
private_api PrivateAPI

Private API interface for authenticated requests

required
_state PrivateGetSubaccountResultSchema | None

Initial state (internal use only)

None

Attributes

collateral property

Manage collateral and margin.

currency property

currency: str

Currency of subaccount.

id property

id: int

Subaccount ID.

margin_type property

margin_type: MarginType

Margin type of subaccount (PM (Portfolio Margin), PM2 (Portfolio Margin 2), or SM (Standard Margin))

markets property

Access market data and instruments.

mmp property

Market maker protection settings.

orders property

Place and manage orders.

positions property

positions: PositionOperations

View and manage positions.

rfq property

Request for quote operations.

state property

state: PrivateGetSubaccountResultSchema

Current mutable state (positions, orders, collateral, etc).

trades property

View trade history.

transactions property

transactions: TransactionOperations

Query transaction status and details.

Functions

from_api classmethod

from_api(
    *,
    subaccount_id: int,
    auth: AuthContext,
    config: EnvConfig,
    logger: LoggerType,
    markets: MarketOperations,
    transactions: TransactionOperations,
    public_api: PublicAPI,
    private_api: PrivateAPI
) -> Subaccount

Validate subaccount by fetching its state from the API.

This performs a network call to verify the subaccount exists and caches immutable properties like margin_type and currency.

Parameters:

Name Type Description Default
subaccount_id int

Unique identifier for this subaccount

required
auth AuthContext

Authentication context for signing operations

required
config EnvConfig

Environment configuration

required
markets MarketOperations

Market operations interface

required
transactions TransactionOperations

Transaction operations interface

required
public_api PublicAPI

Public API interface

required
private_api PrivateAPI

Private API interface for authenticated requests

required

Returns:

Type Description
Subaccount

Initialized Subaccount instance

Raises:

Type Description
APIError

If subaccount does not exist or API call fails

refresh

refresh() -> Subaccount

Refresh mutable state from API.

sign_action

sign_action(
    *,
    module_address: ChecksumAddress,
    module_data: ModuleData,
    signature_expiry_sec: Optional[int] = None,
    nonce: Optional[int] | None = None
) -> SignedAction