บทที่ 36 จาก 36
เวอร์ชันสั้น
เมื่อ28 เมษายน 2026 Polymarket ได้ย้ายหลักประกันการชำระบัญชีบน Polygon จาก USDC.e (โทเคน USDC ที่เชื่อมข้ามเชน, สัญญา 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) ไปเป็น pUSD ซึ่งเป็นสเตเบิลคอยน์ที่ออกโดย Polymarket และสามารถแลกคืนเป็น native USDC ได้ในอัตรา 1:1 ผู้เทรดบนเว็บแอปไม่ต้องทำอะไร - ยอดคงเหลือและสถานะถูกแปลงอัตโนมัติ ณ บล็อกสแนปช็อต ผู้ใช้งาน API และบอทต้องอัปเดต: ที่อยู่ของสินทรัพย์หลักประกันภายในลายเซ็นคำสั่ง CLOB ทุกคำสั่งเปลี่ยนไป, คำสั่งเก่าที่ลงนามโดยอ้าง USDC.e ถูกยกเลิก, และต้องใช้ py-clob-client เวอร์ชัน 0.40 หรือใหม่กว่า คู่มือนี้จะพาไล่ดูโค้ด สัญญา และการเปลี่ยนแปลงการอนุมัติที่ต้องทำอย่างละเอียดเพื่อให้บอททำงานต่อได้ทั้งในระหว่างและหลังการเปลี่ยนผ่าน
ส่วนที่ 1: สเตเบิลคอยน์สามตัว, Polygon หนึ่งเดียว
ก่อนการย้าย มีสเตเบิลคอยน์สกุล USD สามตัวอยู่ในวงโคจรของ Polymarket บน Polygon การรู้ความแตกต่างคือก้าวแรกในการทำความเข้าใจว่าทำไม Polymarket จึงเปลี่ยนสถานที่ดำเนินการ
| Token | ผู้ออก | สัญญาบน Polygon | ประเภททุนสำรอง |
|---|---|---|---|
| USDC.e | สะพาน Polygon PoS | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | เชื่อมต่อมาจาก Ethereum mainnet |
| USDC (native) | Circle | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | native, ออกโดยตรงบน Polygon |
| pUSD | คลังของ Polymarket | ดู docs.polymarket.com/pusd | หนุนหลัง 1:1 ด้วย native USDC, รับรองยอดทุกเดือน |
เดิมที Polymarket เลือก USDC.e เพราะเป็นรูปแบบ USDC ที่ครองตลาดบน Polygon มากที่สุดในตอนเปิดตัวเมื่อปี 2020 ต่อมา Circle ได้ออก USDC แบบ native โดยตรงบน Polygon และส่งสัญญาณว่าจะเลิกใช้เวอร์ชันที่เชื่อมสะพานในที่สุด การยังคงชำระราคาแต่ละตลาดด้วย USDC.e ทำให้ Polymarket เผชิญความเสี่ยงระยะยาวจากการปิดสะพานแบบกะทันหัน การย้ายไปใช้สเตเบิลคอยน์ที่ Polymarket ควบคุมเองช่วยแก้ปัญหานี้ และเปิดทางให้ฟีเจอร์ผลิตภัณฑ์ในอนาคต (เช่น มาร์จิ้นของ perps, การฝากเข้าคลัง, ใบเสร็จข้ามเชน) ที่ใช้หน่วยบัญชีเดียวกัน
ส่วนที่ 2: pUSD คืออะไร (และไม่ใช่อะไร)
pUSD เป็น โทเคน ERC-20 มาตรฐานบน Polygon (chain id 137) ที่มีทศนิยม 6 ตำแหน่ง ซึ่งมีความละเอียดเท่ากับ USDC โดยสามารถสร้างเหรียญใหม่ได้เฉพาะโดยสัญญา Polymarket Treasury และสามารถแลกคืนเป็น USDC ดั้งเดิมได้แบบ 1:1 ทุกเมื่อ โดยไม่มีค่าธรรมเนียมในการแปลง (ยังคงมีค่าก๊าซของเครือข่าย) ทุนสำรองที่หนุนหลัง pUSD ถูกเก็บไว้ในบัญชีแยกต่างหาก และรายงานทุกเดือนพร้อมการรับรองจากบุคคลที่สาม
pUSD ไม่ใช่ สเตเบิลคอยน์แบบอัลกอริทึม, ไม่ได้ค้ำประกันด้วยคริปโตเกินมูลค่า, และไม่ได้ให้ผลตอบแทน หากคุณถือ pUSD นอก Polymarket คุณควรมองมันเป็น IOU ที่ออกโดย Polymarket สำหรับ USDC ดั้งเดิม - มีประโยชน์ภายในแพลตฟอร์ม แลกคืนได้เมื่อเรียกใช้ แต่ไม่มีประโยชน์ในการถือระยะยาวในกระเป๋าภายนอก
docs.polymarket.com/pusd-audit เป็นรายเดือน โปรดยืนยันทั้งสองอย่างก่อนถือยอดคงเหลือจำนวนมากในระยะยาวส่วนที่ 3: สิ่งที่เทรดเดอร์บนเว็บแอปเห็น
หากคุณเทรดผ่าน polymarket.com เท่านั้น การย้ายระบบจะไม่ปรากฏให้เห็น ที่บล็อกสแนปช็อตเมื่อวันที่ 28 เมษายน 2026:
- ยอดคงเหลือ USDC.e ทุกจำนวนที่อยู่ในกระเป๋า proxy ของ Polymarket ถูกแปลงเป็น pUSD แบบอะตอมมิกในอัตรา 1:1
- สถานะเปิดยังคงมีมูลค่าเป็นดอลลาร์เท่าเดิม มีอัตราต่อรองของผลลัพธ์เท่าเดิม และวันหมดอายุเท่าเดิม รหัสโทเค็นแบบมีเงื่อนไขไม่เปลี่ยนแปลง
- คำสั่งที่ค้างอยู่ซึ่งกำหนดมูลค่าเป็น USDC.e ถูกยกเลิกที่สแนปช็อต คำสั่งใหม่หลังการย้ายระบบจะลงนามด้วย pUSD โดยอัตโนมัติ
- การถอนเงินไปยังกระเป๋าภายนอกเปลี่ยนจากการส่ง USDC.e เป็นการส่ง USDC ดั้งเดิม (หรือ pUSD ดิบตามคำขอ - ผู้ใช้ส่วนใหญ่ไม่จำเป็นต้องทำเช่นนั้น)
ไม่ต้องใช้ลายเซ็น ธุรกรรม หรือการเปลี่ยนแปลงการตั้งค่าใดๆ คำสั่งจำกัดราคาที่ค้างอยู่ซึ่งสำคัญต่อคุณควรตั้งใหม่ด้วยตนเองหลังการย้ายระบบ การยกเลิกเป็นเหตุการณ์ครั้งเดียวเท่านั้น
ส่วนที่ 4: ผู้ดำเนินการ API และบอท - การเปลี่ยนแปลงสำคัญ
นี่คือส่วนที่จะทำให้บอทพังถ้าคุณไม่ดำเนินการ
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) หลังการย้าย คือ pUSD คำสั่งที่ลงนามโดยอ้างอิงที่อยู่เก่าจะล้มเหลวในการตรวจสอบลายเซ็นที่ CLOB และจะแสดงข้อผิดพลาด "invalid ผู้ตั้งคำสั่ง (maker) asset" หรือ "signature mismatch"อัปเกรด py-clob-client
Polymarket ได้เผยแพร่ py-clob-client 0.40.0 สองสัปดาห์ก่อนการเปลี่ยนผ่านพร้อมรองรับ pUSD อย่างสมบูรณ์ สายเวอร์ชัน 0.34.x ถูกเลิกใช้งานในวันถัดจากการย้าย
# อัปเป็นรุ่นที่รองรับ pUSD
pip install --upgrade "py-clob-client>=0.40.0"
# ตรวจสอบสินทรัพย์หลักประกันที่เชื่อมต่อไว้
python -c "from py_clob_client.constants import POLYGON; \
print('ที่อยู่ pUSD:', POLYGON.get('collateral'))"
SDK ใหม่จะดึงที่อยู่ของหลักประกันจากการตั้งค่าบนเชนเมื่อเริ่มทำงาน ดังนั้นคุณไม่จำเป็นต้อง hard-code อะไรเลย ถ้าคุณ fork หรือ pin เวอร์ชันเก่ากว่า วิธีที่ปลอดภัยที่สุดคือ ลบไฟล์ lockfile ติดตั้งใหม่ด้วยโมดูล constants เวอร์ชันล่าสุด แล้วรันชุดทดสอบของคุณอีกครั้ง
อนุมัติสิทธิ์อีกครั้ง
กระเป๋า proxy ของ Polymarket ของคุณต้องมี ERC-20 allowance จาก บัญชีเทรดของคุณ -> สัญญา CTF Exchange สำหรับโทเค็น pUSD allowance เก่าสำหรับ USDC.e ยังอยู่บนเชนแต่ไม่มีประโยชน์เลย: CLOB จะไม่ใช้มัน หากไม่มี allowance pUSD ใหม่ ทุกคำสั่งจะคืนค่า "INSUFFICIENT_ALLOWANCE"
from py_clob_client.client import ClobClient
client = ClobClient(
host="https://clob.polymarket.com",
chain_id=137,
key=os.environ["POLY_PRIVATE_KEY"],
funder=os.environ["POLY_FUNDER"],
signature_type=1, # POLY_PROXY สำหรับบัญชี Magic-link
)
client.set_api_creds(client.create_or_derive_api_creds())
# ทำครั้งเดียว: อนุมัติ pUSD สำหรับสัญญา CTF Exchange
# (มี helper เพิ่มใน py-clob-client 0.40)
client.update_balance_allowance(asset_type="COLLATERAL")
รีเฟรชข้อมูลรับรอง API
API key ที่มีอยู่ยังคงใช้งานได้ แต่ถ้าคุณสร้างข้อมูลรับรองก่อนวันที่ 1 เมษายน คุณควรหมุนใหม่ไว้ก่อน: ตอนนี้ลายเซ็น ECDSA ชั้น L1 ผูกกับโดเมนที่รวมที่อยู่หลักประกันใหม่แล้ว เส้นทางที่ง่ายที่สุดคือ:
creds = client.create_or_derive_api_creds() # สร้างใหม่แบบ idempotent
client.set_api_creds(creds)
# บันทึกลง .env ของคุณ
print(creds.api_key, creds.api_secret, creds.api_passphrase)
ส่วนที่ 5: การยืนยันบอตของคุณหลังการย้ายระบบ
ให้รันการทดสอบ smoke test แบบย่อก่อนปล่อยตรรกะการกำหนดขนาดใดๆ ให้ทำงานกับเงินจริง:
# 1. ยืนยันยอด pUSD บนกระเป๋า proxy
from py_clob_client.client import ClobClient
client = ClobClient(...) # ตามที่ระบุข้างต้น
balance = client.get_balance_allowance(params={"asset_type": "COLLATERAL"})
print("ยอด pUSD (raw):", balance["balance"])
print("วงเงินอนุญาตสำหรับการแลกเปลี่ยน:", balance["allowance"])
# 2. วางคำสั่งจำกัดราคามูลค่า $1 ให้ห่างจากราคาตลาดมากๆ
from py_clob_client.clob_types import OrderArgs
order = client.create_order(OrderArgs(
token_id=test_token_id,
price=0.05, # ห่างจากตลาดมาก
size=20, # มูลค่า $1 ที่ราคา $0.05
side="BUY",
))
resp = client.post_order(order)
print(resp)
# 3. ยกเลิกและยืนยัน
client.cancel(order_id=resp["orderID"])
หากการเรียกทั้งสามครั้งสำเร็จ การเชื่อมต่อของคุณก็ถูกต้อง - SDK ลงนามด้วย pUSD, ระบบรับรู้วงเงินอนุญาตแล้ว และบัญชีคำสั่งซื้อขายก็สอดคล้องกัน จากนั้นค่อยๆ เพิ่มขนาดกลับขึ้นมาอีกครั้ง
ส่วนที่ 6: ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
| ข้อผิดพลาดหรืออาการ | สาเหตุ | วิธีแก้ไข |
|---|---|---|
signature verification failed | ลงนามคำสั่งซื้อขายโดยใช้โดเมน EIP-712 ของ USDC.e | อัปเกรด py-clob-client เป็น 0.40+; โหลดโมดูล constants ใหม่ |
INSUFFICIENT_ALLOWANCE ในทุกคำสั่งซื้อขาย | ไม่มี pUSD allowance จาก proxy ของคุณไปยัง CTF Exchange | รัน update_balance_allowance(asset_type="COLLATERAL") หนึ่งครั้ง |
invalid maker asset | ยังคงมีการกำหนดแอดเดรส USDC.e แบบ hard-coded อยู่ใน config ของคุณ | แทนที่แอดเดรสหลักประกันที่ hard-coded ทั้งหมดด้วยค่าคงที่ของ SDK |
| กระเป๋าแสดงยอดคงเหลือ USDC.e > 0 หลังการย้าย | โทเค็น "dust" ที่เหลือจากการโอนของบุคคลที่สาม | บริดจ์ USDC.e กลับไปเป็น USDC ดั้งเดิมบน CCTP ของ Circle หรือปล่อยไว้ |
| การเชื่อมต่อ WebSocket ใหม่แล้วได้สมุดคำสั่งซื้อขายว่างเปล่า | การสมัครรับข้อมูลเดิมใช้สถานะตลาดเก่าก่อน snapshot | ล้างแคชในเครื่อง ดึงสมุดคำสั่งซื้อขาย REST ใหม่ แล้วจึงสมัครรับข้อมูลอีกครั้ง |
| ถอนเงินไปยังกระเป๋าภายนอกแล้วแสดง pUSD แทน USDC | คุณเลือก "pUSD" แทน "USDC" ในหน้าต่างถอนเงิน | เลือก "USDC" - บริดจ์จะแปลง pUSD → USDC ดั้งเดิมในอัตรา 1:1 |
ส่วนที่ 7: Conditional Tokens, รหัสคำสั่งซื้อขาย และสิ่งอื่นๆ ที่ ไม่ เปลี่ยนแปลง
เพื่อให้ขอบเขตของการปรับโครงสร้างซื่อสัตย์ ต่อไปนี้คือรายการตัวระบุที่คงที่ตลอดการย้ายระบบ:
- สัญญา Conditional Token (CTF): ที่อยู่เหมือนเดิม ตำแหน่ง YES / NO แบบ ERC-1155 ของคุณไม่ได้รับผลกระทบ
- condition_id และ question_id: กำหนดแบบดีเทอร์มินิสติกจากพารามิเตอร์ของตลาด - ไม่ได้รับผลจากการสลับหลักประกัน
- token_id (ผลลัพธ์): ได้มาจาก condition_id + ดัชนีผลลัพธ์ - ไม่เปลี่ยนแปลง
- ที่อยู่กระเป๋า proxy ของ Polymarket: ที่อยู่เดิม; โค้ดแบบเดียวกับ Gnosis Safe
- API key, API secret, API passphrase: ยังใช้งานได้ (แนะนำให้หมุนเปลี่ยน; ไม่บังคับ)
- สคีมา WebSocket: เหมือนเดิม; ฟิลด์
assetใหม่จะอ่านว่า "pUSD" แทน "USDC.e" ในอีเวนต์ fill - Gamma และ Data APIs: ไม่ต้องยืนยันตัวตน, ไม่เปลี่ยนแปลง พวกมันไม่เคยอ้างอิงโทเค็นหลักประกันโดยตรง
ส่วนที่ 8: ผลกระทบด้านภาษีและการทำบัญชี
สำหรับเขตอำนาจศาลส่วนใหญ่ การแปลง USDC.e อัตโนมัติเป็น pUSD ถือเป็น การสวอปสเตเบิลคอยน์ที่ตรึงกับ USD แบบชนิดเดียวกันในอัตรา 1:1 และไม่ก่อให้เกิดเหตุการณ์ที่ต้องเสียภาษี ต้นทุนฐานและระยะเวลาการถือครองของคุณจะถูกส่งต่อไปด้วย
อย่างไรก็ตาม มีรายการด้านการทำบัญชี 2 เรื่องที่ควรใส่ใจ:
- อัปเดตสคีมาบัญชีแยกประเภทของคุณ เครื่องมือภาษี, บัญชีแยกประเภท SQLite หรือไฟล์ส่งออกให้บัญชีใดๆ ที่กรองธุรกรรม Polygon ตามสัญญา USDC.e จะพลาดธุรกรรมหลังการย้ายระบบทุกธุรกรรมโดยไม่แสดงข้อผิดพลาด เพิ่มที่อยู่สัญญา pUSD เป็นชื่อแฝง
- บันทึกคำอธิบายการแปลงจากสแนปช็อต แม้ว่าในเขตอำนาจศาลส่วนใหญ่จะไม่ต้องเสียภาษี แต่ให้บันทึกการแปลงนี้ในเอกสารของคุณอย่างชัดเจน: จำนวน, บล็อก, เวลา และหมายเหตุว่าเป็นการย้ายสเตเบิลคอยน์แบบ 1:1 หากเขตอำนาจศาลของคุณมีการสอบถามในภายหลัง คุณจะต้องมีร่องรอยการตรวจสอบที่ชัดเจน
เทรดเดอร์ชาวอิสราเอลควรปรึกษา Tax Guide สำหรับการรายงานเฉพาะของ ITA; การย้ายระบบเองไม่ได้เปลี่ยนแปลงการปฏิบัติตามมาตรฐาน แต่การเปลี่ยนที่อยู่สัญญามีความสำคัญต่อเครื่องมือการรายงานอัตโนมัติ
Part 9: เคล็ดลับระดับโปรจากผู้ปฏิบัติการที่ผ่านการเปลี่ยนมาแล้ว
- ปัก pin py-clob-client เป็น
>=0.40,<0.50ใน requirements.txt. สาย 0.40 คือขั้นต่ำที่ลงนามคำสั่ง pUSD ได้อย่างถูกต้อง - การกำหนดขอบเขตบนไว้ช่วยป้องกันการเปลี่ยนแปลงที่ทำให้ใช้งานไม่ได้ในอนาคต - ขออนุมัติ allowance ใหม่ในช่วงที่ปริมาณซื้อขายต่ำ. การเรียก
update_balance_allowanceเป็นธุรกรรมหนึ่งครั้งบน Polygon - ถ้าทำในช่วงตลาดเคลื่อนไหวแรง เท่ากับกำลังเชิญให้ค่าก๊าซพุ่ง - สแนปช็อตยอดคงเหลือ USDC.e ของคุณก่อนวันที่ 28 เมษายน. แม้ว่าการแปลงจะเป็นแบบอัตโนมัติ แต่การมียอดก่อนสแนปช็อตที่ตรวจสอบได้คือวิธีที่สะอาดที่สุดในการคัดค้านปัญหาการกระทบยอดใดๆ
- ยกเลิกคำสั่งที่ค้างอยู่ด้วยตนเองก่อนสแนปช็อต. อย่างไรก็ถูกยกเลิกโดยแพลตฟอร์มอยู่แล้ว - การทำเองจะทำให้คุณได้รายการในบัญชีแยกประเภทที่ชัดเจน แทนบรรทัด "system cancel"
- ระวังแดชบอร์ดที่ล้าสมัย. แดชบอร์ด Polymarket ของบุคคลที่สาม (PolymarketAnalytics, Polynance ฯลฯ) ใช้เวลาสองถึงสามวันในการแยกวิเคราะห์เหตุการณ์ pUSD ใหม่อีกครั้ง บอทของคุณที่มีฐานข้อมูลท้องถิ่นอาจนำหน้าแดชบอร์ดสาธารณะอยู่หลายวัน
- บริดจ์เศษ USDC.e ตามเวลาที่คุณสะดวก. บัญชีส่วนใหญ่จะมี USDC.e เหลืออยู่ไม่กี่เซนต์จากส่วนลดค่าธรรมเนียมเก่าหรือการโอนแบบเพียร์ ใช้ CCTP ของ Circle หรือบริดจ์ Polygon Portal มาตรฐาน - ไม่ต้องรีบร้อน
- เก็บที่อยู่ USDC.e เดิมไว้ในการแจ้งเตือนจากบล็อกเอ็กซ์พลอเรอร์ของคุณ. หากมีอะไรเกิดการ sweep ออกจากกระเป๋า proxy ของคุณใน USDC.e หลังการย้ายระบบ นั่นคือสัญญาณเตือนที่ควรตรวจสอบทันที
ต่อไปคืออะไร?
- คู่มือ Polymarket API - คู่มือ API ฉบับเต็ม อัปเดตสำหรับ pUSD
- คู่มือการฝาก - การฝาก USDC และรับ pUSD ภายในแอป
- คู่มือการถอน - การถอน pUSD ออกเป็น native USDC ไปยังกระเป๋าภายนอก
- เครื่องมือ & แหล่งข้อมูล - แดชบอร์ดของบุคคลที่สามที่อัปเดตสำหรับ pUSD แล้ว
- อภิธานศัพท์ - คำจำกัดความแบบภาษาง่ายสำหรับทุกคำที่ใช้ที่นี่
ข้อสรุปสำคัญ
การย้ายไปใช้ pUSD ของ Polymarket เป็นการปรับโครงสร้างครั้งเดียวที่มีความเสี่ยงต่ำสำหรับผู้ปฏิบัติการที่รันบอต Polymarket อยู่แล้ว อัปเกรด py-clob-client เป็น 0.40+ อนุมัติ allowance ของ pUSD ใหม่ ทำการทดสอบแบบ $1 แล้วกลับมาดำเนินต่อ โครงสร้างพื้นฐานด้านล่าง (CTF, condition IDs, token IDs, API keys) ไม่ได้เปลี่ยน ดังนั้นขอบเขตผลกระทบจึงเล็ก และแผนการย้อนกลับก็ชัดเจน











