Skip to content

Node

The node client provides wallet-aware transaction signing, public chain query helpers, and dYdX order helpers.

dYdX Node client.

Public dYdX node query helpers.

Public dataclass

Read-only node queries that proxy chain modules.

Source code in pkg/src/dydx/node/public.py
@dataclass
class Public:
  """Read-only node queries that proxy chain modules."""

  chain: Chain
  """Chain client used for read-only gRPC queries."""

  async def get_account(self, address: str) -> auth_proto.QueryAccountResponse:
    """Query a chain account.

    Args:
      address: dYdX bech32 account address.

    Returns:
      Cosmos auth account query response.
    """
    return await self.chain.auth.account(address)

  async def get_account_balances(self, address: str) -> bank_proto.QueryAllBalancesResponse:
    """Query all balances for an account.

    Args:
      address: dYdX bech32 account address.

    Returns:
      Cosmos bank all-balances query response.
    """
    return await self.chain.bank.all_balances(address)

  async def get_balance(self, *, address: str, denom: str) -> bank_proto.QueryBalanceResponse:
    """Query one balance for an account.

    Args:
      address: dYdX bech32 account address.
      denom: Cosmos denomination to query.

    Returns:
      Cosmos bank balance query response.
    """
    return await self.chain.bank.balance(address=address, denom=denom)

  async def get_latest_block(self) -> tendermint_proto.GetLatestBlockResponse:
    """Query the latest block.

    Returns:
      Latest block response from the Cosmos Tendermint service.
    """
    return await self.chain.tendermint.get_latest_block()

  async def get_block_by_height(self, height: int) -> tendermint_proto.GetBlockByHeightResponse:
    """Query a block by height.

    Args:
      height: Block height to query.

    Returns:
      Block response from the Cosmos Tendermint service.
    """
    return await self.chain.tendermint.get_block_by_height(height)

  async def get_tx(self, hash: str) -> tx_proto.GetTxResponse:
    """Query a transaction by hash.

    Args:
      hash: Transaction hash in hex form.

    Returns:
      Cosmos transaction query response.
    """
    return await self.chain.tx.get_tx(hash)

  async def get_clob_pair(self, id: int) -> clob_proto.QueryClobPairResponse:
    """Query a CLOB pair.

    Args:
      id: dYdX CLOB pair ID.

    Returns:
      CLOB pair query response.
    """
    return await self.chain.clob.clob_pair(id)

  async def get_clob_pairs(self) -> clob_proto.QueryClobPairAllResponse:
    """Query CLOB pairs.

    Returns:
      CLOB pair list query response.
    """
    return await self.chain.clob.clob_pairs()

  async def get_price(self, id: int) -> prices_proto.QueryMarketPriceResponse:
    """Query a market price.

    Args:
      id: dYdX market ID.

    Returns:
      Market price query response.
    """
    return await self.chain.prices.market_price(id)

  async def get_subaccount(
    self, *, owner: str, number: int = 0,
  ) -> subaccounts_proto.QuerySubaccountResponse:
    """Query a subaccount.

    Args:
      owner: dYdX bech32 owner address.
      number: dYdX subaccount number under the owner address.

    Returns:
      Subaccount query response.
    """
    return await self.chain.subaccounts.subaccount(owner, number)

  async def simulate_tx_bytes(self, tx_bytes: bytes) -> tx_proto.SimulateResponse:
    """Simulate raw transaction bytes.

    Args:
      tx_bytes: Encoded `TxRaw` bytes.

    Returns:
      Cosmos transaction simulation response.
    """
    return await self.chain.tx.simulate(tx_bytes=tx_bytes)

  async def broadcast_tx_bytes(
    self,
    tx_bytes: bytes,
    *,
    mode: tx_proto.BroadcastMode = tx_proto.BroadcastMode(2),
  ) -> tx_proto.BroadcastTxResponse:
    """Broadcast raw transaction bytes.

    Args:
      tx_bytes: Encoded `TxRaw` bytes.
      mode: Cosmos broadcast mode.

    Returns:
      Cosmos transaction broadcast response.
    """
    return await self.chain.tx.broadcast(tx_bytes, mode=mode)

chain instance-attribute

Chain client used for read-only gRPC queries.

broadcast_tx_bytes(tx_bytes, *, mode=tx_proto.BroadcastMode(2)) async

Broadcast raw transaction bytes.

Parameters:

Name Type Description Default
tx_bytes bytes

Encoded TxRaw bytes.

required
mode BroadcastMode

Cosmos broadcast mode.

BroadcastMode(2)

Returns:

Type Description
BroadcastTxResponse

Cosmos transaction broadcast response.

Source code in pkg/src/dydx/node/public.py
async def broadcast_tx_bytes(
  self,
  tx_bytes: bytes,
  *,
  mode: tx_proto.BroadcastMode = tx_proto.BroadcastMode(2),
) -> tx_proto.BroadcastTxResponse:
  """Broadcast raw transaction bytes.

  Args:
    tx_bytes: Encoded `TxRaw` bytes.
    mode: Cosmos broadcast mode.

  Returns:
    Cosmos transaction broadcast response.
  """
  return await self.chain.tx.broadcast(tx_bytes, mode=mode)

get_account(address) async

Query a chain account.

Parameters:

Name Type Description Default
address str

dYdX bech32 account address.

required

Returns:

Type Description
QueryAccountResponse

Cosmos auth account query response.

Source code in pkg/src/dydx/node/public.py
async def get_account(self, address: str) -> auth_proto.QueryAccountResponse:
  """Query a chain account.

  Args:
    address: dYdX bech32 account address.

  Returns:
    Cosmos auth account query response.
  """
  return await self.chain.auth.account(address)

get_account_balances(address) async

