Download the PHP package danielgnh/polymarket-php without Composer
On this page you can find all versions of the php package danielgnh/polymarket-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download danielgnh/polymarket-php
More information about danielgnh/polymarket-php
Files in danielgnh/polymarket-php
Package polymarket-php
Short Description PHP Package for Polymarket API Integration
License MIT
Informations about the package polymarket-php
Polymarket PHP SDK
Polymarket API PHP SDK for interacting with the prediction markets and managing orders.
You can search for the markets, events, create / delete orders, send concurrent requests and much more.
Requirements
- PHP 8.1 or higher
- Composer
Installation
Install the package via Composer:
Configuration
Add your polymarket credentials to your .env file:
Here is documentation how to export you private key
Quick Start
API Architecture
Polymarket uses three separate API systems:
- Gamma API (
https://gamma-api.polymarket.com) - Read-only market data - CLOB API (
https://clob.polymarket.com) - Trading operations and order management - Bridge API (
https://bridge-api.polymarket.com) - Cross-chain deposits and funding
The SDK provides separate client interfaces for each:
API Reference
Client Initialization
Configuration Options
The SDK supports the following configuration options:
| Option | Type | Default | Description |
|---|---|---|---|
gamma_base_url |
string | https://gamma-api.polymarket.com |
Gamma API base URL |
clob_base_url |
string | https://clob.polymarket.com |
CLOB API base URL |
bridge_base_url |
string | https://bridge-api.polymarket.com |
Bridge API base URL |
timeout |
int | 30 |
Request timeout in seconds |
retries |
int | 3 |
Number of retry attempts for failed requests |
verify_ssl |
bool | true |
Whether to verify SSL certificates |
Markets (Gamma API)
The Markets resource provides access to prediction market data via the Gamma API.
List Markets
Parameters:
filters(array, optional): Filtering options for marketslimit(int, optional): Maximum number of results (default: 100)offset(int, optional): Pagination offset (default: 0)
Returns: Array of market data
Get Market by ID
Parameters:
marketId(string): The unique identifier of the market
Returns: Market data array
Search Markets
Parameters:
query(string): Search query stringfilters(array, optional): Additional filtering optionslimit(int, optional): Maximum number of results (default: 100)
Returns: Array of matching markets
Orders (CLOB API)
The Orders resource handles order management and execution via the CLOB API.
List Orders
Parameters:
filters(array, optional): Filtering options for orderslimit(int, optional): Maximum number of results (default: 100)offset(int, optional): Pagination offset (default: 0)
Returns: Array of order data
Get Order by ID
Parameters:
orderId(string): The unique identifier of the order
Returns: Order data array
Create Order
Parameters:
orderData(array): Order details including:market_id(string): Target market identifierside(string): Order side - useOrderSideenumtype(string): Order type - useOrderTypeenumprice(string): Order price as decimal stringamount(string): Order amount as decimal string
Important: Always use strings for price and amount values to maintain decimal precision.
Returns: Created order data array
Cancel Order
Parameters:
orderId(string): The unique identifier of the order to cancel
Returns: Cancellation result data
Bridge (Cross-Chain Deposits)
The Bridge API enables you to fund your Polymarket account from multiple blockchains including Ethereum, Arbitrum, Base, Optimism, Solana, and Bitcoin. All deposits are automatically converted to USDC.e on Polygon.
Get Supported Assets
Retrieve information about supported chains, tokens, and minimum deposit amounts:
Returns: Array containing:
chains(array): List of supported blockchain networksid(int): Chain IDname(string): Chain name (e.g., "Ethereum", "Arbitrum")type(string): Chain type (e.g., "evm", "solana", "bitcoin")
tokens(array): List of supported tokens per chainsymbol(string): Token symbol (e.g., "USDC", "ETH")name(string): Token full nameminimum_usd(string): Minimum deposit amount in USD
minimums(array): Global minimum deposit thresholds
Generate Deposit Addresses
Generate unique deposit addresses for cross-chain funding:
Parameters:
depositData(array): Deposit request datadestination_address(string, required): Your Polygon wallet address where USDC.e will be sentamount_usd(string, required): Deposit amount in USD
Returns: Array of deposit addresses:
evm(string): Ethereum-compatible address for EVM chains (Ethereum, Arbitrum, Base, etc.)solana(string): Solana blockchain addressbitcoin(string): Bitcoin blockchain address
Important Security Notes:
- Always verify your destination address is correct before sending funds
- Each deposit address is unique and tied to your destination address
- Minimum deposit amounts apply (typically $10 USD equivalent)
- Test with small amounts first
Supported Blockchains
EVM-Compatible Chains:
- Ethereum Mainnet
- Arbitrum One
- Base
- Optimism
- Polygon (direct deposits)
- BNB Chain
- Avalanche C-Chain
Other Chains:
- Solana
- Bitcoin
Deposit Workflow
- Call
supportedAssets()to check supported tokens and minimum amounts - Generate deposit addresses using
generate()with your Polygon address - Send assets to the provided address for your chosen blockchain
- Bridge service automatically detects and processes the deposit
- Assets are converted to USDC.e and sent to your Polygon address
- You can now trade on Polymarket
Processing Times:
- EVM chains: ~1-5 minutes
- Solana: ~30 seconds
- Bitcoin: ~30-60 minutes
Complete Example
For a complete working example, see examples/bridge-deposit.php.
Error Handling
The SDK provides a comprehensive exception hierarchy for handling different error scenarios:
Enums
The SDK provides type-safe enums for API fields with fixed value sets, ensuring compile-time safety and better IDE autocomplete.
Available Enums
OrderSide
Specifies whether you're buying or selling shares:
OrderType
Determines the execution behavior of an order:
OrderStatus
Indicates the current state of an order:
SignatureType
For order authentication methods:
Usage Example
Working with Decimal Values
When working with financial data (prices, amounts), always use string representation to maintain precision:
Concurrent Requests
For improved performance when fetching multiple resources, use the concurrent methods.
Batch Fetching
Fetch multiple items in parallel with automatic concurrency control:
Promise-Based API
For custom workflows, use the async methods that return promises:
Available Async Methods
Gamma Markets:
getAsync(string $marketId)- Get single marketgetBySlugAsync(string $slug)- Get market by sluglistAsync(array $filters, int $limit, int $offset)- List marketsgetMany(array $marketIds, int $concurrency)- Batch fetch by IDgetManyBySlug(array $slugs, int $concurrency)- Batch fetch by slug
CLOB Markets:
getAsync(string $conditionId)- Get single marketlistAsync(array $params)- List marketsgetMany(array $conditionIds, int $concurrency)- Batch fetch
CLOB Orders:
getAsync(string $orderId)- Get single orderlistAsync(array $filters, int $limit, int $offset)- List ordersgetOpenAsync(array $params)- Get open ordersgetMany(array $orderIds, int $concurrency)- Batch fetchcancelMany(array $orderIds, int $concurrency)- Batch cancel
Configuration
Configure default concurrency and timeout:
Development
Running Tests
Code Style
Format code using PHP CS Fixer:
Check code style without making changes:
Static Analysis
Run PHPStan for static analysis:
Test Coverage
Generate test coverage report:
Coverage reports will be generated in the coverage/ directory.
Contributing
Contributions are welcome! Please follow these guidelines:
- Follow PSR-12 coding standards
- Write tests for new features
- Run
composer cs-fixbefore committing - Ensure all tests pass with
composer test - Run static analysis with
composer phpstan
Security
If you discover any security-related issues, please email [email protected] instead of using the issue tracker.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
- Author: Daniel Goncharov
- Email: [email protected]
Resources
Support
For bugs and feature requests, please use the GitHub issue tracker.
All versions of polymarket-php with dependencies
ext-gmp Version *
guzzlehttp/guzzle Version ^7.0
guzzlehttp/promises Version ^2.0
kornrunner/ethereum-address Version ^0.4.0
kornrunner/ethereum-util Version ^0.2.0
kornrunner/keccak Version ^1.1
kornrunner/secp256k1 Version ^0.3.0
phpseclib/phpseclib Version ^3.0
psr/http-client Version ^1.0
psr/http-factory Version ^1.0
psr/log Version ^3.0