polymarket-onchain-sdk
v1.0.3
Published
Polymarket on-chain allowances (USDC, CTF) and CTF redemption utilities
Maintainers
Readme
polymarket-onchain
Polymarket on-chain allowances (USDC, Conditional Tokens) and CTF redemption utilities. No env or global config — pass options from your app.
Install
npm install polymarket-onchain @polymarket/clob-client ethersAllowances
Approve USDC and Conditional Tokens for Polymarket Exchange (and optional NegRisk contracts):
import {
approveUSDCAllowance,
updateClobBalanceAllowance,
approveTokensAfterBuy,
} from "polymarket-onchain";
import { ClobClient } from "@polymarket/clob-client";
const config = {
privateKey: process.env.PRIVATE_KEY!,
chainId: 137,
rpcUrl: process.env.RPC_URL,
rpcToken: process.env.RPC_TOKEN,
negRisk: false,
logger: console,
};
await approveUSDCAllowance(config);
const clobClient = new ClobClient(/* ... */);
await updateClobBalanceAllowance(clobClient);
// After buying tokens (optional):
await approveTokensAfterBuy(config);Redeem
Redeem winning outcome tokens for USDC after a market resolves:
import {
redeemPositions,
redeemMarket,
checkConditionResolution,
getUserTokenBalances,
} from "polymarket-onchain";
const config = {
privateKey: process.env.PRIVATE_KEY!,
chainId: 137,
rpcUrl: process.env.RPC_URL,
logger: console,
};
// Option 1: Redeem a market (resolves condition, finds your winning index sets, redeems)
const receipt = await redeemMarket(conditionId, config);
// Option 2: Redeem specific index sets manually
await redeemPositions({
...config,
conditionId,
indexSets: [1, 2],
});
// Helpers
const resolution = await checkConditionResolution(conditionId, config);
const balances = await getUserTokenBalances(conditionId, walletAddress, config);Config (OnChainConfig)
| Field | Type | Description |
|-------------|-------------------|-------------|
| privateKey| string | Wallet private key (hex). |
| chainId | number | Chain | 137 (Polygon), 80002 (Amoy). |
| rpcUrl | string (optional) | RPC URL; if omitted, public fallbacks are used. |
| rpcToken | string (optional) | Alchemy/etc token for RPC URL. |
| negRisk | boolean (optional)| Enable NegRisk contract approvals. Default false. |
| logger | OnChainLogger (optional) | { info?, error?, debug? }. |
License
ISC
