What is it?I'm working on a new Australian bitcoin exchange, on both the business and technical ends. There will be a spiffy new website front-end that talks to a back-end via a RESTful JSON API. I'm aiming for fast transfer turnaround, an architecture that makes sense for robust and secure service, and a super interactive and easy-to-use front end.
Currently I've only got part of the back-end ready for testing.
How can you help?I need some testers who are comfortable with using curl and friends on the command-line to give the test web service a good bashing. In particular, I need to know whether the accounts, adding/withdrawing funds, orders and trades work the way you expect. You don't have to be an Australian, but it would help since this market is for you. You'll also need some testnet bitcoins handy (which you can get from the
faucet).
How do I start?The test exchange is currently hosted in an AWS micro instance here: ec2-50-16-82-86.compute-1.amazonaws.com. Each new account starts with 5000 AUD (fake of course) and 0 BTC, but you can add or withdraw testnet bitcoins to the account. The fees are set at arbitrary percentages as well.
Public APIThese are actions you can take without authenticating. Since this is a RESTful API, use the curl -X option to set the method (POST, GET etc.) and use the URL listed.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/- POST: To create a new account for yourself, POST your account details as a JSON object e.g. {"name":"charlesxavier", "password":"professorx","email":"charles@xmen.com","withdrawBitcoinAddress":"AABBCCDDEE","withdrawDirectCreditBSB":"000-000","withdrawDirectCreditAccount":"0001","withdrawDirectCreditTitle":"C. Xavier"}. If there any errors, you should get an error message telling you what went wrong, otherwise it will reply with a 201 Created response and the Location: header tells you where the account was created.
http://ec2-50-16-82-86.compute-1.amazonaws.com/trade/- GET: This lists all the trades up to a week old in the system and should conform to BitcoinCharts.
http://ec2-50-16-82-86.compute-1.amazonaws.com/order/- GET: This lists entire order book and should conform to BitcoinCharts.
Account APIThese are actions you can only take when authenticated. Use Basic authentication with the name and password you gave when you registered the account above.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/
- GET: retrieve your account details, including details added by the system. Use your own account name above of course.
- PUT: change account details (not yet implemented).
- DELETE: delete the account (not yet implemented).
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/addBitcoin/
- GET: list any bitcoins you have added into your account. Use the addBitcoinAddress given when you retrieve your account details to add bitcoins to your account. Note we're testing with testnet bitcoins only and will wait for 6 confirmations before entering the system.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/withdrawBitcoin/
- GET: list any bitcoins you have withdrawn from your account.
- POST: to withdraw bitcoins, POST the details as a JSON object e.g. {"btcAmount":10}. This uses the withdrawBitcoinAddress given when you set up your account details to withdraw bitcoins. Note we're testing with testnet bitcoins only. If successful you'll get a 201 Created response with Location: header set to where the withdrawal is.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/withdrawBitcoin/
23/
- GET: retrieve details of a particular withdrawal.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/bid/
- GET: list any outstanding bids you have made in the system.
- POST: to create a new bid, POST the bid details as a JSON object e.g. {"amount":100, "bidPrice":10.0}. If successful you should get a 201 Created response with Location of the created bid.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/bid/
23/
- GET: retrieve the details of a particular bid.
- DELETE: withdraw the bid (not yet implemented).
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/bid/
23/trade/
- GET: list any trades that were made against your particular bid.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/bid/
23/trade/
45/
- GET: retrieve the details of a particular bid trade.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/ask/
- GET: list any outstanding asks you have made in the system.
- POST: to create a new ask, POST the bid details as a JSON object e.g. {"amount":100, "askPrice":10.0}. If successful you should get a 201 Created response with Location of the created ask.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/ask/
23/
- GET: retrieve the details of a particular ask.
- DELETE: withdraw the ask (not yet implemented).
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/ask/
23/trade/
- GET: list any trades that were made against your particular ask.
http://ec2-50-16-82-86.compute-1.amazonaws.com/account/charlesxavier/ask/
23/trade/
45/
- GET: retrieve the details of a particular ask trade.
Thanks for all your help and feedback!