bullpen hyperliquid deposit¶
Last updated: July 13, 2026
Deposit USDC from Arbitrum into Hyperliquid Spot.
Usage¶
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¶
{
"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.