# Otto AI — Hyperliquid Deposit/Withdraw

> Otto AI — Hyperliquid Deposit/Withdraw is a paid API for AI agents from x402.ottoai.services, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Execute a deposit or withdrawal action on Hyperliquid, optionally using a bridge, and returns the transaction result

## Facts

- Endpoint: POST https://x402.ottoai.services/hl-deposit-withdraw
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/otto-ai-hyperliquid-deposit-withdraw-c9a41f44
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_kD5iOERbYn6G7fJQKSRjE

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability otto-ai-hyperliquid-deposit-withdraw-c9a41f44 -d '<json body>'
```

Example prompt: Deposit 100 USDC into my Hyperliquid account using the bridge so I can start trading perps.

## When to prefer this

Use this endpoint when an agent needs to programmatically move funds into or out of a Hyperliquid account — particularly before executing perp trades or after realizing profits, with optional cross-chain bridge support.

## Known failure modes

- Insufficient USDC balance — transaction fails with success: false
- Invalid action value (not deposit or withdraw) — validation error
- Bridge service unavailable — bridgeUsed fails or times out
- On-chain transaction rejected — transactionHash absent or null
- Network congestion causing timeout on Base/Polygon/Solana

## How this service works

Deposit or withdraw USDC to/from Hyperliquid via Arbitrum. Intelligent routing: checks Arbitrum Safe first, auto-bridges from Base if needed, falls back to Butler wallet.

## Output

Returns a JSON object confirming the action type (deposit or withdraw), the amount, whether the transaction succeeded, whether a bridge was used, and the on-chain transaction hash.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "action": {
   "enum": [
    "deposit",
    "withdraw"
   ],
   "type": "string",
   "description": "Direction"
  },
  "amount": {
   "type": "number",
   "description": "USDC amount (human-readable)"
  },
  "userAddress": {
   "type": "string",
   "description": "Optional for external x402 callers — the operated account is your verified payment payer, not this field. Internal/dApp callers must send a valid EVM address."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "as_of": "2026-07-26T12:00:00.000Z",
  "action": "deposit",
  "amount": 100,
  "status": "success",
  "txHash": "0x...",
  "credited": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/otto-ai-hyperliquid-deposit-withdraw-c9a41f44/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.ottoai.services](https://www.zero.xyz/host/x402.ottoai.services/llms.txt)
