Skip to main content

TypeScript SDK

context-markets wraps the Context API, signs EIP-712 orders, and exposes markets, orders, portfolio, account, and question-submission modules.

Install

npm install context-markets
The SDK requires Node.js 18+ and is published as context-markets.

Quick start

Read market data

import { ContextClient } from "context-markets"

const ctx = new ContextClient()
const { markets } = await ctx.markets.list({ sortBy: "trending", limit: 5 })

for (const market of markets) {
  console.log(market.question)
}

Place an order

import { ContextClient } from "context-markets"
import { privateKeyToAccount } from "viem/accounts"

const ctx = new ContextClient({
  apiKey: process.env.CONTEXT_API_KEY!,
  signer: { account: privateKeyToAccount(process.env.PRIVATE_KEY! as `0x${string}`) },
})

await ctx.orders.create({
  marketId: "0x..." as `0x${string}`,
  outcome: "yes",
  side: "buy",
  priceCents: 45,
  size: 10,
})

Onboard and fund

import { ContextClient } from "context-markets"
import { privateKeyToAccount } from "viem/accounts"

const ctx = new ContextClient({
  apiKey: process.env.CONTEXT_API_KEY!,
  signer: { account: privateKeyToAccount(process.env.PRIVATE_KEY! as `0x${string}`) },
  chain: "mainnet",
})

const status = await ctx.account.status()

if (!status.isReady) {
  await ctx.account.setup()
}

await ctx.account.deposit(1000)

Modules

ModulePurpose
ctx.marketsMarket lists, quotes, orderbooks, simulation, oracle data, activity
ctx.ordersLimit orders, market orders, cancels, bulk operations, order queries
ctx.portfolioPortfolio summaries, positions, balances, settlement balances, stats
ctx.accountSetup, deposits, withdrawals, approvals, gasless flows, complete sets
ctx.questionsQuestion submission, polling, and market-creation workflows
ctx.migrationMigration status, fund transfers, order restoration (V1 → V2)

Top-level exports

import {
  ContextClient,
  ContextApiError,
  ContextConfigError,
  ContextSigningError,
  encodePriceCents,
  encodeSize,
  calculateMaxFee,
  decodePriceCents,
  decodeSize,
  MAINNET_CONFIG,
  TESTNET_CONFIG,
  resolveChainConfig,
} from "context-markets"

Pricing conventions

ValueFormatExample
PricesCents45 = 45 cents
SizesContracts10 = 10 shares
OutcomesString literals"yes" or "no"
Internally the SDK encodes yes = 1 and no = 0.

Networks

The SDK defaults to Base mainnet and resolves the right addresses from chain.
Settlement: 0x00000000008c286A2aaa99c6Be3b3D405A929500Holdings: 0x0000000000CcA5bC44912C63d63e1673FeE923f6USDC: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Best practices

Signer setup, pagination, error handling, and gotchas

API reference

Exact method signatures, return types, and key exports