Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

outcomeOperate

Splits Outcome collateral into a complete YES + NO set, or merges a matched YES + NO set back into collateral. Send exactly one of split or merge; each array must contain 1–50 entries.

POST/exchangetype outcomeOperate

Split collateral into a YES + NO set, or merge a set back into collateral.Agent-signed

Action fields
oneOf · variant 1 — type = "outcomeOperate"
splitOutcomeOperateBody[]required

Complete sets to create; mutually exclusive with `merge`.

ainteger · uint64required

Outcome instrument id. Long form: `asset`.

sstringrequired

Number of complete sets to split or merge. Long form: `sz`.

typestringrequired

Must be `outcomeOperate`.

"outcomeOperate"
oneOf · variant 2 — type = "outcomeOperate"
mergeOutcomeOperateBody[]required

Complete sets to redeem; mutually exclusive with `split`.

ainteger · uint64required

Outcome instrument id. Long form: `asset`.

sstringrequired

Number of complete sets to split or merge. Long form: `sz`.

typestringrequired

Must be `outcomeOperate`.

"outcomeOperate"
Request example
curl -X POST https://rpc.txflow-testnet.xyz/exchange \
  -H "Content-Type: application/json" \
  -H "x-api-version: 2026-08-16" \
  -d '{
  "action": {
    "type": "outcomeOperate",
    "split": [
      {
        "a": 19127212,
        "s": "10"
      }
    ]
  },
  "signature": {
    "r": "0x<r>",
    "s": "0x<s>",
    "v": 27
  },
  "nonce": 1757992743994,
  "vaultAddress": null,
  "signatureChainId": null
}'
Try it
testnet · no account yet
Generates a throwaway key in your browser, claims testnet USDC and authorizes an agent key. The account is kept while you browse the docs and lost on reload.
Response · OutcomeOperate 200
codeinteger

`0` on success.

dataobject
dataobject
typestring

The action's internal name, which does not always match the request `type`.

"OutcomeOperate"
statusstring

A rejected request returns `err` with a non-zero `code` and the reason in `message` (or `response`).

"ok"
Response example
{
  "status": "ok",
  "code": 0,
  "data": {
    "type": "OutcomeOperate",
    "data": {
      "statuses": [
        "success"
      ]
    }
  }
}

Split

For each { a, s }, a is the Outcome instrument id and s is the number of complete sets. A successful split freezes s units of Outcome-account collateral and creates a long (YES) and short (NO) position of size s, both at the protocol's fixed split price of 0.5.

Merge

Merge is the inverse. The account must hold both YES and NO legs in at least size s; the operation closes that matched amount and releases s units of collateral.

Entries are checked independently during execution. An entry that cannot be split or merged may be skipped, so confirm the resulting positions with outcomePositions and balances with clearinghouseState (accountType: "outcome").