Polymarket Bot Tutorial · Bab 6 dari 32
Autentikasi bot Polymarket dan setup wallet: proxy wallet vs EOA, pembuatan API key via SDK, sigType 2 untuk Gnosis Safe, best practices penyimpanan key, dan migrasi Magic ke Privy.
Apa yang dibahas dalam bab ini
Model wallet Polymarket memiliki tiga bagian yang bergerak: externally owned account (EOA) yang menandatangani order, smart-contract proxy yang menyimpan dana, dan Polymarket CLOB API key yang mengautentikasi HTTP requests. Menyambungkan ketiganya dengan benar adalah kegagalan Day 1 yang paling umum bagi builder baru, dan ini menjadi lebih membingungkan setelah migrasi Magic Labs ke Privy pada Agustus 2025. Bab ini membahas setiap bagian sesuai urutan setup, dengan environment variables spesifik dan signature-type flag yang dibutuhkan kode production.
- Proxy wallet vs EOA: mana yang digunakan untuk bot
- Membuat API key (langkah SDK)
- sigType 2 dan POLY_FUNDER_ADDRESS (Gnosis Safe)
- Penyimpanan key: .env, vault, KMS
- Migrasi Magic Labs ke Privy
- Menyetujui spending USDC/pUSD
- Wallet recovery dan backup
Proxy wallet vs EOA: mana yang digunakan untuk bot
Polymarket menggunakan pola smart-contract proxy wallet. EOA Anda - alamat yang terhubung ke private key Anda - menandatangani transaksi dan order. Gnosis Safe yang di-deploy pada alamat deterministik menyimpan pUSD dan outcome shares yang sebenarnya. Alamat proxy adalah yang muncul di panel "wallet" pada UI Polymarket; EOA adalah yang menandatangani.
Untuk bot, Anda selalu menandatangani dengan EOA (PRIVATE_KEY di env) dan mereferensikan alamat proxy sebagai POLY_FUNDER_ADDRESS di konfigurasi CLOB client. Mengirim order dengan EOA sebagai funder akan menghasilkan error "insufficient balance" meskipun proxy sudah terisi.
Anda tidak bisa menjalankan bot hanya dengan EOA - alur web Polymarket selalu membuat proxy saat signup. Konfirmasikan kedua alamat dengan polymarket wallet show dari CLI, atau baca alamat proxy dari settings UI Polymarket.
Membuat API key (langkah SDK)
CLOB API membutuhkan tiga credential: key, secret, passphrase. Ini bukan private key wallet Anda - ini adalah kumpulan credential bergaya HMAC yang terikat ke wallet Anda, digunakan hanya untuk autentikasi HTTP request.
Buat sekali dengan SDK:
# Python
from py_clob_client.client import ClobClient
c = ClobClient(host="https://clob.polymarket.com", chain_id=137,
key="<PRIVATE_KEY>", signature_type=2,
funder="<PROXY_ADDRESS>")
creds = c.create_or_derive_api_creds()
print(creds.api_key, creds.api_secret, creds.api_passphrase)
Simpan output-nya ke file JSON dan muat setiap kali bot dijalankan; jangan generate ulang per sesi - API server menyimpan cache credential set, dan rotasi yang terlalu sering bisa memicu logika rate-limit. Credential ini tidak kedaluwarsa secara otomatis. Rotasi hanya jika Anda mencurigai adanya kebocoran.
sigType 2 dan POLY_FUNDER_ADDRESS (Gnosis Safe)
Argumen signature_type mengontrol bagaimana CLOB memvalidasi signature order Anda. Ada tiga nilai; dua di antaranya nyata:
- 0 / EOA: EOA adalah signer dan funder sekaligus. Digunakan untuk setup tidak biasa saat user mengimpor private key secara langsung.
- 1 / POLY_PROXY: legacy Magic Labs proxy contract. Kebanyakan akun sebelum 2025.
- 2 / POLY_GNOSIS_SAFE: standar saat ini. Dana berada di Gnosis Safe, EOA menandatangani.
Gunakan signature_type=2 untuk akun apa pun yang dibuat setelah Agustus 2025 (migrasi Privy) atau akun apa pun yang Anda lihat memiliki alamat Gnosis Safe di UI Polymarket. Env var POLY_FUNDER_ADDRESS harus berupa alamat Safe, bukan EOA. Ketidaksesuaian signature_type dengan tipe funder akan menghasilkan penolakan order secara diam-diam yang terlihat seperti "insufficient allowance" atau "balance: 0" - pesan error-nya menyesatkan.
Penyimpanan key: .env, vault, KMS
Tiga level penyimpanan yang masuk akal untuk EOA private key.
- File .env (development single-machine). File berada di VPS, bot membacanya saat start, key tidak pernah keluar dari host. Memadai untuk wallet <$1k.
chmod 600 .envdan pastikan .gitignore repo Anda mengecualikannya. - Self-hosted vault (HashiCorp Vault, file terenkripsi age, atau systemd-creds). Menambahkan langkah unlock saat bot start. Layak untuk wallet di kisaran $1k-$10k.
- Cloud KMS (AWS KMS, GCP KMS). Bot memanggil KMS untuk mendekripsi key di memory; key tidak pernah menyentuh disk. Kompleksitas operasional ini layak hanya di atas $10k atau untuk fleet multi-bot.
Yang jangan pernah dilakukan: commit private key ke git, paste ke chat, simpan di password manager yang sinkron ke cloud services tanpa mode local-only. Radius kerusakan on-chain dari kebocoran EOA Polymarket adalah seluruh saldo pUSD dan inventaris outcome share Anda.
Migrasi Magic Labs ke Privy
Pada Agustus 2025 Polymarket memigrasikan primary embedded-wallet provider mereka dari Magic Labs ke Privy. Dampaknya bagi bot kecil tetapi spesifik.
Akun pre-migration (dibuat via Magic) biasanya menggunakan signature_type=1 (POLY_PROXY). Akun post-migration menggunakan signature_type=2 (POLY_GNOSIS_SAFE). Beberapa user memigrasikan akun lama mereka; sebagian tetap memakai yang asli. Tidak ada cara untuk mengetahui dari public API tipe apa yang digunakan akun Anda - Anda memeriksanya dengan mencoba menandatangani order dan melihat penolakannya.
Migrasi ini juga mengubah cara UI menampilkan funder address. Alur UI Polymarket yang lebih lama menampilkan alamat proxy di dashboard; alur saat ini menyembunyikannya di account settings. Perintah CLI polymarket wallet show adalah cara paling bersih untuk mengonfirmasi kedua nilai tersebut, terlepas dari kapan akun dibuat.
Menyetujui spending USDC/pUSD
Agar CLOB dapat memindahkan pUSD Anda saat order match, proxy harus sudah menyetujui contract exchange Polymarket sebagai spender. UI Polymarket mengatur approval ini saat deposit pertama. Untuk bot yang mendanai proxy secara langsung, Anda harus mengaturnya secara manual.
Ada tiga approval yang perlu diset, sekali per wallet:
- pUSD (ERC-20) → exchange contract
- Conditional Tokens (ERC-1155) → exchange contract (untuk menjual shares)
- Conditional Tokens (ERC-1155) → NegRisk exchange contract (untuk menjual NegRisk shares)
Jalankan polymarket approve dari CLI saat setup pertama. Transaction ini memakan biaya beberapa sen dalam gas MATIC. Verifikasi dengan polymarket approve check - semuanya harus mengembalikan "approved." Bug diam-diam yang paling umum bagi builder baru adalah approval NegRisk yang hilang, yang hanya gagal saat menjual shares dari market multi-outcome dan terlihat seperti error balance.
Wallet recovery dan backup
Wallet bot memiliki dua elemen yang bisa dipulihkan: EOA private key, dan password akun Polymarket (yang mengatur akses melalui web UI tetapi bukan melalui SDK).
EOA private key adalah satu-satunya hal yang penting untuk bot. Hilang = hilang semua yang ada di proxy. Cold backup: tulis di kertas, segel dalam amplop, simpan di lokasi terpisah. Hot backup: USB stick terenkripsi. Jangan pernah email ke diri sendiri; jangan pernah simpan tanpa enkripsi di cloud storage.
Password akun Polymarket bisa dipulihkan melalui recovery email Magic Labs / Privy selama Anda masih mengontrol email signup asli. Password ini tidak mengatur akses bot - bot menggunakan EOA private key secara langsung.
Jika Anda mencurigai ada key leak: segera withdraw pUSD dan outcome tokens ke wallet baru, generate EOA baru, deploy ulang bot dengan key baru. Key yang bocor tidak bisa dicabut; key itu hanya bisa dikuras.










