https://github.com/devstar0209/coinbase-php
https://github.com/devstar0209/coinbase-php
coinbase coinbase-pro coinbase-v3
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/devstar0209/coinbase-php
- Owner: devstar0209
- License: mit
- Created: 2024-06-21T02:42:14.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-20T08:17:37.000Z (almost 2 years ago)
- Last Synced: 2025-03-21T09:14:24.625Z (over 1 year ago)
- Topics: coinbase, coinbase-pro, coinbase-v3
- Language: PHP
- Homepage:
- Size: 39.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### It is recommended that you read the official document first
Coinbase docs [https://developers.coinbase.com/api/v2](https://developers.coinbase.com/api/v2)
Coinbase Pro migrated to V3.
Coinbase Pro docs [https://docs.cdp.coinbase.com/advanced-trade/docs/welcome](https://docs.cdp.coinbase.com/advanced-trade/docs/welcome)
All interface methods are initialized the same as those provided by Coinbase. See details [src/api](https://github.com/devstar0209/coinbase-php/tree/master/src/Api)
Most of the interface is now complete, and the user can continue to extend it based on my design, working with me to improve it.
#### Installation
```
composer require devstar/coinbase
```
Support for more request Settings
```php
$coinbase=new Coinbase();
//or
$coinbase=new CoinbasePro();
// or
$coinbase=new CoinbaseExchange();
//You can set special needs
$coinbase->setOptions([
//Set the request timeout to 60 seconds by default
'timeout'=>10,
//If you are developing locally and need an agent, you can set this
'proxy'=>true,
//More flexible Settings
/* 'proxy'=>[
'http' => 'http://127.0.0.1:12333',
'https' => 'http://127.0.0.1:12333',
'no' => ['.cn']
], */
//Close the certificate
//'verify'=>false,
]);
```
### Coinbase Spot API
Publics API [More](https://github.com/devstar0209/coinbase-php/blob/master/tests/coinbase/publics.php)
```php
$coinbase=new Coinbase();
try {
$result=$coinbase->publics()->getTime();
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->publics()->getCurrencies();
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->publics()->getExchangeRates();
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->publics()->getPricesBuy([
'currency_pair'=>'BTC-USD'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->publics()->getPricesSell([
'currency_pair'=>'BTC-USD'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->publics()->getPricesSpot([
'currency_pair'=>'BTC-USD'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
```
Privates API [More](https://github.com/devstar0209/coinbase-php/blob/master/tests/coinbase/privates.php)
```php
//User
try {
$result=$coinbase->privates()->getUsers();
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->privates()->getUser([
'user_id'=>'fb352ff7-ce80-53ac-b0e1-7cfe51eca2ff'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->privates()->getUserAuth();
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->privates()->putUser([
'name'=>'linwenjun'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
//Accounts
try {
$result=$coinbase->privates()->getAccounts();
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->privates()->getAccount([
'account_id'=>'BTC'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->privates()->putAccount([
'account_id'=>'BTC',
'name'=>'bbttcc'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
//Addresses
try {
$result=$coinbase->privates()->getAccountAddresses([
'account_id'=>'BTC'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
//List transactions
try {
$result=$coinbase->privates()->getAccountTransactions([
'account_id'=>'b1096c85-fbf8-5293-9424-5af475446ebd'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
//List buys
try {
$result=$coinbase->privates()->getAccountBuys([
'account_id'=>'b1096c85-fbf8-5293-9424-5af475446ebd'
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
try {
$result=$coinbase->privates()->getPaymentMethods();
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
//Place buy order
try {
$result=$coinbase->privates()->postAccountBuys([
'account_id'=>'b1096c85-fbf8-5293-9424-5af475446ebd',
'amount'=>'1',
'currency'=>'BTC',
//'payment_method'=>'83562370-3e5c-51db-87da-752af5ab9559',
]);
print_r($result);
}catch (\Exception $e){
print_r(json_decode($e->getMessage(),true));
}
```
[More Test](https://github.com/devstar0209/coinbase-php/tree/master/tests/coinbase)
[More Api](https://github.com/devstar0209/coinbase-php/tree/master/src/Api/Coinbase)
### Coinbase Pro Spot API
Market related API [More](https://github.com/devstar0209/coinbase-php/blob/master/tests/coinbase_pro/product.php)
```php
$coinbase=new CoinbasePro();
try {
$result=$coinbase->product()->getList();
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
try {
$result=$coinbase->product()->getBook([
'product_id'=>'BTC-USD',
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
try {
$result=$coinbase->product()->getCandles([
'product_id'=>'BTC-USD',
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
```
Order related API [More](https://github.com/devstar0209/coinbase-php/blob/master/tests/coinbase_pro/order.php)
```php
$coinbase=new CoinbasePro($key,$secret,$passphrase);
//****************************Market
try {
$result=$coinbase->order()->post([
'client_order_id' => time()."",
'side'=>'SELL',
'product_id'=>"BTC-USD",
'order_configuration' => [
'market_market_ioc' => [
'base_size'=>'0.001'
]
]
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
sleep(1);
//track the order
try {
$result=$coinbase->order()->get([
'id'=>$result['order_id'],
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
sleep(1);
//cancellation of order
try {
$result=$coinbase->order()->delete([
'id'=>$result['order_id'],
//'id'=>'6bad6a7d-b01a-4a93-9e6e-e9934bcef4ef',
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
//track the order
try {
$result=$coinbase->order()->get([
'id'=>$result['order_id'],
//'client_oid'=>''
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
```
Accounts related API [More]()
```php
$coinbase=new CoinbaseExchange($key,$secret,$passphrase);
try {
$result=$coinbase->account()->getList();
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
try {
$result=$coinbase->account()->get([
'account_id'=>'c74a36f5-4f2b-495b-be29-6eb2458d1b3a'
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
try {
$result=$coinbase->account()->getHolds([
'account_id'=>'c74a36f5-4f2b-495b-be29-6eb2458d1b3a'
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
try {
$result=$coinbase->account()->getLedger([
'account_id'=>'c74a36f5-4f2b-495b-be29-6eb2458d1b3a'
]);
print_r($result);
}catch (\Exception $e){
print_r($e->getMessage());
}
```
[More Api](https://github.com/devstar0209/coinbase-php/tree/master/src/Api/CoinbasePro/)
[More Api](https://github.com/devstar0209/coinbase-php/tree/master/src/Api/CoinbaseExchange/)
#### Test
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/coinbase/AccountTest.php
[More Test](https://github.com/devstar0209/coinbase-php/tree/master/tests/coinbase_pro/)