Skip to main content
POST
/
v1
/
account
/
internal-transfer
Internal Transfer
curl --request POST \
  --url https://api.perpetuals.polymarket.com/v1/account/internal-transfer \
  --header 'Content-Type: application/json' \
  --data '
{
  "op": {
    "type": "internalTransfer",
    "args": {
      "account": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
      "token": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
      "amount": "100.00",
      "to": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
    }
  },
  "sig": "0x5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a1c",
  "salt": 555555555,
  "ts": 1767000014000,
  "label": "ops-rebalance"
}
'
{
  "status": "ok",
  "transfer_id": 123
}
Request Weight: 1

Body

application/json

Internal transfer request.

op
object
required
sig
string
required

Signature in hex format

Example:

"0x1234567890..."

salt
integer
required

Salt

Example:

1234567890

ts
integer
required

Request timestamp. Unix milliseconds for most operations; Unix seconds for withdrawals (must match the on-chain EIP-712 struct verified against block.timestamp).

Example:

1767225600000

label
string

Human-readable label for a proxy key or internal transfer

Example:

"trading-bot"

Response

The accepted transfer, carrying its transfer_id.

status
enum<string>
required
Available options:
ok
transfer_id
integer
required

Internal transfer ID