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 অর্ডার-স্ট্রাক্ট) ও পোস্ট করে। আপনি একটি অর্ডার-ধরন বাছেন:

ধরনআচরণ
GTCGood-Till-Cancelled - ফিল বা বাতিল না হওয়া পর্যন্ত বুকে স্থির থাকে।
GTDGood-Till-Date - একটি মেয়াদ-টাইমস্ট্যাম্প পর্যন্ত স্থির থাকে।
FOKFill-Or-Kill - পুরো অর্ডার সঙ্গে সঙ্গে ফিল করুন বা বাতিল করুন।
FAKFill-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-এ গোল করা থাকতে হবে নইলে অর্ডার প্রত্যাখ্যাত হয়।
V2 অর্ডার তথ্য। স্বাক্ষরিত স্ট্রাক্ট 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
ফিনান্স / রাজনীতি / টেক / Mentions0.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 তৈরিস্প্রেড পার না করে ইনভেন্টরি বানানো; দুই দিকেই কোট করা।
Merge1 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 (পাবলিক; limit 1-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 এক্সচেঞ্জ কন্ট্রাক্টে অনুমোদন দিন।

Yes / No টোকেন ID। প্রতিটি বাইনারি বাজারের দুটি টোকেন ID আছে। কোনটি Yes তা হার্ডকোড করবেন না - পার্সড outcomes অ্যারে পড়ুন (Gamma এটি ও clobTokenIds JSON-এনকোডেড স্ট্রিং হিসেবে ফেরত দেয়, যা আপনাকে ডিকোড করতে হবে) এবং নাম দিয়ে মেলান।

এরপর: প্রমাণীকরণ ও ওয়ালেট · WebSocket: বুক স্ট্রিম করুন · একটি CLOB ত্রুটি ঠিক করুন।