Skip to main content
POST
Create HyperCore exit

Authorizations

Authorization
string
header
required

Scoped API key (ttk_...), created in the Totalis app or by a wallet-session user through the API keys routes with a fresh wallet signature; those routes never accept a key. Each key acts for one account, yours or a maker's, and holds only scopes that account can use. Each operation lists the scopes it requires. Send no Origin.

Headers

Idempotency-Key
string<uuid>
required

Lowercase UUIDv7 naming this command, unique per caller and route. A retry with the same key and body returns the original result; the same key with a different body returns 409 IDEMPOTENCY_KEY_REUSED.

Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Body

application/json
schema_version
any
required

Envelope format version; always 1.

request_id
string<uuid>
required

Client-generated UUIDv7 for this request, echoed back in error responses.

Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
sent_at
string<date-time>
required

RFC 3339 UTC time the client sent the request, ending in Z.

Maximum string length: 30
Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{1,9})?Z$
command
object
required

The owner-signed EIP-712 vault Exit that moves free vault cash to the account's HyperCore spot balance through the CoreExit router; Totalis relays it and pays the gas.

Response

Core exit durably accepted, not yet on chain: follow it with GET /v1/core-exits/{exit_id} until CREDITED. An exact replay of the same Idempotency-Key and body returns the stored exit before any dependency check.

exit_id
string<uuid>
required

The exit ID: the Idempotency-Key it was created with.

Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
status
enum<string>
required

Where the exit is; see the state values.

Available options:
QUEUED,
DISPATCHED,
ATTEMPT_FAILED,
SENT,
CREDITED,
RECOVERED,
FAILED,
ABANDONED
purpose
enum<string> | null
required

The purpose the exit was sent with; null for an ABANDONED tombstone.

Available options:
ORDER,
WITHDRAW,
SWEEP
account
string | null
required

The signed Exit's account wallet; null for an ABANDONED tombstone.

Pattern: ^0x[0-9a-f]{40}$
amount
string<uint128-decimal> | null
required

Atomic USDC (6 decimals) the Exit moves; null for an ABANDONED tombstone.

Maximum string length: 39
Pattern: ^(0|[1-9][0-9]*)$
router_address
string | null
required

The CoreExit router the Exit names as to; null for an ABANDONED tombstone.

Pattern: ^0x[0-9a-f]{40}$
expiry
string<uint64-decimal> | null
required

The signed Exit's expiry in Unix seconds; null for an ABANDONED tombstone.

Maximum string length: 20
Pattern: ^(0|[1-9][0-9]{0,18}|1[0-7][0-9]{18}|18[0-3][0-9]{17}|184[0-3][0-9]{16}|1844[0-5][0-9]{15}|18446[0-6][0-9]{14}|184467[0-3][0-9]{13}|1844674[0-3][0-9]{12}|184467440[0-6][0-9]{10}|1844674407[0-2][0-9]{9}|18446744073[0-6][0-9]{8}|1844674407370[0-8][0-9]{6}|18446744073709[0-4][0-9]{5}|184467440737095[0-4][0-9]{4}|18446744073709550[0-9]{3}|18446744073709551[0-5][0-9]{2}|1844674407370955160[0-9]|1844674407370955161[0-5])$
exit_digest
string | null
required

EIP-712 digest of the signed Exit, which the vault marks consumed when it runs; null for an ABANDONED tombstone.

Pattern: ^0x[0-9a-f]{64}$
activation_fee_accepted
boolean
required

True only for an exit admitted to create a missing HyperCore account. Its Core credit is the full amount less a 1 USDC activation fee, or the full amount if the account was created first by someone else.

operation
Operation id · object | null
required

The Totalis relay of the signed Exit, or null when there is none, as for a tombstone.

sent
Transaction hash · object | null
required

The qualified HyperEVM receipt. For RECOVERED, sent_log_index is the CoreExitRecovered log and deposit_log_index is null.

credit
Event id · object | null
required

The HyperCore spot credit the exit produced, or null until it is linked (status CREDITED).

created_at
string<date-time>
required

When the exit was admitted.

Maximum string length: 30
Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{1,9})?Z$
updated_at
string<date-time>
required

When the exit last changed.

Maximum string length: 30
Pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{1,9})?Z$