Coverage
An external platform can integrate through the documented HTTP, EIP-712, HMAC, and WebSocket contracts without a Reso web session.
| Capability | API surface | Authentication |
|---|---|---|
| Wallet account and Reso Credential | Account and Credential APIs | Owner L1 then Reso L2 |
| Markets, private portfolio, public profile | Current product reads and wallet profile | Public or Reso L2 |
| BTC 3m orders | Full order lifecycle | Reso L2 + owner EIP-712 |
| Polymarket Crypto FAK | Immediate orders | Reso L2 + CLOB Credential + owner order signature |
| Deposit intent and status | Funding intent and status APIs | Reso L2 |
| Withdrawal to funding wallet | Funding intent and status | Bound funding-wallet WITHDRAW challenge |
End-to-end workflow
Use this order for a wallet-native integration. Every write is idempotent or one-time; preserve exact request bytes and identifiers until the final state is known.
Before you start
- An EVM funding-wallet signer controlled by the caller; Reso never receives the private key and provisions a separate managed owner.
- A secret store for the one-time Reso Credential and any Provider Credential.
- Access to the official Gamma/CLOB and deposit-wallet relayer clients for Crypto. Direct relayer users also need their own Polymarket Builder Credential.
- A supported source asset returned by GET /api/funding/assets; never hard-code the asset catalog or minimum amount.
- Create or read the Trading Account with CREATE_OR_READ_ACCOUNT and the external funding wallet; Reso provisions a separate managed owner.
- Create a Reso Credential with CREATE_CREDENTIAL; store the secret and passphrase returned once.
- Discover the product market from the product-specific public API.
- Read funding assets and create a deposit intent with Reso L2. For Crypto, wait until GET /api/trading/account returns polymarketFunderWallet before transferring funds.
- For Crypto, register the managed owner's Polymarket CLOB Credential through a challenge signed by the funding wallet, then prepare polymarketFunderWallet.
- Transfer the selected source asset to the intent depositAddress, then poll statusAddress.
- Build and managed-owner-sign the product-native order, then submit it with Reso L2 and an Idempotency-Key.
- Read the order and private portfolio; public wallet positions and activity need no authentication. Redeem remains a separate Provider wallet action when returned by the API.
- Create withdrawals through a WITHDRAW challenge signed by the bound funding wallet. Reso fixes the destination and executes Provider actions; poll until DONE.
Where product signing data comes from
This page and the OpenAPI fully define the Reso account, authentication, funding, submission, and query contracts. Polymarket payload signing remains a caller-side Provider prerequisite; Reso validates and forwards it but never fabricates an owner signature. ADI Sports is retired.
- BTC 3m: GET /api/trading/markets/{marketId}/config returns the complete Reso signing domain and market rules.
- Polymarket Crypto: use id/slug/eventId/eventSlug/conditionId from /api/crypto/markets, then use the official Gamma/CLOB APIs or client to resolve token ids, derive the CLOB Credential, and create the exact owner-signed FAK rawBody.
Quick start
Production: https://reso.market
ADI Mainnet · Chain ID 36900Production API and Settlement Root use ADI Mainnet. Chain 36900 is used for both the ADI settlement network and the Trading EIP-712 signing domain.
HTTP base path: /api/trading. WebSocket: wss://<host>/api/trading/ws. Production settlement and Settlement Root use ADI Mainnet chain ID 36900; the Trading EIP-712 signing domain also uses chain ID 36900.
Reso has no dedicated SDK. Node.js clients use viem for owner EIP-712 signatures; add the official Polymarket CLOB and relayer clients only for Crypto.
Where JavaScript Demo environment values come from
| Variable | Source | Required |
|---|---|---|
| TRADING_BASE_URL | Use https://reso.market; no application required | Always |
| TRADING_OWNER_WALLET | Legacy Demo name for the external funding wallet; never the platform-managed owner | Legacy preview only |
| RESO_OWNER_PRIVATE_KEY_FILE | Legacy Demo funding-wallet key; never a platform-managed owner key | Legacy preview only |
| RESO_SIGNER_RPC_URL | Provided by your managed wallet, HSM, or remote signer | Choose one signer |
| RESO_DEMO_RUNTIME_DIR | Created by the Demo; keep ./runtime | Always |
| POLYGON_RPC_URL | HTTPS endpoint from a Polygon RPC provider | Crypto chain operations only |
Code example
# Reso wallet signing and HTTP clientnpm install viem# Crypto only: official Polymarket order and deposit-wallet clientsnpm install @polymarket/clob-client-v2 @polymarket/builder-relayer-clientCode example
curl --fail --silent https://reso.market/api/trading/time# {"serverTimeMs": 1783958400123, "maxRequestSkewMs": 30000}