Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Add RPC Trader API. #544

Closed
dan-da opened this issue Jul 25, 2016 · 24 comments
Closed

Feature Request: Add RPC Trader API. #544

dan-da opened this issue Jul 25, 2016 · 24 comments

Comments

@dan-da
Copy link
Contributor

dan-da commented Jul 25, 2016

I think it could help improve trade volume to implement an API so that traders can automate creation and modification/cancel of orders.

I guess there could even be "i_sent_funds() and "i_received_funds()" APIs. That could really speed up trades between blockchains, or even fiat sources if any of them also provide client APIs.

Sorry if this is already on the roadmap somewhere. I just saw someone suggesting it and did a quick search for "API" in issues and came up empty.

@ManfredKarrer
Copy link
Member

I will reply with more info soon.
Just wanted to mention that trading API will be a complex topic.
But as said more details soon...

Maybe you are interested to have a look to that?
#546

@ManfredKarrer
Copy link
Member

ManfredKarrer commented Aug 2, 2016

A full trading API for Fiat will be limited by the fact that Banks are not offering APIs, so users need to do the manual step of transferring and confirming the Fiat.
Though on the altcoin side we could get to a fully automated trade process. The lookup in the altfoin blockexplorer could be done automatically and then trigger the confirmations done atm by users.

To have APIs for that process would enable automated altcoin trading.
For the Fiat side an API could still have benefits if people prefer to trigger events via the API instead in the UI.

I would like to set up a new bounty for that task (get in touch to negotiate amount).

@dan-da
Copy link
Contributor Author

dan-da commented Aug 2, 2016

I have ideas on that and can jump on it after the market site is done.

@ManfredKarrer
Copy link
Member

Great! :-)

@tobixen
Copy link

tobixen commented Oct 31, 2016

