devstar / coinbase
Coinbase API Like the official document interface, Support for arbitrary extension.
1.1.3
2024-07-20 07:47 UTC
Requires
- php: >=7.0
- firebase/php-jwt: ^6.10
- guzzlehttp/guzzle: *
Requires (Dev)
- phpunit/phpunit: ^11.2
README
It is recommended that you read the official document first
Coinbase docs https://developers.coinbase.com/api/v2
Coinbase Pro migrated to V3.
Coinbase Pro docs 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
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
$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
$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
//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)); }
Coinbase Pro Spot API
Market related API More
$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
$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
$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()); }
Test
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/coinbase/AccountTest.php More Test