> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kuru.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Execute order batch

> Place readable native orders, cancel maker slots, or perform both atomically.

Submits `wallet.execute_batch`. Use this method for normal order entry and cancellation integrations.

> [!NOTE]
>
> The example uses the verified mainnet WETHUSDC market, but its wallet, nonce, deadline, account ID, and signature are placeholders. Build and sign a fresh intent for the selected network before submitting.

**requestId** `string` *required*

New lowercase UUIDv7 for correlation.

**method** `string` *required* (default: wallet.execute\_batch)

Must be `wallet.execute_batch`.

**wallet** `string` *required*

Secondary trading EOA matching the bearer JWT.

**payload** `object` *required*

Signed `BatchIntent` containing `header`, `orders`, `cancelSlotIdxs`, `expectedOrderIds`, and `signature`.

**authorization7702** `object | null`

Normally `null` after onboarding.

The header requires `accountId`, `market`, `authNonce`, increasing `nonce`, Unix-second `deadline`, 32-byte `clientOrderId`, `builder`, and `builderFeePps`. Every integer is a canonical unsigned decimal string.

Sign `BatchIntent` with the `KuruTradingWallet` EIP-712 domain: version `2`, chain ID `143` on mainnet or `10143` on testnet, and the **delegated trading EOA** as `verifyingContract` (not the shared implementation or Relay address). Version-`1` wallet signatures are invalid for the current implementation; rebuild and re-sign any pending intents created with that domain. AccountCore signer grants use their separate `KuruAccountCore` version-`1` domain. See [Trading-wallet Signing](https://docs.kuru.io/sdk/trading-wallet.md).

Each native order requires `side` (`BUY`/`SELL`), `quantity`, `price`, `tif` (`GTC`/`IOC`/`FOK`), `executionInstruction` (`NONE`/`POST_ONLY`), and `minSizeAfterBlock`. Post-only requires GTC.

```curl cURL theme={null}
curl --request POST --url https://relay.mainnet.kuru.io/relay \
  --header "Authorization: Bearer $KURU_RELAY_JWT" \
  --header 'Content-Type: application/json' \
  --data '{
    "requestId":"018f5ef2-88a1-7b41-a826-4b679010f87f",
    "method":"wallet.execute_batch",
    "wallet":"0x1111111111111111111111111111111111111111",
    "payload":{
      "header":{"accountId":"123","market":"0x8121ee960066e4344a213f9ac7502395502aee7a","authNonce":"1","nonce":"1720000000123","deadline":"1720000030","clientOrderId":"0x0000000000000000000000000000000000000000000000000000000000000001","builder":"0x0000000000000000000000000000000000000000","builderFeePps":"0"},
      "orders":[{"side":"BUY","quantity":"1000000","price":"123400","tif":"GTC","executionInstruction":"POST_ONLY","minSizeAfterBlock":"0"}],
      "cancelSlotIdxs":[],"expectedOrderIds":[],"signature":"0x..."
    },
    "authorization7702":null
  }'
```

Up to 256 orders and 62 unique cancellations are accepted. `expectedOrderIds` must be parallel to `cancelSlotIdxs`; bind cancellations to current order IDs whenever possible.

```json BROADCAST theme={null}
{
  "requestId": "018f5ef2-88a1-7b41-a826-4b679010f87f",
  "status": "BROADCAST",
  "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "sponsorAddress": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
  "sponsorNonce": "42",
  "transactionType": "DYNAMIC_FEE"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.