Skip to content

bullpen hyperliquid deposit

Last updated: July 13, 2026

Deposit USDC from Arbitrum into Hyperliquid Spot.

Usage

bullpen hyperliquid deposit [OPTIONS] --amount <AMOUNT>

Live Help

Deposit USDC from Arbitrum into Hyperliquid Spot.

Bridges native USDC from your Bullpen-managed Arbitrum wallet into Hyperliquid Spot for perps trading. Requires native USDC on Arbitrum (not USDC.e) plus Arbitrum ETH for gas. Hyperliquid minimum deposit: $5.

Usage: bullpen hyperliquid deposit [OPTIONS] --amount <AMOUNT>

Options:
      --from <FROM>
          Source chain to bridge from. Currently only `arbitrum` is supported

          [default: arbitrum]

      --no-multi-wallet-warning
          Suppress the table-mode warning shown when multiple EVM wallet accounts exist

      --output <OUTPUT>
          Output format for command results

          [possible values: table, json]

      --amount <AMOUNT>
          USD amount to bridge (e.g. `5.00`). Must be ≥ $5 (Hyperliquid minimum)

      --env <ENV>
          Target environment to connect to (overrides config.toml)

          [env: BULLPEN_ENV=]
          [possible values: staging, production]

      --config <CONFIG>
          Path to a custom config.toml file (overrides $BULLPEN_CONFIG and the default location).

          Explicit --config and BULLPEN_CONFIG paths fail closed: if the file is missing, the CLI exits validation instead of silently loading defaults. Credentials still resolve via BULLPEN_HOME, so set BULLPEN_HOME too when isolating a session.

  -y, --yes
          Skip confirmation prompt. Required for non-interactive use; this command moves real funds and `BULLPEN_NON_INTERACTIVE` does NOT imply consent

      --dry-run
          Show the planned transaction without submitting. Useful for sanity checks before paying gas

      --read-only
          Enable read-only mode: blocks all mutating commands

      --non-interactive
          Suppress interactive prompts; does NOT imply --yes for money-moving commands

          [env: BULLPEN_NON_INTERACTIVE=]

  -h, --help
          Print help (see a summary with '-h')

EXAMPLES:
  # Preview an Arbitrum USDC deposit without submitting
  bullpen hyperliquid deposit --amount 10 --dry-run

  # Export the deposit dry-run as JSON
  bullpen hyperliquid deposit --amount 10 --dry-run --output json

Example Commands

bullpen hyperliquid deposit --amount 10 --dry-run
bullpen hyperliquid deposit --amount 10 --dry-run --output json

JSON Output

Contract: JSON Output Contract.

Successful output is a single JSON document. The shape below is representative for this command family; commands may add fields without breaking the shared contract.

Schema version: 1 when a command emits schema_version; otherwise treat the current command shape as contract version 1.

Top-level Keys

key type nullable notes
action string no Always hl-deposit
from_chain string no Always arbitrum for the current bridge path
from_address string no Active owner EOA that would submit the Arbitrum bridge transaction
amount_usdc string no Requested USDC amount
current_balance_usdc string yes Best-effort Arbitrum USDC balance in dry-run output
bridge_address string no Hyperliquid Arbitrum bridge contract address
dry_run boolean no True for non-submitting dry-run output
would_submit boolean no False in dry-run output; true after live Arbitrum bridge submit
signature_requested boolean no False in dry-run output; true after live Arbitrum bridge submit
bridge_transaction_submitted boolean no False in dry-run output; true after live Arbitrum bridge transaction submission
exchange_request_submitted boolean no Always false for this route because it submits an Arbitrum bridge transaction, not Hyperliquid /exchange
tx_hash string yes Live bridge transaction hash or dry-run placeholder
block_number integer yes Live Arbitrum block number when available; null in dry-run output

Example

bullpen hyperliquid deposit --amount 10 --dry-run --output json
{
  "action": "hl-deposit",
  "from_chain": "arbitrum",
  "from_address": "0x1111111111111111111111111111111111111111",
  "amount_usdc": "10",
  "current_balance_usdc": "100",
  "bridge_address": "0x2df1c51e09a1c7b6c4f85b3f2d496b4d06c602b0",
  "tx_hash": "0xdry-run-no-transaction-submitted",
  "block_number": null,
  "dry_run": true,
  "would_submit": false,
  "signature_requested": false,
  "bridge_transaction_submitted": false,
  "exchange_request_submitted": false,
  "note": "Dry run only: no transaction was submitted. Re-run without --dry-run and with --yes after verifying the amount, source address, and bridge contract."
}

Stability

Patch releases may add nullable or optional fields. Minor releases may add required fields or increment schema_version. Major releases may remove or rename fields.