
Treasury and risk controls for agent wallets: policies, quotes, prediction-market orders.
Call this server's tools from your browser. Nothing to install.
Bearer cl_key_… API key or cl_sess_… SIWE session; obtain via POST https://api.cofferline.com/v1/auth/challenge then /verify. Public tools (quotes, benchmarks, screening, tokens, feedback list, login) work without it.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel every resting order for the credential, optionally within one market. Auth required.
stored credential id (uuid)
optional market filter
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Cancel every resting order for the credential, optionally within one market. Auth required.
| Argument | Type | Description |
|---|---|---|
| market | string | optional market filter |
| credential_id* | string | stored credential id (uuid) |
{
"type": "object",
"required": [
"credential_id"
],
"properties": {
"market": {
"type": "string",
"description": "optional market filter"
},
"credential_id": {
"type": "string",
"description": "stored credential id (uuid)"
}
}
}Cancel a planned intent (a few-second window before execution claims it). Auth required.
| Argument | Type | Description |
|---|---|---|
| id* | string | intent id (uuid) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "intent id (uuid)"
}
}
}Cancel one resting prediction-market order. Auth required.
| Argument | Type | Description |
|---|---|---|
| venue | string | prediction-market venue (default polymarket) |
| order_id* | string | the venue's order id |
| credential_id* | string | stored credential id (uuid) |
{
"type": "object",
"required": [
"order_id",
"credential_id"
],
"properties": {
"venue": {
"enum": [
"polymarket"
],
"type": "string",
"default": "polymarket",
"description": "prediction-market venue (default polymarket)"
},
"order_id": {
"type": "string",
"description": "the venue's order id"
},
"credential_id": {
"type": "string",
"description": "stored credential id (uuid)"
}
}
}Pre-flight policy check for a prediction-market order: would this cost be allowed right now? Auth required.
| Argument | Type | Description |
|---|---|---|
| state | object | optional current exposure: {market_exposure_usd, realized_loss_today_usd, total_open_exposure_usd} as decimal strings |
| wallet* | string | wallet address |
| cost_usd* | string | order cost in USD, decimal string |
| condition_id* | string | market/condition identifier |
{
"type": "object",
"required": [
"wallet",
"condition_id",
"cost_usd"
],
"properties": {
"state": {
"type": "object",
"description": "optional current exposure: {market_exposure_usd, realized_loss_today_usd, total_open_exposure_usd} as decimal strings"
},
"wallet": {
"type": "string",
"description": "wallet address"
},
"cost_usd": {
"type": "string",
"description": "order cost in USD, decimal string"
},
"condition_id": {
"type": "string",
"description": "market/condition identifier"
}
}
}Pre-flight policy check: would this spend be allowed under the wallet's policy right now? Auth required.
| Argument | Type | Description |
|---|---|---|
| token* | string | token symbol, e.g. USDC |
| wallet* | string | wallet address |
| amount_usd* | string | spend amount in USD, decimal string |
| counterparty | string | optional counterparty address to screen |
{
"type": "object",
"required": [
"wallet",
"amount_usd",
"token"
],
"properties": {
"token": {
"type": "string",
"description": "token symbol, e.g. USDC"
},
"wallet": {
"type": "string",
"description": "wallet address"
},
"amount_usd": {
"type": "string",
"description": "spend amount in USD, decimal string"
},
"counterparty": {
"type": "string",
"description": "optional counterparty address to screen"
}
}
}Finish wallet sign-in: exchanges the signed SIWE message for a cl_sess_… session token — use it as the Authorization bearer on every authenticated tool. Free, no auth.
| Argument | Type | Description |
|---|---|---|
| message* | string | the exact SIWE message from start_siwe_login |
| signature* | string | the wallet's signature over the message, 0x… |
{
"type": "object",
"required": [
"message",
"signature"
],
"properties": {
"message": {
"type": "string",
"description": "the exact SIWE message from start_siwe_login"
},
"signature": {
"type": "string",
"description": "the wallet's signature over the message, 0x…"
}
}
}Activate a prepared delegation by supplying the owner's signature over its enable digest. Auth required.
| Argument | Type | Description |
|---|---|---|
| id* | string | delegation id (uuid) |
| owner | string | optional owner address, when it differs from the caller |
| enable_sig* | string | owner's 65-byte signature over the digest, 0x… |
{
"type": "object",
"required": [
"id",
"enable_sig"
],
"properties": {
"id": {
"type": "string",
"description": "delegation id (uuid)"
},
"owner": {
"type": "string",
"description": "optional owner address, when it differs from the caller"
},
"enable_sig": {
"type": "string",
"description": "owner's 65-byte signature over the digest, 0x…"
}
}
}Create a conversion or gas_topup intent; the executor pipeline plans and fills it under policy. Auth required.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| venues | array | optional venue override |
| wallet* | string | wallet address |
| buy_token* | string | ERC-20 address being bought |
| sell_token* | string | ERC-20 address being sold |
| sell_amount* | string | base units, decimal string |
| max_slippage_bps | number | optional per-intent slippage cap |
{
"type": "object",
"required": [
"wallet",
"kind",
"sell_token",
"buy_token",
"sell_amount"
],
"properties": {
"kind": {
"enum": [
"conversion",
"gas_topup"
],
"type": "string"
},
"venues": {
"type": "array",
"items": {
"type": "string"
},
"description": "optional venue override"
},
"wallet": {
"type": "string",
"description": "wallet address"
},
"buy_token": {
"type": "string",
"description": "ERC-20 address being bought"
},
"sell_token": {
"type": "string",
"description": "ERC-20 address being sold"
},
"sell_amount": {
"type": "string",
"description": "base units, decimal string"
},
"max_slippage_bps": {
"type": "number",
"description": "optional per-intent slippage cap"
}
}
}Place a prediction-market limit order under policy, signed server-side with the stored credential. Polymarket: condition_id, token_id, action, price_usd (e.g. '0.55'), size_shares. Auth required.
| Argument | Type | Description |
|---|---|---|
| state | object | optional current exposure: {market_exposure_usd, realized_loss_today_usd, total_open_exposure_usd} as decimal strings |
| venue | string | prediction-market venue (default polymarket) |
| action* | string | |
| wallet* | string | treasury wallet whose policy governs the order |
| token_id | string | Polymarket: outcome token id, decimal string |
| price_usd | string | Polymarket: limit price, '0.xx' |
| size_shares | string | Polymarket: share count, decimal string |
| condition_id | string | Polymarket: market condition id |
| credential_id* | string | stored credential id (uuid) |
Export all of this account's data in one document. Auth required.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}The auto-topup rule and how many pre-signed authorizations remain. Auth required.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Prepaid fee balance: settled credits minus fee debits. Auth required.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Measured execution benchmarks: median savings vs arrival quote by USD size bucket, from real completed intents only. Free, no auth.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Fetch one delegation. Auth required.
| Argument | Type | Description |
|---|---|---|
| id* | string | delegation id (uuid) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "delegation id (uuid)"
}
}
}Fetch an intent, including fills and the post-trade report once filled. Auth required.
| Argument | Type | Description |
|---|---|---|
| id* | string | intent id (uuid) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "intent id (uuid)"
}
}
}Identify the authenticated account: address, kind, scopes. Auth required.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Polymarket trade-readiness for an address: live approval status plus the calldata for anything missing (executed outside MCP — this server cannot sign). Auth required.
| Argument | Type | Description |
|---|---|---|
| address* | string | the trading address to check |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "the trading address to check"
}
}
}Calldata to swap the Polymarket funder Safe's owner to a new EOA — the owner executes it outside MCP (this server cannot sign). Auth required.
| Argument | Type | Description |
|---|---|---|
| id* | string | credential id (uuid) |
| new_owner* | string | the replacement owner address |
{
"type": "object",
"required": [
"id",
"new_owner"
],
"properties": {
"id": {
"type": "string",
"description": "credential id (uuid)"
},
"new_owner": {
"type": "string",
"description": "the replacement owner address"
}
}
}List policy versions, newest first (the first entry is active). Auth required.
| Argument | Type | Description |
|---|---|---|
| limit | number | max results |
| wallet | string | optional wallet filter |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "max results"
},
"wallet": {
"type": "string",
"description": "optional wallet filter"
}
}
}Live venue quote comparison for a token conversion (CoW + ParaSwap on Base). Free, no auth.
| Argument | Type | Description |
|---|---|---|
| chain_id | number | 8453 (Base) |
| buy_token* | string | ERC-20 address being bought |
| sell_token* | string | ERC-20 address being sold |
| sell_amount* | string | sell amount in base units, decimal string |
{
"type": "object",
"required": [
"sell_token",
"buy_token",
"sell_amount"
],
"properties": {
"chain_id": {
"type": "number",
"description": "8453 (Base)"
},
"buy_token": {
"type": "string",
"description": "ERC-20 address being bought"
},
"sell_token": {
"type": "string",
"description": "ERC-20 address being sold"
},
"sell_amount": {
"type": "string",
"description": "sell amount in base units, decimal string"
}
}
}Deterministic monthly statement derived from the append-only ledger — same period, same bytes. Auth required.
| Argument | Type | Description |
|---|---|---|
| format | string | 'json' (default) or 'csv' |
| period* | string | calendar month, YYYY-MM |
| wallet* | string | wallet address |
{
"type": "object",
"required": [
"wallet",
"period"
],
"properties": {
"format": {
"type": "string",
"description": "'json' (default) or 'csv'"
},
"period": {
"type": "string",
"description": "calendar month, YYYY-MM"
},
"wallet": {
"type": "string",
"description": "wallet address"
}
}
}List delegations, newest first. Auth required.
| Argument | Type | Description |
|---|---|---|
| limit | number | max results |
| account | string | optional smart-account filter |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "max results"
},
"account": {
"type": "string",
"description": "optional smart-account filter"
}
}
}Every feature request ever submitted, public and unauthenticated. Free.
| Argument | Type | Description |
|---|---|---|
| limit | number | max results |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "max results"
}
}
}List intents, newest first. Auth required.
| Argument | Type | Description |
|---|---|---|
| limit | number | max results |
| offset | number | skip this many |
| wallet | string | optional wallet filter |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "max results"
},
"offset": {
"type": "number",
"description": "skip this many"
},
"wallet": {
"type": "string",
"description": "optional wallet filter"
}
}
}List stored venue credentials — metadata only, never material. Auth required.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}The credential's resting orders straight from the venue — recover state after a disconnect. Auth required.
| Argument | Type | Description |
|---|---|---|
| market | string | optional market filter |
| credential_id* | string | stored credential id (uuid) |
{
"type": "object",
"required": [
"credential_id"
],
"properties": {
"market": {
"type": "string",
"description": "optional market filter"
},
"credential_id": {
"type": "string",
"description": "stored credential id (uuid)"
}
}
}Tokens the platform accepts on an intent, per chain — what create_intent will admit. Free, no auth.
| Argument | Type | Description |
|---|---|---|
| chain_id | number | limit to one chain; omit for every supported chain |
{
"type": "object",
"required": [],
"properties": {
"chain_id": {
"type": "number",
"description": "limit to one chain; omit for every supported chain"
}
}
}Close this account for good: revokes every credential, scrubs personal data, retires the account. Irreversible; confirm_wallet_address must be the account's own wallet address, typed exactly. Auth required.
| Argument | Type | Description |
|---|---|---|
| reason | string | optional reason, recorded |
| confirm_wallet_address* | string | the account's wallet address, typed to confirm |
{
"type": "object",
"required": [
"confirm_wallet_address"
],
"properties": {
"reason": {
"type": "string",
"description": "optional reason, recorded"
},
"confirm_wallet_address": {
"type": "string",
"description": "the account's wallet address, typed to confirm"
}
}
}Emergency stop, one call: suspends the account, revokes every API key, session, delegation and venue credential, and returns all unwind calldata for the owner. Auth required.
| Argument | Type | Description |
|---|---|---|
| reason | string | optional reason, recorded |
{
"type": "object",
"required": [],
"properties": {
"reason": {
"type": "string",
"description": "optional reason, recorded"
}
}
}Poll typed treasury events with a monotonic cursor (intent lifecycle, budget thresholds, reconciliation, security alerts). Auth required.
| Argument | Type | Description |
|---|---|---|
| type | string | optional event-type filter, e.g. intent.filled |
| limit | number | max results |
| cursor | number | resume after this event id |
| wallet | string | optional wallet filter |
{
"type": "object",
"required": [],
"properties": {
"type": {
"type": "string",
"description": "optional event-type filter, e.g. intent.filled"
},
"limit": {
"type": "number",
"description": "max results"
},
"cursor": {
"type": "number",
"description": "resume after this event id"
},
"wallet": {
"type": "string",
"description": "optional wallet filter"
}
}
}Prepare a scoped session-key grant for a Kernel smart account: exact call allowlist, expiry, optional rate limit. Returns the ONE EIP-712 digest the account owner signs outside MCP (this server cannot sign) — then call confirm_delegation with the signature. Auth required.
| Argument | Type | Description |
|---|---|---|
| calls* | array | allowed calls: each {target: contract address, selector: 0x + 4 bytes, value_limit: max native value in wei as decimal string} |
| account* | string | the Kernel smart account granting scope |
| chain_id* | number | 8453 (Base) or 84532 (Base Sepolia) |
| rate_limit | object | optional {count, interval_secs}: max delegated calls per interval |
| valid_after | number | optional start, unix seconds |
| valid_until* | number | expiry, unix seconds |
{
"type": "object",
"required": [
"account",
"chain_id",
"calls",
"valid_until"
],
"properties": {
"calls": {
"type": "array",
"items": {
"type": "object",
"required": [
"target",
"selector",
"value_limit"
],
"properties": {
"target": {
"type": "string",
"description": "contract address"
},
"selector": {
"type": "string",
"description": "function selector, 0x + 8 hex chars"
},
"value_limit": {
"type": "string",
"description": "max native value per call, wei, decimal string"
}
}
},
"description": "allowed calls: each {target: contract address, selector: 0x + 4 bytes, value_limit: max native value in wei as decimal string}"
},
"account": {
"type": "string",
"description": "the Kernel smart account granting scope"
},
"chain_id": {
"type": "number",
"description": "8453 (Base) or 84532 (Base Sepolia)"
},
"rate_limit": {
"type": "object",
"description": "optional {count, interval_secs}: max delegated calls per interval"
},
"valid_after": {
"type": "number",
"description": "optional start, unix seconds"
},
"valid_until": {
"type": "number",
"description": "expiry, unix seconds"
}
}
}Prepare a client-signed Polymarket order: policy-checked, then returns the exact EIP-712 payload to sign outside MCP (this server cannot sign) plus a prepare_id — submit both via submit_pm_order. Auth required.
| Argument | Type | Description |
|---|---|---|
| state | object | optional current exposure: {market_exposure_usd, realized_loss_today_usd, total_open_exposure_usd} as decimal strings |
| venue* | string | |
| action* | string | |
| wallet* | string | treasury wallet whose policy governs the order |
| token_id* | string | outcome token id, decimal string |
| price_usd* | string | limit price, '0.xx' |
| size_shares* | string | share count, decimal string |
| condition_id* | string | market condition id |
| credential_id* |
Create or update the wallet's treasury policy (immutable versioning; PUT creates the next version). Auth required. Body must match /schemas/policy-v1.json — only version, wallet and chain_id are required; omitted fields take the platform defaults published in the manifest and are stored into the document, and the response lists them in `defaulted`.
| Argument | Type | Description |
|---|---|---|
| policy* | object | PolicyV1 document; {"version":1,"wallet":"0x…","chain_id":8453} is a complete one |
{
"type": "object",
"required": [
"policy"
],
"properties": {
"policy": {
"type": "object",
"description": "PolicyV1 document; {\"version\":1,\"wallet\":\"0x…\",\"chain_id\":8453} is a complete one"
}
}
}Remove the auto-topup rule and its unused authorizations. Auth required.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Renew an active delegation: same scope, fresh expiry, no authority gap. Returns a NEW digest to sign and confirm exactly like prepare_delegation. Auth required.
| Argument | Type | Description |
|---|---|---|
| id* | string | delegation id (uuid) |
| valid_until | number | optional new expiry, unix seconds; defaults to the original duration |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "delegation id (uuid)"
},
"valid_until": {
"type": "number",
"description": "optional new expiry, unix seconds; defaults to the original duration"
}
}
}Resolve an owner EOA to its Polymarket funder Safe candidates. Auth required.
| Argument | Type | Description |
|---|---|---|
| owner* | string | owner EOA address |
{
"type": "object",
"required": [
"owner"
],
"properties": {
"owner": {
"type": "string",
"description": "owner EOA address"
}
}
}Revoke a delegation. The reply includes calldata the owner can send on-chain for hard finality. Auth required.
| Argument | Type | Description |
|---|---|---|
| id* | string | delegation id (uuid) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "delegation id (uuid)"
}
}
}Revoke a venue credential; its sealed ciphertext is destroyed. Auth required.
| Argument | Type | Description |
|---|---|---|
| id* | string | credential id (uuid) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "credential id (uuid)"
}
}
}OFAC SDN counterparty screening for an address. Free, no auth.
| Argument | Type | Description |
|---|---|---|
| address* | string | EVM address to screen |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "EVM address to screen"
}
}
}Configure auto-topup: when the prepaid balance falls below threshold_usd, the platform settles one of the pre-signed EIP-3009 authorizations you supply (signed outside MCP — this server cannot sign). Auth required.
| Argument | Type | Description |
|---|---|---|
| max_per_month | number | cap on automatic top-ups per month (default 10) |
| threshold_usd* | string | refill when balance drops below this, USD decimal string |
| authorizations* | array | pre-signed transferWithAuthorization payloads: each {from, to, value, valid_after, valid_before, nonce, signature} |
{
"type": "object",
"required": [
"threshold_usd",
"authorizations"
],
"properties": {
"max_per_month": {
"type": "number",
"description": "cap on automatic top-ups per month (default 10)"
},
"threshold_usd": {
"type": "string",
"description": "refill when balance drops below this, USD decimal string"
},
"authorizations": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"to",
"value",
"valid_after",
"valid_before",
"nonce",
"signature"
],
"properties": {
"to": {
"type": "string",
"description": "platform recipient address"
},
"from": {
"type": "string",
"description": "payer address"
},
"nonce": {
"type": "string",
"description": "32-byte nonce, 0x…"
},
"value": {
"type": "string",
"description": "USDC base units, decimal string"
},
"signature": {
"type": "string",
"description": "EIP-3009 signature, 0x…"
},
"valid_after": {
"type": "string",
"description": "unix seconds, decimal string"
},
"valid_before": {
"type": "string",
"description": "unix seconds, decimal string"
}
}
},
"description": "pre-signed transferWithAuthorization payloads: each {from, to, value, valid_after, valid_before, nonce, signature}"
}
}
}Start wallet sign-in: returns a single-use SIWE message. Sign it with the wallet outside MCP (this server cannot sign), then call complete_siwe_login. Free, no auth.
| Argument | Type | Description |
|---|---|---|
| address* | string | wallet address to authenticate |
| chain_id | number | 8453 |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "wallet address to authenticate"
},
"chain_id": {
"type": "number",
"description": "8453"
}
}
}Store a prediction-market venue credential (verified live against the venue, sealed at rest, material never returned). Polymarket, either shape: signer_private_key + maker (derives API creds), or api_key + secret + passphrase + maker + signer. Auth required.
| Argument | Type | Description |
|---|---|---|
| label | string | optional display label |
| maker | string | Polymarket: funder (maker) address |
| venue | string | prediction-market venue (default polymarket) |
| secret | string | Polymarket: CLOB API secret (explicit-creds shape) |
| signer | string | Polymarket: signer address (explicit-creds shape) |
| api_key | string | Polymarket: CLOB API key (explicit-creds shape) |
| passphrase | string | Polymarket: CLOB API passphrase (explicit-creds shape) |
| signature_type | number | Polymarket: 0 EOA, 1 Magic/email, 2 browser proxy (default 1) |
| signer_private_key | string | Polymarket: signer EOA private key, 0x… |
Submit a feature request ($1 anti-spam fee, charged to the prepaid balance when funded). Auth required. Payment flow: call once without x_payment — a 402 reply lists the exact EIP-3009 requirements (amount, USDC asset, recipient, EIP-712 domain). Sign a transferWithAuthorization for them outside MCP (this server cannot sign), then call again with x_payment set to the base64 of {x402Version:1, scheme:'exact', network, payload:{signature, authorization}}.
| Argument | Type | Description |
|---|---|---|
| body* | string | the request, 20-4000 chars |
| title* | string | short title, 8-120 chars |
| x_payment | string | base64 X-PAYMENT value from a previously answered 402 (see description) |
{
"type": "object",
"required": [
"title",
"body"
],
"properties": {
"body": {
"type": "string",
"description": "the request, 20-4000 chars"
},
"title": {
"type": "string",
"description": "short title, 8-120 chars"
},
"x_payment": {
"type": "string",
"description": "base64 X-PAYMENT value from a previously answered 402 (see description)"
}
}
}Submit a prepared Polymarket order with the maker's EIP-712 signature from prepare_pm_order. Auth required.
| Argument | Type | Description |
|---|---|---|
| signature* | string | the maker's 65-byte EIP-712 signature, 0x… |
| prepare_id* | string | prepare id (uuid) from prepare_pm_order |
{
"type": "object",
"required": [
"prepare_id",
"signature"
],
"properties": {
"signature": {
"type": "string",
"description": "the maker's 65-byte EIP-712 signature, 0x…"
},
"prepare_id": {
"type": "string",
"description": "prepare id (uuid) from prepare_pm_order"
}
}
}Pull the venue's fills for a credential into the wallet's ledger. Idempotent — safe to repeat. Auth required.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | treasury wallet whose books receive the fills |
| credential_id* | string | stored credential id (uuid) |
{
"type": "object",
"required": [
"wallet",
"credential_id"
],
"properties": {
"wallet": {
"type": "string",
"description": "treasury wallet whose books receive the fills"
},
"credential_id": {
"type": "string",
"description": "stored credential id (uuid)"
}
}
}Top up the prepaid balance with USDC. Auth required. Payment flow: call once without x_payment — a 402 reply lists the exact EIP-3009 requirements (amount, USDC asset, recipient, EIP-712 domain). Sign a transferWithAuthorization for them outside MCP (this server cannot sign), then call again with x_payment set to the base64 of {x402Version:1, scheme:'exact', network, payload:{signature, authorization}}.
| Argument | Type | Description |
|---|---|---|
| x_payment | string | base64 X-PAYMENT value from a previously answered 402 (see description) |
| amount_usd* | string | top-up amount in USD, decimal string |
{
"type": "object",
"required": [
"amount_usd"
],
"properties": {
"x_payment": {
"type": "string",
"description": "base64 X-PAYMENT value from a previously answered 402 (see description)"
},
"amount_usd": {
"type": "string",
"description": "top-up amount in USD, decimal string"
}
}
}Wrap the funder Safe's USDC.e into Polymarket's pUSD, platform-relayed so the user pays no gas. Omit amount_base_units to wrap the full balance. Auth required.
| Argument | Type | Description |
|---|---|---|
| credential_id* | string | stored credential id (uuid) |
| amount_base_units | string | optional amount in base units, decimal string |
{
"type": "object",
"required": [
"credential_id"
],
"properties": {
"credential_id": {
"type": "string",
"description": "stored credential id (uuid)"
},
"amount_base_units": {
"type": "string",
"description": "optional amount in base units, decimal string"
}
}
}| client_order_id | string | optional idempotency uuid |
{
"type": "object",
"required": [
"wallet",
"credential_id",
"action"
],
"properties": {
"state": {
"type": "object",
"description": "optional current exposure: {market_exposure_usd, realized_loss_today_usd, total_open_exposure_usd} as decimal strings"
},
"venue": {
"enum": [
"polymarket"
],
"type": "string",
"default": "polymarket",
"description": "prediction-market venue (default polymarket)"
},
"action": {
"enum": [
"buy",
"sell"
],
"type": "string"
},
"wallet": {
"type": "string",
"description": "treasury wallet whose policy governs the order"
},
"token_id": {
"type": "string",
"description": "Polymarket: outcome token id, decimal string"
},
"price_usd": {
"type": "string",
"description": "Polymarket: limit price, '0.xx'"
},
"size_shares": {
"type": "string",
"description": "Polymarket: share count, decimal string"
},
"condition_id": {
"type": "string",
"description": "Polymarket: market condition id"
},
"credential_id": {
"type": "string",
"description": "stored credential id (uuid)"
},
"client_order_id": {
"type": "string",
"description": "optional idempotency uuid"
}
}
}| string |
| stored credential id (uuid) |
| client_order_id | string | optional idempotency uuid |
{
"type": "object",
"required": [
"venue",
"wallet",
"credential_id",
"condition_id",
"token_id",
"action",
"price_usd",
"size_shares"
],
"properties": {
"state": {
"type": "object",
"description": "optional current exposure: {market_exposure_usd, realized_loss_today_usd, total_open_exposure_usd} as decimal strings"
},
"venue": {
"enum": [
"polymarket"
],
"type": "string"
},
"action": {
"enum": [
"buy",
"sell"
],
"type": "string"
},
"wallet": {
"type": "string",
"description": "treasury wallet whose policy governs the order"
},
"token_id": {
"type": "string",
"description": "outcome token id, decimal string"
},
"price_usd": {
"type": "string",
"description": "limit price, '0.xx'"
},
"size_shares": {
"type": "string",
"description": "share count, decimal string"
},
"condition_id": {
"type": "string",
"description": "market condition id"
},
"credential_id": {
"type": "string",
"description": "stored credential id (uuid)"
},
"client_order_id": {
"type": "string",
"description": "optional idempotency uuid"
}
}
}{
"type": "object",
"required": [],
"properties": {
"label": {
"type": "string",
"description": "optional display label"
},
"maker": {
"type": "string",
"description": "Polymarket: funder (maker) address"
},
"venue": {
"enum": [
"polymarket"
],
"type": "string",
"default": "polymarket",
"description": "prediction-market venue (default polymarket)"
},
"secret": {
"type": "string",
"description": "Polymarket: CLOB API secret (explicit-creds shape)"
},
"signer": {
"type": "string",
"description": "Polymarket: signer address (explicit-creds shape)"
},
"api_key": {
"type": "string",
"description": "Polymarket: CLOB API key (explicit-creds shape)"
},
"passphrase": {
"type": "string",
"description": "Polymarket: CLOB API passphrase (explicit-creds shape)"
},
"signature_type": {
"type": "number",
"description": "Polymarket: 0 EOA, 1 Magic/email, 2 browser proxy (default 1)"
},
"signer_private_key": {
"type": "string",
"description": "Polymarket: signer EOA private key, 0x…"
}
}
}