全面优化实盘对接没有验证
This commit is contained in:
@@ -0,0 +1,233 @@
|
||||
> ## Documentation Index
|
||||
> Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt
|
||||
> Use this file to discover all available pages before exploring further.
|
||||
|
||||
# Geographic Restrictions
|
||||
|
||||
> Check geographic restrictions before placing orders on the Polymarket API
|
||||
|
||||
Polymarket restricts order placement from certain geographic locations due to regulatory requirements and compliance with international sanctions. Before placing orders, builders should verify the location.
|
||||
|
||||
<Warning>
|
||||
Orders submitted from blocked regions will be rejected. Implement geoblock
|
||||
checks in your application to provide users with appropriate feedback before
|
||||
they attempt to trade.
|
||||
</Warning>
|
||||
|
||||
***
|
||||
|
||||
## Geoblock Endpoint
|
||||
|
||||
Check the geographic eligibility of the requesting IP address:
|
||||
|
||||
```bash theme={null}
|
||||
GET https://polymarket.com/api/geoblock
|
||||
```
|
||||
|
||||
<Note>This endpoint is on `polymarket.com`, not the API servers.</Note>
|
||||
|
||||
### Response
|
||||
|
||||
```json theme={null}
|
||||
{
|
||||
"blocked": true,
|
||||
"ip": "203.0.113.42",
|
||||
"country": "US",
|
||||
"region": "NY"
|
||||
}
|
||||
```
|
||||
|
||||
| Field | Type | Description |
|
||||
| --------- | ------- | ----------------------------------------------- |
|
||||
| `blocked` | boolean | Whether the user is blocked from placing orders |
|
||||
| `ip` | string | Detected IP address |
|
||||
| `country` | string | ISO 3166-1 alpha-2 country code |
|
||||
| `region` | string | Region/state code |
|
||||
|
||||
***
|
||||
|
||||
## Restricted Jurisdictions
|
||||
|
||||
Restrictions fall into three groups. **Block completely** means no new orders and no closing of existing positions. **Close-only** means users can close existing positions but cannot open new ones. Each group notes whether it applies on the frontend, the API, or both. Codes are ISO 3166-1 alpha-2 for countries and ISO 3166-2 for sub-national regions.
|
||||
|
||||
### OFAC-Sanctioned Jurisdictions (Block Completely)
|
||||
|
||||
Blocked on both the frontend and the API. No new orders, and existing positions cannot be closed.
|
||||
|
||||
| Jurisdiction | Code |
|
||||
| ----------------- | ----- |
|
||||
| Iran | IR |
|
||||
| Syria | SY |
|
||||
| Cuba | CU |
|
||||
| North Korea | KP |
|
||||
| Ukraine — Crimea | UA-43 |
|
||||
| Ukraine — Donetsk | UA-14 |
|
||||
| Ukraine — Luhansk | UA-09 |
|
||||
|
||||
### Regulatory-Restricted Jurisdictions (Close-Only on Frontend and API)
|
||||
|
||||
Users can close existing positions but cannot open new ones, on both the frontend and the API.
|
||||
|
||||
| Jurisdiction | Code |
|
||||
| ------------------------------------ | ----- |
|
||||
| Australia | AU |
|
||||
| Belarus | BY |
|
||||
| Belgium | BE |
|
||||
| Burundi | BI |
|
||||
| Brazil | BR |
|
||||
| Canada — British Columbia | CA-BC |
|
||||
| Canada — Ontario | CA-ON |
|
||||
| Canada — Alberta | CA-AB |
|
||||
| Canada — Quebec | CA-QC |
|
||||
| Central African Republic | CF |
|
||||
| Congo (Kinshasa) | CD |
|
||||
| Ethiopia | ET |
|
||||
| France | FR |
|
||||
| Germany | DE |
|
||||
| Iraq | IQ |
|
||||
| Italy | IT |
|
||||
| Lebanon | LB |
|
||||
| Libya | LY |
|
||||
| Myanmar | MM |
|
||||
| Nicaragua | NI |
|
||||
| North Korea | KP |
|
||||
| Poland | PL |
|
||||
| Russia | RU |
|
||||
| Singapore | SG |
|
||||
| Somalia | SO |
|
||||
| Slovakia | SK |
|
||||
| South Sudan | SS |
|
||||
| Sudan | SD |
|
||||
| Taiwan | TW |
|
||||
| Thailand | TH |
|
||||
| United Kingdom | GB |
|
||||
| United States | US |
|
||||
| United States Minor Outlying Islands | UM |
|
||||
| Venezuela | VE |
|
||||
| Yemen | YE |
|
||||
| Zimbabwe | ZW |
|
||||
|
||||
### Regulatory-Restricted Jurisdictions (Close-Only on Frontend)
|
||||
|
||||
Close-only on the Polymarket frontend; the API itself is not restricted.
|
||||
|
||||
| Jurisdiction | Code |
|
||||
| ------------------- | ---- |
|
||||
| Japan | JP |
|
||||
| Netherlands | NL |
|
||||
| Malta (Sports Only) | MT |
|
||||
|
||||
***
|
||||
|
||||
## Blocking Logic
|
||||
|
||||
The geoblocking system includes:
|
||||
|
||||
1. **OFAC-Sanctioned Countries**: Countries sanctioned by the U.S. Office of Foreign Assets Control (OFAC)
|
||||
2. **Additional Regulatory Restrictions**: Countries added for specific regulatory compliance reasons
|
||||
|
||||
***
|
||||
|
||||
## Server Infrastructure
|
||||
|
||||
* **Primary Servers**: eu-west-2
|
||||
* **Closest Non-Georestricted Region**: eu-west-1
|
||||
|
||||
<Tip>
|
||||
**Direct co-location available.** Users who complete the [KYC/KYB
|
||||
form](https://docs.google.com/forms/d/e/1FAIpQLSfY-3Dl3yxq8HKFjFad8YzKZmm0k3Gdg29HD6gL-K-AmI6KXw/viewform) can get access to co-locate
|
||||
directly in `eu-west-2` for the lowest possible latency to Polymarket's
|
||||
primary servers.
|
||||
</Tip>
|
||||
|
||||
***
|
||||
|
||||
## Usage Examples
|
||||
|
||||
<Tabs>
|
||||
<Tab title="TypeScript">
|
||||
```typescript theme={null}
|
||||
interface GeoblockResponse {
|
||||
blocked: boolean;
|
||||
ip: string;
|
||||
country: string;
|
||||
region: string;
|
||||
}
|
||||
|
||||
async function checkGeoblock(): Promise<GeoblockResponse> {
|
||||
const response = await fetch("https://polymarket.com/api/geoblock");
|
||||
return response.json();
|
||||
}
|
||||
|
||||
// Usage
|
||||
const geo = await checkGeoblock();
|
||||
|
||||
if (geo.blocked) {
|
||||
console.log(`Trading not available in ${geo.country}`);
|
||||
} else {
|
||||
console.log("Trading available");
|
||||
}
|
||||
```
|
||||
</Tab>
|
||||
|
||||
<Tab title="Python">
|
||||
```python theme={null}
|
||||
import requests
|
||||
|
||||
def check_geoblock() -> dict:
|
||||
response = requests.get("https://polymarket.com/api/geoblock")
|
||||
return response.json()
|
||||
|
||||
# Usage
|
||||
geo = check_geoblock()
|
||||
|
||||
if geo["blocked"]:
|
||||
print(f"Trading not available in {geo['country']}")
|
||||
else:
|
||||
print("Trading available")
|
||||
```
|
||||
</Tab>
|
||||
|
||||
<Tab title="Rust">
|
||||
```rust theme={null}
|
||||
use polymarket_client_sdk_v2::clob::{Client, Config};
|
||||
|
||||
let client = Client::new("https://clob.polymarket.com", Config::default())?;
|
||||
let geo = client.check_geoblock().await?;
|
||||
|
||||
if geo.blocked {
|
||||
println!("Trading not available in {}", geo.country);
|
||||
} else {
|
||||
println!("Trading available");
|
||||
}
|
||||
```
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
***
|
||||
|
||||
## Why These Restrictions
|
||||
|
||||
Geographic restrictions are implemented to ensure compliance with:
|
||||
|
||||
* International sanctions and embargoes
|
||||
* Local financial regulations
|
||||
* Gambling and prediction market laws
|
||||
* Anti-money laundering (AML) requirements
|
||||
* Know Your Customer (KYC) regulations
|
||||
|
||||
If you believe you are incorrectly restricted or have questions about geographic availability, please contact [Polymarket Support](https://polymarket.com/support).
|
||||
|
||||
***
|
||||
|
||||
## Next Steps
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Authentication" icon="key" href="/api-reference/authentication">
|
||||
Learn how to authenticate trading requests.
|
||||
</Card>
|
||||
|
||||
<Card title="Place Orders" icon="plus" href="/trading/quickstart">
|
||||
Start placing orders (from eligible regions).
|
||||
</Card>
|
||||
</CardGroup>
|
||||
Reference in New Issue
Block a user