curl --request POST \
--url https://bridge.polymarket.com/withdraw \
--header 'Content-Type: application/json' \
--data '
{
"address": "0x9156dd10bea4c8d7e2d591b633d1694b1d764756",
"toChainId": "1",
"toTokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"recipientAddr": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
'import requests
url = "https://bridge.polymarket.com/withdraw"
payload = {
"address": "0x9156dd10bea4c8d7e2d591b633d1694b1d764756",
"toChainId": "1",
"toTokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"recipientAddr": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
address: '0x9156dd10bea4c8d7e2d591b633d1694b1d764756',
toChainId: '1',
toTokenAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
recipientAddr: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
})
};
fetch('https://bridge.polymarket.com/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://bridge.polymarket.com/withdraw",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'address' => '0x9156dd10bea4c8d7e2d591b633d1694b1d764756',
'toChainId' => '1',
'toTokenAddress' => '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
'recipientAddr' => '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://bridge.polymarket.com/withdraw"
payload := strings.NewReader("{\n \"address\": \"0x9156dd10bea4c8d7e2d591b633d1694b1d764756\",\n \"toChainId\": \"1\",\n \"toTokenAddress\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"recipientAddr\": \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://bridge.polymarket.com/withdraw")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"0x9156dd10bea4c8d7e2d591b633d1694b1d764756\",\n \"toChainId\": \"1\",\n \"toTokenAddress\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"recipientAddr\": \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://bridge.polymarket.com/withdraw")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": \"0x9156dd10bea4c8d7e2d591b633d1694b1d764756\",\n \"toChainId\": \"1\",\n \"toTokenAddress\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"recipientAddr\": \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"\n}"
response = http.request(request)
puts response.read_body{
"address": {
"evm": "0x23566f8b2E82aDfCf01846E54899d110e97AC053",
"svm": "CrvTBvzryYxBHbWu2TiQpcqD5M7Le7iBKzVmEj3f36Jb",
"btc": "bc1q8eau83qffxcj8ht4hsjdza3lha9r3egfqysj3g"
},
"note": "Send funds to these addresses to bridge to your destination chain and token."
}{
"error": "<string>"
}{
"error": "<string>"
}Create withdrawal addresses
curl --request POST \
--url https://bridge.polymarket.com/withdraw \
--header 'Content-Type: application/json' \
--data '
{
"address": "0x9156dd10bea4c8d7e2d591b633d1694b1d764756",
"toChainId": "1",
"toTokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"recipientAddr": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
'import requests
url = "https://bridge.polymarket.com/withdraw"
payload = {
"address": "0x9156dd10bea4c8d7e2d591b633d1694b1d764756",
"toChainId": "1",
"toTokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"recipientAddr": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
address: '0x9156dd10bea4c8d7e2d591b633d1694b1d764756',
toChainId: '1',
toTokenAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
recipientAddr: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
})
};
fetch('https://bridge.polymarket.com/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://bridge.polymarket.com/withdraw",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'address' => '0x9156dd10bea4c8d7e2d591b633d1694b1d764756',
'toChainId' => '1',
'toTokenAddress' => '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
'recipientAddr' => '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://bridge.polymarket.com/withdraw"
payload := strings.NewReader("{\n \"address\": \"0x9156dd10bea4c8d7e2d591b633d1694b1d764756\",\n \"toChainId\": \"1\",\n \"toTokenAddress\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"recipientAddr\": \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://bridge.polymarket.com/withdraw")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"0x9156dd10bea4c8d7e2d591b633d1694b1d764756\",\n \"toChainId\": \"1\",\n \"toTokenAddress\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"recipientAddr\": \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://bridge.polymarket.com/withdraw")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": \"0x9156dd10bea4c8d7e2d591b633d1694b1d764756\",\n \"toChainId\": \"1\",\n \"toTokenAddress\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"recipientAddr\": \"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\"\n}"
response = http.request(request)
puts response.read_body{
"address": {
"evm": "0x23566f8b2E82aDfCf01846E54899d110e97AC053",
"svm": "CrvTBvzryYxBHbWu2TiQpcqD5M7Le7iBKzVmEj3f36Jb",
"btc": "bc1q8eau83qffxcj8ht4hsjdza3lha9r3egfqysj3g"
},
"note": "Send funds to these addresses to bridge to your destination chain and token."
}{
"error": "<string>"
}{
"error": "<string>"
}Headers
Optional builder code (bytes32 hex) attributing this request to your integration so transfer issues can be traced to your app. Omitting it still succeeds but returns a missing_builder_code warning; a malformed code returns 400. Get your code at https://polymarket.com-the-worlds-largest-prediction-market.world/settings?tab=builder
^0x[a-fA-F0-9]{64}$"0x00000000000000000000000000000000000000000000000000000000abcd1234"
Body
Source Polymarket wallet address on Polygon
^0x[a-fA-F0-9]{40}$"0x56687bf447db6ffa42ffe2204a05edaa20f55839"
Destination chain ID (e.g., "1" for Ethereum, "8453" for Base, "1151111081099710" for Solana)
"1"
Destination token contract address
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
Destination wallet address where funds will be sent
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
Was this page helpful?