n8n-nodes-dex
Version:
n8n node module for dYdX v4 trading and account access
112 lines (77 loc) • 3.66 kB
Markdown
# n8n-nodes-dydx
This is an n8n community node. It lets you use dYdX v4 in your n8n workflows.
dYdX v4 is a decentralized perpetual futures exchange on the Cosmos blockchain that allows users to trade cryptocurrencies with leverage.
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
[Installation](#installation)
[Operations](#operations)
[Credentials](#credentials)
[Compatibility](#compatibility)
[Resources](#resources)
[Code Structure](#code-structure)
## Installation
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
### npm
```bash
npm install n8n-nodes-dydx
```
### n8n Community Nodes
1. Go to **Settings > Community Nodes**
2. Click on **Install**
3. Enter `n8n-nodes-dydx` in **Enter npm package name**
4. Agree to the risks of using community nodes
5. Click on **Install**
After successful installation, you can start using the dYdX node in your n8n workflows!
## Code Structure
The project follows a modular architecture with the following main components:
- `Dydx`: Main n8n node implementation
- `AccountService`: Handles account-related operations (subaccounts, positions, etc.)
- `TradingService`: Manages trading operations (orders, transfers, etc.)
- `DydxApi`: Credentials management for dYdX API access
## Command Line Tools
This package includes TypeScript tools for interacting with dYdX without needing to set up n8n:
### Using the Query Tool
The simplest way to query dYdX account data:
```bash
# Using npm script
npm run query -- --address=<your_address> --network=<mainnet|testnet>
# Or directly with ts-node
npx ts-node dydx-query.ts --address=<your_address> --network=<mainnet|testnet>
```
Example:
```bash
npm run query -- --address={ADDRESS} --network=mainnet
```
This query tool:
1. Connects directly to the dYdX API
2. Retrieves subaccount information for the provided address
3. Displays account equity and open positions
### Using the Full CLI (Development)
For more comprehensive testing with position data:
```bash
npm run cli -- --address=<your_address> --network=<mainnet|testnet> [--positions=true]
```
### Parameters
- `--address`: (Required) The dYdX account address to query
- `--network`: (Optional) Network to connect to - either `mainnet` or `testnet` (default: `testnet`)
## Operations
- **List Subaccounts**: Get all subaccounts for the authenticated user
- **Get Subaccount**: Get details for a specific subaccount
- **Get Account Equity**: Get equity for a specific subaccount
- **Transfer Between Subaccounts**: Transfer funds between subaccounts
- **Place Order**: Place a limit order on the dYdX exchange
- **Cancel Order**: Cancel an existing order on the dYdX exchange
- **Smart Position**: Intelligently achieve target position size by placing and adjusting orders
- **List Positions**: Get all open positions for the authenticated user
- **Get Balance**: Get account balances
- **Market Spread**: Get best bid and ask prices for a market
## Credentials
You need the following information to authenticate with dYdX:
- **Mnemonic**: Your wallet mnemonic (seed phrase)
- **Address**: Your wallet address
- **Network**: Select either testnet or mainnet
## Compatibility
This node was developed for n8n version 1.0 and above. It was tested with version 1.0.0.
## Resources
* [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
* [dYdX v4 Documentation](https://dydxprotocol.github.io/v4-documentation/)
* [dYdX v4 client JS](https://github.com/dydxprotocol/v4-client-js)