Skip to main content

Official Python Client of the Buttercoin API. Buttercoin is a trading platform that makes buying and selling bitcoin easy.

Installation

Install via pip

$ pip install buttercoin

Install from source

$ git clone git@github.com:buttercoin/buttercoin-python.git
$ cd buttercoin-python
$ python setup.py install

Usage

HMAC-SHA256 Authentication

You need an API key and secret to use HMAC.

Setting

Property Name

Description

API Key

api_key

Your Buttercoin API Key

API Secret

api_secret

Your Buttercoin API Secret

Mode

mode

Your development environment (default: 'production', set to 'sandbox' to test with testnet bitcoins)

from buttercoin.client import ButtercoinClient

client = ButtercoinClient(
    api_key='<BUTTERCOIN_API_KEY>',
    api_secret='<BUTTERCOIN_API_SECRET>',
    mode='<BUTTERCOIN_MODE>' # production or sandbox
)

Tips

A note on the timestamp param sent to all client methods: This param must always be increasing, and within 5 minutes of Buttercoin server times (GMT). This is to prevent replay attacks on your data.

Because of this, if you need your API calls to run in a certain order, you must chain together callbacks to ensure synchronous responses to your requests.

Additionally, for convenience, if you don’t include the timestamp parameter, it will default to the current timestamp.

timestamp = unicode(int(round(time.time() * 1000)))
client.get_key(timestamp=timestamp)

# or default to current timestamp

client.get_key()

Get Data

Key Permissions

Returns array of permissions associated with this key.

client.get_key()

Balances

Returns dict of balances for this account.

client.get_balances()

Deposit Address

Returns bitcoin address string to deposit your funds into the Buttercoin platform.

client.get_deposit_address()

Get Orders

Returns array of dict objects containing information about buy and sell orders.

Name

Param

Description

Status

status

enum: ['opened', 'partial-filled', 'filled', 'canceled']

Side

side

enum: ['buy', 'sell']

Order Type

orderType

enum: ['market', 'limit']

Date Min

dateMin

format: ISO-8601, e.g. '2014-05-06T13:15:30Z'

Date Max

dateMax

format: ISO-8601, e.g. '2014-05-06T13:15:30Z'

# query for multiple orders
body = {'status':'canceled'}
client.get_orders(body=body)

# single order by id
client.get_order_by_id('<order_id>');

# single order by url
client.get_order_by_url('http://api.buttercoin.com/v1/orders/b9fa58e6-a441-48ca-afbb-14827fca2f7a')

Get Transactions

Returns array of dict objects containing information about deposit and withdraw action.

Name

Param

Description

Status

status

enum: ['pending', 'processing', 'funded', 'canceled', 'failed']

Transaction Type

transactionType

enum: ['deposit', 'withdrawal']

Date Min

dateMin

format: ISO-8601, e.g. '2014-05-06T13:15:30Z'

Date Max

dateMax

format: ISO-8601, e.g. '2014-05-06T13:15:30Z'

# query for multiple transactions
body = {'status':'pending'}
client.get_transactions(body=body)

# single transaction by id
client.get_transaction_by_id('<transaction_id>');

# single transaction by url
client.get_transaction_by_url('http://api.buttercoin.com/v1/transactions/53db06ee7400007700f4c561')
});

Unauthenticated Requests

Get Order Book

Return a dict object of current orders in the Buttercoin order book.

client.get_order_book()

Get Ticker

Return the current bid, ask, and last sell prices on the Buttercoin platform.

client.get_ticker()

Get Trade History

Return the last 100 trades.

client.get_trade_history()

Create New Actions

Create Order

Valid order params include:

Name

Param

Description

Instrument

instrument

enum: ['BTC_USD, USD_BTC']

Side

side

enum: ['buy', 'sell'], required true

Order Type

orderType

enum: ['limit', 'market'], required true

Price

price

string, required false

Quantity

quantity

string, required false

# create a JSON object with the following params
order = {"instrument":"BTC_USD","side": "buy","orderType":"limit","price":"600","quantity":"0.2346"}

client.create_order(body=order) # http://api.buttercoin.com/v1/orders/b9fa58e6-a441-48ca-afbb-14827fca2f7a

Create Transaction

Please contact Buttercoin support before creating a USD deposit using the API.

Deposit transaction params include:

Name

Param

Description

Method

method

enum: ['wire'], required true

Currency

currency

enum: ['USD'], required true

Amount

amount

string, required true

# create deposit
txn = { "method": "wire", "currency": "USD", "amount": "500" }
client.create_deposit(body=txn) # https://api.buttercoin.com/v1/transactions/53db06ee7400007700f4c561

Withdrawal transaction params include:

Name

Param

Description

Method

method

enum: ['check'], required true

Currency

currency

enum: ['USD'], required true

Amount

amount

string, required true

If you have the security setting requiring confirmation of dollar withdrawals, you will see a 201 status.

# create withdrawal
txn = { "currency": "USD", "amount": "3020.30", "method": "check" }
json = client.create_withdrawal(body=txn) # https://api.buttercoin.com/v1/transactions/53db06ee7400007700f4c561

Send bitcoin transaction params include:

Name

Param

Description

Currency

currency

['USD'], required true

Amount

amount

string, required true

Destination

destination

address to which to send currency string, required true

If you have the security setting requiring confirmation of bitcoin withdrawals, you will see a 201 status

# send bitcoins to an address
txn = { "currency": "BTC", "amount": "0.30", "destination": "msj42CCGruhRsFrGATiUuh25dtxYtnpbTx" }
json = client.send_bitcoin(body=txn) # https://api.buttercoin.com/v1/transactions/53db06ee7400007700f4c561

Cancel Actions

All successful cancel calls to the API return a response status of 204 with a human readable success message

Cancel Order

Cancel a pending buy or sell order

client.cancel_order('<order_id>')

Cancel Transaction

Cancel a pending deposit or withdraw action

client.cancel_transaction('<transaction_id>')

Further Reading

License

Licensed under the MIT license.

Copyright 2015 Buttercoin Inc. All Rights Reserved.

Release files for buttercoin 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for buttercoin 1.0.2
File Size Uploaded
buttercoin-1.0.2.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for buttercoin 1.0.2
File Interpreter ABI Platform
buttercoin-1.0.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 23.9 kB

Release files / buttercoin-1.0.2.tar.gz

Download URL buttercoin-1.0.2.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0b3ae4f1eb9aaee32f0e3ef718b28054920a2879fd13e484aea308ad84e72fad
BLAKE2b-256 checksum
How to use checksums
e9f9e6b0c174488cc09d0464d1f449dfa68622a16a48b12d4c33c2a61154a6fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / buttercoin-1.0.2-py2.py3-none-any.whl

Download URL buttercoin-1.0.2-py2.py3-none-any.whl
Size 15.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
0050bd77ad6031dd67cfa816eafb4acbd595bf2c53b80ea778df7fcf7eebd434
BLAKE2b-256 checksum
How to use checksums
22ccfeb428725e17eaa8bd7a6640df1d608de64f7365ab1a2ee02873ccadfa7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page