Skip to main content
POST
/
operations
/
convert-position
Convert position
curl --request POST \
  --url https://relayer.kuest.com/operations/convert-position \
  --header 'Content-Type: application/json' \
  --data '
{
  "type": "SAFE",
  "from": "0x0B2B3E6B323C0Cd7bEaf4B7cC73b983D4E9B12c7",
  "to": "0x724259Fe88100FE18C134324C4853975FBDa4d76",
  "proxyWallet": "0x3f8Be6FC21f4a5127A42CE1aF58d8bCb8A94F3c1",
  "data": "0x2c8c5d2e...",
  "nonce": "10",
  "value": "0",
  "signature": "0xf368488355b0566e99eff3bccc35e98b77d8f3a6e6866176188488c34f0305b07e4a4c600c7a1592e4ac1e96b5887ebff2cb26987a3ad501006b39944df098c21f",
  "signatureParams": {
    "operation": "0",
    "safeTxnGas": "0",
    "baseGas": "0",
    "gasPrice": "0",
    "gasToken": "0x0000000000000000000000000000000000000000",
    "refundReceiver": "0x0000000000000000000000000000000000000000"
  },
  "metadata": "convert position"
}
'
{
  "txHash": "0x0123...",
  "confirmations": 1
}
Convert negative-risk NO positions into the complementary YES positions (and collateral, when applicable) by calling convertPositions on the Negative Risk adapter.
POST to https://relayer.kuest.com/operations/convert-position with the standard L2 headers. The relayer broadcasts the signed Safe transaction; execution happens from the Safe proxy.

Request body

convert-position accepts the same payload as POST /submit. Use:
  • type: SAFE
  • proxyWallet: Safe address executing the call
  • to: Negative Risk adapter contract address
  • data: ABI-encoded convertPositions(marketId, indexSet, amount) calldata
All other fields (from, nonce, signature, signatureParams, value, metadata) follow the /submit schema.

Notes

  • The Safe must hold the NO positions and set setApprovalForAll for the Negative Risk adapter on Conditional Tokens.
  • The nonce must match GET /nonce with type=SAFE; mismatches return 409.
  • Invalid index_set values (zero or exceeding the market question count) will revert on-chain.
  • Use this only on negative-risk markets; standard markets do not support conversions.

Body

application/json

Signed SAFE payload executed immediately by relayer operations.

type
enum<string>
required
Available options:
SAFE
from
string
required

Safe owner submitting the request.

to
string
required

Contract to execute.

proxyWallet
string
required

Existing Safe proxy address.

data
string
required
nonce
string
required
signature
string
required
signatureParams
object
required
value
string
default:0
metadata
string | null

Response

Transaction broadcast by the relayer.

txHash
string
required
confirmations
integer<int32>
required