API · রেফারেন্স
clob.polymarket.com-এ CLOB (সেন্ট্রাল লিমিট অর্ডার বুক) হলো যেখানে অর্ডার স্থির
থাকে ও মেলে। আপনি কোনো অথ ছাড়া বুক, দাম ও tick size পড়েন, আর API ক্রেডেনশিয়াল ও
স্বাক্ষর দিয়ে ট্রেড করেন (অর্ডার দেওয়া/বাতিল, ব্যালান্স পড়া)।
এটি CLOB V2 রেফারেন্স - জামানত pUSD, ফি অন-চেইন, এবং মেকাররা শূন্য দেয়।
অর্ডার বুক পড়ুন (কোনো অথ নয়)
from py_clob_client_v2 import ClobClient # pip install py-clob-client-v2
client = ClobClient(host="https://clob.polymarket.com", chain_id=137) # read-only: no key
book = client.get_order_book(token_id)
mid = client.get_midpoint(token_id)
print(book.bids[0].price, book.asks[0].price, mid)
// polymarket_client_sdk_v2 (official, repo rs-clob-client-v2)
use polymarket_client_sdk_v2::clob::{Client, Config};
use polymarket_client_sdk_v2::clob::types::request::OrderBookSummaryRequest;
let client = Client::new("https://clob.polymarket.com", Config::default())?;
let book = client.order_book(&OrderBookSummaryRequest::builder().token_id(token_id).build()).await?;
curl -s "https://clob.polymarket.com/book?token_id=$TOKEN_ID"
নমুনা প্রতিক্রিয়া
{
"market": "0x...",
"bids": [ { "price": "0.62", "size": "1400" }, { "price": "0.61", "size": "900" } ],
"asks": [ { "price": "0.64", "size": "1100" }, { "price": "0.65", "size": "2000" } ]
}
পড়ার এন্ডপয়েন্ট
| এন্ডপয়েন্ট | ফেরত দেয় |
|---|---|
GET /book?token_id= | পূর্ণ অর্ডার বুক (বিড / আস্ক)। |
GET /price?token_id=&side= | সেরা বিড বা আস্ক। |
GET /midpoint?token_id= | মিড = (সেরা বিড + সেরা আস্ক) / 2। |
GET /spread?token_id= | সেরা আস্ক − সেরা বিড। |
GET /tick-size?token_id= | ন্যূনতম দাম-বৃদ্ধি (আপনার দাম এতে গোল করুন)। |
সীমা উঁচু: CLOB ~9,000 অনুরোধ / 10s, /book ও /price 1,500 / 10s,
এবং সীমা-অতিক্রমী অনুরোধ থ্রটল করা হয়, প্রত্যাখ্যাত নয়। 429 নিয়ে আরও।
একটি অর্ডার দিন ও বাতিল করুন (অথ)
একটি কল আপনার অর্ডার তৈরি করে, স্বাক্ষর করে (V2 অর্ডার-স্ট্রাক্ট) ও পোস্ট করে। আপনি একটি অর্ডার-ধরন বাছেন:
| ধরন | আচরণ |
|---|---|
GTC | Good-Till-Cancelled - ফিল বা বাতিল না হওয়া পর্যন্ত বুকে স্থির থাকে। |
GTD | Good-Till-Date - একটি মেয়াদ-টাইমস্ট্যাম্প পর্যন্ত স্থির থাকে। |
FOK | Fill-Or-Kill - পুরো অর্ডার সঙ্গে সঙ্গে ফিল করুন বা বাতিল করুন। |
FAK | Fill-And-Kill - সঙ্গে সঙ্গে যতটা পারে ফিল করুন, বাকি বাতিল করুন। |
from py_clob_client_v2 import (ClobClient, OrderArgs, OrderType,
PartialCreateOrderOptions, Side, OrderPayload)
# authenticated client (creds from create_or_derive_api_key - see Authentication)
client = ClobClient(host="https://clob.polymarket.com", chain_id=137, key=PK, creds=creds)
resp = client.create_and_post_order(
order_args=OrderArgs(token_id=token_id, price=0.62, side=Side.BUY, size=10),
options=PartialCreateOrderOptions(tick_size="0.01", neg_risk=False), # read both off the market
order_type=OrderType.GTC, # GTC, GTD, FOK or FAK
)
# resp -> {"success": true, "orderID": "0x...", "status": "live"}
client.cancel_order(OrderPayload(orderID=resp["orderID"])) # cancel
tick_size ("0.01" বা "0.001") পাস করুন এবং বহু-ফলাফল "নেগেটিভ রিস্ক"
বাজারের জন্য neg_risk=True সেট করুন - স্বাক্ষরের আগে দুটোই Gamma থেকে পড়ুন (orderPriceMinTickSize,
negRisk)। এছাড়া: ন্যূনতম অর্ডার-আকার 5 শেয়ার, এবং আপনার দাম আগেই tick-এ গোল করা
থাকতে হবে নইলে অর্ডার প্রত্যাখ্যাত হয়।nonce,
feeRateBps, taker ও expiration বাদ দিয়েছে এবং timestamp,
metadata ও builder যোগ করেছে; Exchange EIP-712 ডোমেইন সংস্করণ "2"।
ফি অন-চেইনে মিল-সময়ে সংগ্রহ করা হয় - মেকাররা 0 দেয়, কেবল টেকাররা দেয়।
ট্রেডিংয়ের আগে আপনাকে তিনটি V2 কন্ট্রাক্টে pUSD + কন্ডিশনাল টোকেন অনুমোদন দিতে হবে
(allowance সমাধান দেখুন)।ফি: কেবল টেকাররা দেয়, আর হার বাঁকে
মেকারদের কখনও চার্জ করা হয় না। টেকাররা এমন একটি ফি দেয় যা সমতল নয় - এটি বাজারের অনিশ্চয়তার সঙ্গে স্কেল করে এবং শ্রেণিভেদে ভিন্ন হয়। সূত্র:
fee = shares × feeRate × p × (1 - p) # p = share price, 0..1
p·(1-p) পদটির মানে ফি 50/50-তে শীর্ষে ওঠে এবং 1¢ ও 99¢ প্রান্তের দিকে সংকুচিত হয় -
তাই প্রায়-নিশ্চিত ফলাফল নেওয়া সস্তা, একটি কয়েন-ফ্লিপ ব্যয়বহুল। প্রতি-শ্রেণি টেকার feeRate:
| শ্রেণি | টেকার feeRate |
|---|---|
| ক্রিপ্টো | 0.07 (7 bps) - সর্বোচ্চ |
| অর্থনীতি / সংস্কৃতি / আবহাওয়া | 0.05 |
| ফিনান্স / রাজনীতি / টেক / Mentions | 0.04 |
| খেলাধুলা | 0.03 |
| ভূরাজনীতি ও বিশ্ব-ঘটনা | 0 - ফি-মুক্ত |
হার্ডকোড না করে GET /fee-rate-bps?token_id= দিয়ে প্রতি টোকেনের লাইভ হার পড়ুন; ফি
5 দশমিকে গোল হয় (ন্যূনতম 0.00001 pUSD)। মেকাররা শূন্য দেয় বলেই এজবিহীন বেশিরভাগ বট নেওয়ার বদলে কোট করে।
নেগেটিভ-রিস্ক (বহু-ফলাফল) বাজার
বহু-প্রার্থীর ঘটনা ("নির্বাচনে কে জেতে?") হলো নেগ-রিস্ক বাজার: এদের ফলাফল যুক্ত, তাই
একটি ফলাফলের একটি No শেয়ার Neg Risk Adapter-এর মাধ্যমে অন্য প্রতিটি ফলাফলের একটি Yes শেয়ারে রূপান্তরিত হয়
- পুঁজি-দক্ষ, তবে যান্ত্রিকভাবে ভিন্ন। এগুলো বাইনারি বাজারের থেকে ভিন্ন কন্ট্রাক্টে চলে, তাই
আপনাকে অর্ডার-অপশনে neg_risk=True পাস করতেই হবে (বাজারের negRisk
ফ্ল্যাগ Gamma থেকে পড়ুন)। বাদ দিলে অর্ডার ভুল এক্সচেঞ্জের বিপরীতে স্বাক্ষরিত হয়ে প্রত্যাখ্যাত হয়।
কন্ডিশনাল টোকেন: split, merge, redeem (বুকের বাইরে)
প্রতিটি বাজারের নিচে থাকে Conditional Token Framework (CTF)। ফলাফল-টোকেন হলো ERC-1155 টোকেন, এবং প্রতিটি Yes/No জোড়া CTF কন্ট্রাক্টে লক করা ঠিক $1.00 pUSD দিয়ে সমর্থিত। এটি আপনাকে তিনটি প্রিমিটিভ দেয় যা কেবল অর্ডার বুক দেয় না:
| কাজ | এটি কী করে | কেন একটি বট ব্যবহার করে |
|---|---|---|
| Split | $1 pUSD লক → 1 Yes + 1 No তৈরি | স্প্রেড পার না করে ইনভেন্টরি বানানো; দুই দিকেই কোট করা। |
| Merge | 1 Yes + 1 No পোড়ানো → $1 pUSD পুনরুদ্ধার | একটি হেজড জোড়া থেকে সঙ্গে সঙ্গে বেরোনো - নিষ্পত্তির অপেক্ষা নেই, টেকার ফি নেই। |
| Redeem | নিষ্পত্তির পর, বিজয়ী টোকেন → $1.00 pUSD | একটি নিষ্পন্ন পজিশন নগদায়ন করা (redeemPositions)। |
Split ও merge হলো CTF আরবিট্রাজের ভিত্তি: বুকে Yes + No যদি $1.00-এর নিচে
ট্রেড করে, দুটোই কিনে merge করে $1.00-এ ফিরুন; $1.00-এর ওপরে ট্রেড করলে,
$1-কে একটি নতুন জোড়ায় split করে দুটোই বিক্রি করুন। ওরাকল অন-চেইনে ফলাফল পোস্ট করার পর
ConditionalTokens কন্ট্রাক্টের মাধ্যমে মুক্তি নিষ্পত্তি হয় - দাবিযোগ্য হলে
Data API-তে একটি পজিশন redeemable: true দেখায়।
পজিশন ID উদ্ভূত হয় getConditionId → getCollectionId → getPositionId দিয়ে।
উন্নত: RFQ ও combo বাজার (সিরিয়াস মেকারদের জন্য)
অর্ডার বুকের বাইরে, পলিমার্কেট একটি Request-for-Quote (RFQ) ব্যবস্থা চালায়, বিশেষত combo বাজারের জন্য - বিদ্যমান বাজারগুলো বহু-লেগ যৌগিক পজিশনে বান্ডিল করা। প্রবাহে তিনটি পর্যায়: একজন টেকার একটি কোট অনুরোধ করেন, মেকাররা কোট দিয়ে প্রতিযোগিতা করেন, এবং নির্বাচিত মেকার সম্পাদনের আগে নিশ্চিত বা প্রত্যাখ্যান করতে একটি শেষ-দেখা পান।
- combo আবিষ্কার:
GET /v1/rfq/combo-markets(পাবলিক;limit1-100,cursor,exclude)। প্রতিটি combo দুটি পজিশন ID উন্মুক্ত করে (Yes = index 0, No = index 1)। - মেকার হিসেবে কোট:
POST combos-rfq-api.polymarket.com/v1/maker/quotes(L2 অথ)। আপনি নিজেquote_idতৈরি করেন, এবংrfq_id,maker_address,signature_type, একটি স্বাক্ষরিত Exchange অর্ডার, এবংprice_e6/size_e6ছয়-দশমিক স্থির-বিন্দু স্ট্রিং হিসেবে পাঠান (*_e6রীতি ফ্লোট-নির্ভুলতা হারানো এড়ায়)। - শেষ-দেখা: RFQ যখন
AWAITING_MAKER_CONFIRMATIONঅবস্থায়, তখনCONFIRM,DECLINE, বাTIMED_OUTহতে দিন।
RFQ স্টেট মেশিন: CREATED → COLLECTING_QUOTES → AWAITING_REQUESTER_ACCEPTANCE →
AWAITING_MAKER_CONFIRMATION → EXECUTING → FILLED (নইলে FAILED / EXPIRED / CANCELED / REJECTED)। লাইভ
অবস্থার জন্য RFQ WebSocket গেটওয়েতে সাবস্ক্রাইব করুন। এটি বিশেষায়িত - বেশিরভাগ বটের কেবল ওপরের CLOB বুক লাগে - তবে
বহু-লেগ ও combo লিকুইডিটির দাম এভাবেই নির্ধারিত হয়।
ব্যালান্স ও allowance যাচাই করুন
client.get_balance_allowance(...) # collateral (pUSD) and conditional-token allowances
এটি শূন্য allowance দেখালে, অর্ডার দেওয়ার আগে pUSD/CTF V2 এক্সচেঞ্জ কন্ট্রাক্টে অনুমোদন দিন।
outcomes অ্যারে পড়ুন (Gamma এটি ও
clobTokenIds JSON-এনকোডেড স্ট্রিং হিসেবে ফেরত দেয়, যা আপনাকে ডিকোড করতে হবে) এবং নাম দিয়ে মেলান।এরপর: প্রমাণীকরণ ও ওয়ালেট · WebSocket: বুক স্ট্রিম করুন · একটি CLOB ত্রুটি ঠিক করুন।



