Messages
{
"id": "finalizetwap-1",
"method": "wallet.finalize_twap",
"payload": {
"twapId": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}Opt-in operational WebSocket methods
Finalize expired TWAP
Submit wallet.finalize_twap over the authenticated Relay WebSocket.
WSS
/
relay
/
ws
Send
wallet.finalize_twap with a connection-local id over wss://relay.testnet.kuru.io/relay/ws?account_id=<accountId> (or the mainnet host) and a wallet-bound JWT in the upgrade Authorization header. Use the same twapId-only payload as the REST method; omit REST’s wallet and requestId fields. The upgrade still requires a trading account_id, even though this permissionless contract-finalization payload has no account field or client signature.
This is a slow operational request. Its bounded RPC simulation can hold later submissions on the same ordered WebSocket; use REST or a separate connection for latency-sensitive trading. BROADCAST only indicates asynchronous scheduling. Relay automatically sends transaction.outcome on this connection with the original id; no explicit subscription or client acknowledgement is required. Verify the intended on-chain state or events after a terminal outcome.Messages
{
"id": "finalizetwap-1",
"method": "wallet.finalize_twap",
"payload": {
"twapId": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}bearerAuth
type:http
Wallet-bound JWT supplied in the WebSocket upgrade Authorization header.
method
type:string
GET
query
type:object
account_id
type:string
required
Exactly one canonical positive uint40 Kuru trading account ID (1 through 1099511627775), without leading zero, sign, or whitespace.
Example:
123wallet.finalize_twap