Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/pacifica-fi/docs-migrate/llms.txt

Use this file to discover all available pages before exploring further.

Subaccounts allow a single main (parent) wallet to control multiple trading accounts with isolated balances. Both the main account and the intended subaccount must provide valid signatures when establishing the relationship. Subaccounts share the parent’s fee tier and can have funds transferred between them without going on-chain.
All endpoints on this page require request signing. See the Authentication guide for details.

POST /api/v1/account/subaccount/create — Create Subaccount

Establishes a subaccount relationship between a main wallet and a new subaccount address. Both parties must sign the request to prevent unauthorized creation. Creation requirements:
  • Neither the main account nor the subaccount can already be a subaccount of another account.
  • The subaccount address must have no prior deposit or trade history.
This endpoint requires dual signing: the main account signs with type "subaccount_initiate" to produce main_signature, and the subaccount signs with type "subaccount_confirm" to produce sub_signature. See Authentication. Refer to the Pacifica Python SDK for a complete example.
Request
main_account
string
required
Main account wallet address.
subaccount
string
required
Subaccount wallet address.
timestamp
integer
required
Current timestamp in milliseconds.
main_signature
string
required
Cryptographic signature from the main account.
sub_signature
string
required
Cryptographic signature from the subaccount.
expiry_window
integer
Signature expiry in milliseconds.
{
  "main_account": "42trU9A5...",
  "subaccount": "69trU9A5...",
  "main_signature": "5j1Vy9Uq...",
  "sub_signature": "4k2Wx8Zq...",
  "timestamp": 1716200000000,
  "expiry_window": 30000
}
Response
{
  "success": true,
  "data": null,
  "error": null,
  "code": null
}

POST /api/v1/account/subaccount/list — List Subaccounts

Returns all subaccounts associated with the authenticated main account.
This endpoint requires a signed request from the main account. See Authentication.
Request
account
string
required
Main account wallet address.
signature
string
required
Main account signature.
timestamp
integer
required
Current timestamp in milliseconds.
expiry_window
integer
Signature expiry in milliseconds.
{
  "account": "42txU9As...",
  "signature": "5j1Vy9Uq...",
  "timestamp": 1716200000000,
  "expiry_window": 30000
}
Response
{
  "success": true,
  "data": {
    "subaccounts": [
      {
        "address": "69txU9As...",
        "balance": "1000.50",
        "pending_balance": "0.00",
        "fee_level": 1,
        "fee_mode": "auto",
        "use_ltp_for_stop_orders": false,
        "created_at": 1716200000000
      }
    ]
  },
  "error": null,
  "code": null
}
subaccounts
array
List of subaccount objects.

POST /api/v1/account/subaccount/transfer — Subaccount Fund Transfer

Transfers USDC between a main account and one of its subaccounts, or between subaccounts under the same parent.
This endpoint requires a signed request. Set the type header field to "subaccount_transfer". See Authentication.Refer to the Pacifica Python SDK for a complete example.
Request
account
string
required
Sender account address.
signature
string
required
Sender account signature.
timestamp
integer
required
Current timestamp in milliseconds.
to_account
string
required
Recipient wallet address.
amount
decimal string
required
Transfer amount in USDC, e.g. "420.69".
expiry_window
integer
Signature expiry in milliseconds.
{
  "account": "AwX6321...",
  "signature": "65L9qPp...",
  "timestamp": 1749228826313,
  "expiry_window": 5000,
  "to_account": "CRTxBM...",
  "amount": "420.69"
}
Response
{
  "success": true,
  "data": {
    "success": true,
    "error": null
  },
  "error": null,
  "code": null
}

POST /api/v1/account/subaccount/spot_asset/transfer — Subaccount Spot Transfer

Transfers a spot asset between a main account and one of its subaccounts, or from a subaccount to its parent. The destination must be a subaccount of the sender or the sender’s parent account.
This endpoint requires a signed request. Set the type header field to "subaccount_spot_transfer". See Authentication.
Request
account
string
required
Sender wallet address.
signature
string
required
Cryptographic signature.
timestamp
integer
required
Current timestamp in milliseconds.
to_account
string
required
Destination account address.
symbol
string
required
Spot asset symbol, e.g. SOL.
amount
decimal string
required
Amount to transfer.
idempotency_key
string
Full UUID to prevent duplicate transfers.
agent_wallet
string
Agent wallet address.
expiry_window
integer
Signature expiry in milliseconds.
{
  "account": "42trU9A5...",
  "signature": "5j1Vy9Uq...",
  "timestamp": 1716200000000,
  "to_account": "69trU9A5...",
  "symbol": "SOL",
  "amount": "1.50000000",
  "idempotency_key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "agent_wallet": "69trU9A5...",
  "expiry_window": 30000
}
Response
{
  "success": true
}

Build docs developers (and LLMs) love