I want to be a market maker, but I do have some problems with that currently;

  • I'm quite often on the move, even though I've rarely really been there, I always wanted to be a "digital nomad". I need to be able to continue running bitsquare from a server while I'm on the move, I can't keep it running it from my laptop. (I guess I could look into some VNC-solutions, but I don't like the concept)
  • I don't trust the bitcoinaverage rates, I have my own rates ... hence I would very much like an API for placing and changing my bids/offers as the price moves.
  • I'd also like to go further with automating my trades, I do have some kind of poor-mans API towards my bank.

I can probably contribute to the bounty eventually. (hm, I think I still have some funds locked up in a defunct lighthouse wallet ... huh).

@ManfredKarrer
Copy link
Member

That would be great, we are in need for market makers!

@meapistol has reported here about his vps setup:
#511
I think that works quite well as far I heard.

We will probably support user defined market rates as there are regional differences which are not well reflected by an average price provider.
To edit offers is also on the todo list but might take a bit as I am focused on the DAO model atm.

Trading APIs for the Fiat side will be difficult because most banks dont offer APIs and there is no standard so the effort would explode...
But on the altcoin side we definitely want to get it automated.

@tobixen
Copy link

tobixen commented Nov 1, 2016

Regarding banking APIs, I suppose there will be some European standards after PSD2? Anyway, I totally agree that it's very much out of the scope of bitsquare to communicate with the various banks. If I made a different impression, then I'm very much misunderstood. To be a successful market maker with low margins I need to spend as little time as possible handling the trades, as much as possible should be automated. I can automate payin detection from my bank account as well as minor payouts - but I cannot automate the process of creating and maintaining ads on bitsquare. I need the latter fixed.

Ideally I'd like to run bitsquare headless on a server and control my ads through API calls or a cli-tool. On the short term a more realistic solution seems to be to use some VLC solution or perhaps look into xpra, ref https://aweirdimagination.net/2015/03/30/detachable-x-sessions/ - but still I'd like to automate as much as possible.

@ManfredKarrer
Copy link
Member

Yes the creation of offer will be supported as soon we have dev resources on that.
After we have our DAO model in place we have better funding options to get that boosted. Hope you find some way to provide liquidity even without those features. And not competing with trading bots is an opportunity as well.

@dan-da
Copy link
Contributor Author

dan-da commented Nov 2, 2016

It occurs to me that basic APIs for creation and cancel of offer are already spec'd and should not be too difficult to implement. They might be useful to release even without the more complicated trade process APIs that are still TBD. Maybe I can take a look at that next week.

@ManfredKarrer
Copy link
Member

@dan-da Ah cool! I had a review with @mrosseel a while ago and there was already plenty of functionality implemented. Would be great if we can get the create offer use case finished.

@mrosseel
Copy link
Member

mrosseel commented Nov 3, 2016

@dan-da yeah a lot of that is already finished, didn't have a lot of time lately but if you want we can have a look next week, maybe define the subset of api's and look what's already done.

@cryptid11
Copy link

But on the altcoin side we definitely want to get it automated.

Same, I'd like to have the possibility to let some centralized exchange like holytransaction jaxx shapeshift etc with the bitsquare client rpc... IMHO you should do some fast python script to deploy on server to assure there is always some liquidity provider, anyway if you give me way to use rpc I will do some and share them.

@streetbits
Copy link

streetbits commented Jul 25, 2017

I couldn't locate those APIs and market.bisq.io page source code, where should I look?

@dan-da
Copy link
Contributor Author

dan-da commented Jul 25, 2017

The spec we've been going off of is viewable here:
https://rawgit.com/dan-da/bisq-api/master/apis/index.html

however, be warned that doc is old and may not exactly match current code.

To actually run the api requires building bisq app from source, using the branch issue544-api. After building, run the app and it will provide a built-in webserver that accepts REST requests.

@streetbits
Copy link

Thanks a million @dan-da

@mrosseel
Copy link
Member

hi @streetbits, you can indeed check out the branch @dan-da mentioned. If you start the app with the flag '--enableApi true' then - in addition to the bisq app - a webserver is started on port 8080. You can see the API startup banner and all endpoints in the startup log. There's also documentation when going to http://localhost:8080/swagger.
As testing setup I recommend starting (in regtest) a bitcoin regtest node, a seednode, an arbitrator, alice (with enableAPI true) and bob.
Be aware that the functionality is rough and not all checks are implemented.

@mrosseel
Copy link
Member

work on this has been moved to: https://github.com/mrosseel/bisq-exchange/tree/issue544-api

@blabno
Copy link

blabno commented Feb 21, 2018

Hey, guys, I'm currently working on this API. Let me know what functionality should we focus on in the first place.

@cbeams
Copy link
Member

cbeams commented Feb 21, 2018

@blabno, as you've written it in your comment above, this occurs a little like a solution in search of a problem. I haven't caught up on the long thread above, but it's all quite old now, and it's not obvious to me that it's worth my time to catch up on it.

I have no doubt that an RPC API could be useful; indeed I think about having one fairly often myself. But my recommendation here would be to write up something a bit more detailed and solicit feedback about it. Share the problem you're trying to solve, why you think it's a good time to introduce an RPC API, how this relates to the existing HTTP API work, etc. Thanks.

@ghost
Copy link

ghost commented Apr 27, 2018

The absence of Trade API or even a CLI version of bisq is a complete showstopper for me. I am aware of a read only centralized API but that goes against the P2P idea and only prolongs the pain. Please merge that guys. Thanks for good work.

@mrosseel
Copy link
Member

Take a look at https://github.com/mrosseel/bisq-api and #mrosseel-bisq-api on slack
Release is very close now, current master is fully functional, just ironing some small issues.

@stale
Copy link

stale bot commented Jan 17, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@tobixen
Copy link

tobixen commented Jan 22, 2019

I believe this issue should not be closed without further comment.

  • @mrosseel commented that a release with a functional API was "very close". Was it ever released? In that case, this issue should be marked as "fixed", and there ought to be some pointer to the relevant documentation.
  • If it hasn't been fixed, then it's still a pretty big issue. A lack of an API (and the difficulties trading on bisq using whatever device I happened to have at hand) was a showstopper for me and many others, I eventually gave up on bisq for those reasons.

@ripcurlx
Copy link
Member

@tobixen I've removed the stale state already and updated the bot to exclude bounty stories.

The API is quite far already and in active development. It would be great if you could add your vote in this poll https://goo.gl/forms/VvRe22FT8gQbp4ck2 and also join the #api channel on slack if you're interested in joining testing efforts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants