Deposit or withdraw USDC to/from Hyperliquid via Arbitrum
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.
Not tested: has real-world effectsour last check, 2026-09-24
0 of 0checks answered this week
n/amedian answer time
$0.01listed price per call
n/aprice it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://x402.ottoai.services/hl-deposit-withdraw
| Category | Market data |
|---|---|
| Provider host | x402.ottoai.services |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 3 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {
"action": "deposit",
"amount": 100
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"action": {
"description": "Direction",
"enum": [
"deposit",
"withdraw"
],
"type": "string"
},
"amount": {
"description": "USDC amount (human-readable)",
"type": "number"
}
},
"required": [
"action",
"amount"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"action": {
"type": "string"
},
"action_required": {
"description": "Present on every non-accepted outcome: your funds need you to look before acting again.",
"type": "boolean"
},
"amount": {
"type": "number"
},
"as_of": {
"description": "ISO-8601 time the reported balance/delegation state was read.",
"type": "string"
},
"credited": {
"description": "Deposits: whether the Hyperliquid balance increase was observed before the response was returned.",
"type": "boolean"
},
"destination": {
"description": "Withdrawals: where the funds are being sent.",
"type": "string"
},
"error": {
"type": "string"
},
"evidence": {
"description": "How the outcome was established. Always 'venue-response' for accepted/rejected \u2014 withdraw3 carries no per-request identifier, so this is verified BY RESPONSE, not correlated by id.",
"enum": [
"venue-response",
"none"
],
"type": "string"
},
"outcome": {
"description": "The venue's verdict on this withdrawal. 'not_submitted' means nothing reached the venue at all.",
"enum": [
"accepted",
"rejected",
"unknown",
"not_submitted"
],
"type": "string"
},
"status": {
"description": "'pending_credit' when a deposit's bridge transfer is confirmed on Arbitrum but the Hyperliquid balance had not yet increased when the state was last read. 'submitted' when a withdrawal is accepted by the venue but the transfer has not yet landed \u2014 accepted is verified by the venue's response, and withdraw3 returns no per-request id to correlate on. 'unknown' when the request was sent and its outcome could NOT be established: your funds may or may not have moved, so check both balances before retrying \u2014 retrying may withdraw or bridge twice. 'failed' means the venue refused and your funds did not move. Only a verified acceptance is charged for.",
"enum": [
"success",
"pending_credit",
"submitted",
"unknown",
"failed"
],
"type": "string"
},
"tradingEnabled": {
"description": "Whether this account's trading delegation is in place. A deposit can land before delegation completes.",
"type": "boolean"
},
"txHash": {
"description": "Deposits: the vault-to-bridge transfer hash.",
"type": "string"
},
"vaultAddress": {
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}