Query all balances for an account.

Parameters:

Name Type Description Default
address str

dYdX bech32 account address.

required

Returns:

Type Description
QueryAllBalancesResponse

Cosmos bank all-balances query response.

Source code in pkg/src/dydx/node/public.py
async def get_account_balances(self, address: str) -> bank_proto.QueryAllBalancesResponse:
  """Query all balances for an account.

  Args:
    address: dYdX bech32 account address.

  Returns:
    Cosmos bank all-balances query response.
  """
  return await self.chain.bank.all_balances(address)

get_balance(*, address, denom) async

Query one balance for an account.

Parameters:

Name Type Description Default
address str

dYdX bech32 account address.

required
denom str

Cosmos denomination to query.

required

Returns:

Type Description
QueryBalanceResponse

Cosmos bank balance query response.

Source code in pkg/src/dydx/node/public.py
async def get_balance(self, *, address: str, denom: str) -> bank_proto.QueryBalanceResponse:
  """Query one balance for an account.

  Args:
    address: dYdX bech32 account address.
    denom: Cosmos denomination to query.

  Returns:
    Cosmos bank balance query response.
  """
  return await self.chain.bank.balance(address=address, denom=denom)

get_block_by_height(height) async

Query a block by height.

Parameters:

Name Type Description Default
height int

Block height to query.

required

Returns:

Type Description
GetBlockByHeightResponse

Block response from the Cosmos Tendermint service.

Source code in pkg/src/dydx/node/public.py
async def get_block_by_height(self, height: int) -> tendermint_proto.GetBlockByHeightResponse:
  """Query a block by height.

  Args:
    height: Block height to query.

  Returns:
    Block response from the Cosmos Tendermint service.
  """
  return await self.chain.tendermint.get_block_by_height(height)

get_clob_pair(id) async

Query a CLOB pair.

Parameters:

Name Type Description Default
id int

dYdX CLOB pair ID.

required

Returns:

Type Description
QueryClobPairResponse

CLOB pair query response.

Source code in pkg/src/dydx/node/public.py
async def get_clob_pair(self, id: int) -> clob_proto.QueryClobPairResponse:
  """Query a CLOB pair.

  Args:
    id: dYdX CLOB pair ID.

  Returns:
    CLOB pair query response.
  """
  return await self.chain.clob.clob_pair(id)

get_clob_pairs() async

Query CLOB pairs.

Returns:

Type Description
QueryClobPairAllResponse

CLOB pair list query response.

Source code in pkg/src/dydx/node/public.py
async def get_clob_pairs(self) -> clob_proto.QueryClobPairAllResponse:
  """Query CLOB pairs.

  Returns:
    CLOB pair list query response.
  """
  return await self.chain.clob.clob_pairs()

get_latest_block() async

Query the latest block.

Returns:

Type Description
GetLatestBlockResponse

Latest block response from the Cosmos Tendermint service.

Source code in pkg/src/dydx/node/public.py
async def get_latest_block(self) -> tendermint_proto.GetLatestBlockResponse:
  """Query the latest block.

  Returns:
    Latest block response from the Cosmos Tendermint service.
  """
  return await self.chain.tendermint.get_latest_block()

get_price(id) async

Query a market price.

Parameters:

Name Type Description Default
id int

dYdX market ID.

required

Returns:

Type Description
QueryMarketPriceResponse

Market price query response.

Source code in pkg/src/dydx/node/public.py
async def get_price(self, id: int) -> prices_proto.QueryMarketPriceResponse:
  """Query a market price.

  Args:
    id: dYdX market ID.

  Returns:
    Market price query response.
  """
  return await self.chain.prices.market_price(id)

get_subaccount(*, owner, number=0) async

Query a subaccount.

Parameters:

Name Type Description Default
owner str

dYdX bech32 owner address.

required
number int

dYdX subaccount number under the owner address.

0

Returns:

Type Description
QuerySubaccountResponse

Subaccount query response.

Source code in pkg/src/dydx/node/public.py
async def get_subaccount(
  self, *, owner: str, number: int = 0,
) -> subaccounts_proto.QuerySubaccountResponse:
  """Query a subaccount.

  Args:
    owner: dYdX bech32 owner address.
    number: dYdX subaccount number under the owner address.

  Returns:
    Subaccount query response.
  """
  return await self.chain.subaccounts.subaccount(owner, number)

get_tx(hash) async

Query a transaction by hash.

Parameters:

Name Type Description Default
hash str

Transaction hash in hex form.

required

Returns:

Type Description
GetTxResponse

Cosmos transaction query response.

Source code in pkg/src/dydx/node/public.py
async def get_tx(self, hash: str) -> tx_proto.GetTxResponse:
  """Query a transaction by hash.

  Args:
    hash: Transaction hash in hex form.

  Returns:
    Cosmos transaction query response.
  """
  return await self.chain.tx.get_tx(hash)

simulate_tx_bytes(tx_bytes) async

Simulate raw transaction bytes.

Parameters:

Name Type Description Default
tx_bytes bytes

Encoded TxRaw bytes.

required

Returns:

Type Description
SimulateResponse

Cosmos transaction simulation response.

Source code in pkg/src/dydx/node/public.py
async def simulate_tx_bytes(self, tx_bytes: bytes) -> tx_proto.SimulateResponse:
  """Simulate raw transaction bytes.

  Args:
    tx_bytes: Encoded `TxRaw` bytes.

  Returns:
    Cosmos transaction simulation response.
  """
  return await self.chain.tx.simulate(tx_bytes=tx_bytes)

Orders

See Orders for order placement and cancellation helpers.

Transactions

See Transactions for signing and broadcast helpers.

Wallet

See Wallet for wallet derivation and signing primitives.