> ## 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.

# Cancel TWAP instruction

> Submit wallet.cancel_twap through the opt-in Relay operational path.

Submits `wallet.cancel_twap` when this method is enabled for the selected deployment. This is a **slow operational method**, not the low-latency trading path. Relay validates the typed request and signature where applicable, simulates the exact call against `latest`, and only then queues a sponsored transaction. See [Operational methods](https://docs.kuru.io/api/relay/operational.md) for availability, gas, and latency rules.

> [!NOTE]
>
> The example uses testnet WETH/USDC where a market is required, but all identities, nonces, timestamps, hashes, and signatures are illustrative. Read current state and build a fresh valid signature for the selected network. Omit `authorization7702` and `makerSlotsPrimed`; complete delegation first.

**requestId** `string` *required*

New lowercase UUIDv7 for request correlation.

**method** `string` *required* (default: wallet.cancel\_twap)

Must be `wallet.cancel_twap`.

**wallet** `string` *required*

Trading wallet matching the bearer JWT; for AccountCore operations this is the sponsoring frontend identity, not necessarily the signed authorizer.

**payload** `object` *required*

Method-specific payload shown below; unknown fields are rejected.

Cancel an existing TWAP for the signed account. The nonce uses the wallet's one-shot trigger/TWAP namespace, not `lastSeenOrderNonce`. Read the current authorization epoch and sign a fresh request; a successful `BROADCAST` alone does not prove cancellation.

Sign the exact EIP-712 type below using the `KuruTradingWallet` version `2`, with the delegated trading wallet as `verifyingContract` and the selected chain ID (`143` mainnet; `10143` testnet):

```text theme={null}
CancelTwapIntent(uint40 accountId,uint256 authNonce,uint64 nonce,uint64 deadline,bytes32 twapId)
```

```curl cURL theme={null}
curl --request POST --url https://relay.testnet.kuru.io/relay \
  --header "Authorization: Bearer $KURU_RELAY_JWT" \
  --header 'Content-Type: application/json' \
  --data '{"requestId":"018f5ef2-88a1-7b41-a826-4b679010f87f","method":"wallet.cancel_twap","wallet":"0x1111111111111111111111111111111111111111","payload":{"accountId":"123","authNonce":"1","nonce":"1792480000002","deadline":"1792500000","twapId":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","signature":"0x..."}}'
```

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

`BROADCAST` means scheduling for asynchronous RPC broadcast, not provider acceptance or successful execution. Check the receipt and expected events/state. A failed estimate returns an immediate error with no transaction signed or broadcast.


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