Tjopper
Full Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif) ![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 146
Merit: 100
Co-Founder @ Blocktrail
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 02, 2015, 05:57:46 PM |
|
The main issue with blockchain.info (and many other APIs) is that they have direct access to your coins. It's originally a webwallet where your password never leaves your browser, but their API requires you to provide their server with the password and thus gives them custody of your coins. You'll never need to do that with BlockTrail because the transactions are created and signed on the client side using the SDK, and are then co-signed and broadcasted via BlockTrail. The blockchain.info receive API actually makes the bitcoins go to their own address first before the coins come to you, again, giving them full custody of your coins. This is done for various technical reasons and are considered bad practice nowadays - the main reason being that you can't monitor your own addresses for transactions and that they have a max amount of addresses (which is because you need to backup every private key for each address). The Blocktrail Wallet API is a HD Wallet, so you can have unlimited addresses, create a new one every time you need to receive coins (as best practices dictate) and because of the HD 'magic' you never even need to create new backups. And we also have 'webhooks' which allow you to get notifications ( we send data to your server using a HTTP POST ) when your addresses receive transactions. Initialize SDK$this->client = new BlocktrailSDK($yourAPIKey, $yourAPISecret, "BTC", $testnetTrueOrFalse));
Create a walletlist($wallet, $primaryMnemonic, $backupMnemonic, $blocktrailPublicKeys) = $this->client->createNewWallet($yourWalletID, $yourWalletPassword);
Setup transaction notifications$wallet->setupWebhook('https://example.com/receive/wallet/transactions/notifications');
Receive a transaction$wallet = $this->client->initWallet($yourWalletID, $yourWalletPassword); $address = $wallet->getNewAddress();
you'll be automatically subscribed to notifications on these new addressesSend a transaction$wallet = $this->$client->initWallet($yourWalletID, $yourWalletPassword); $txHash = $wallet->pay([$bitcoinAddress1 => $amount1, $bitcoinAddress2 => $amount2, /* .... */]);
Get wallet balance$wallet = $this->client->initWallet($yourWalletID, yourWalletPassword); list($confirmedBalance, $unconfirmedBalance) = $wallet->getBalance();
If you need any help feel free to email us or join us on #blocktrail on irc.freenode.net !
|
|
|
|
arnuschky (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 04, 2015, 09:57:58 AM |
|
I added tags that indicate whether an API supports websockets, webhooks, or some additional multi-signature functions. I didn't have the time to wade through it all in detail, so things might not be correct. If you spot an error, let me know!
|
|
|
|
doof
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 06, 2015, 12:30:37 AM |
|
- query the blockchain: blocks and transactions
I am working on a site which I hope to announce before block 34400, www.querytheblockcha.in (Home page will throw an error). PM me if you want a sneak peak.
|
|
|
|
arnuschky (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 07, 2015, 06:10:01 PM |
|
- query the blockchain: blocks and transactions
I am working on a site which I hope to announce before block 34400, www.querytheblockcha.in (Home page will throw an error). PM me if you want a sneak peak. What will be the purpose? An overview as given here or a data api in itself? Also, before block 34400 might be hard... ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
|
coinpr0n
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2015, 01:24:40 PM |
|
Great list, thanks! I just tried out Insight and I'm pretty happy so far.
|
|
|
|
GermanGiant
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2015, 04:17:26 PM |
|
I added tags that indicate whether an API supports websockets, webhooks, or some additional multi-signature functions. I didn't have the time to wade through it all in detail, so things might not be correct. If you spot an error, let me know!
What is the difference between websockets & webhooks ?
|
|
|
|
arnuschky (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 11, 2015, 08:51:55 AM |
|
Great list, thanks! I just tried out Insight and I'm pretty happy so far.
It's great to have an API that one can self-deploy, but unfortunately it's pretty darn slow. I experimented with Toshi recently, which seams considerably faster - but I haven't had the time yet to deploy it myself, so I can't compare properly.
|
|
|
|
arnuschky (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 11, 2015, 08:58:52 AM |
|
I added tags that indicate whether an API supports websockets, webhooks, or some additional multi-signature functions. I didn't have the time to wade through it all in detail, so things might not be correct. If you spot an error, let me know!
What is the difference between websockets & webhooks ? Imagine you want to get all incoming transactions for your address. With webhooks, you have an API endpoint on your service. You give that endpoint to the service provider, and everytime they see a new transaction to your address they post it to the endpoint you've provided. With websockets, you establish a continuous connection to the service using WebSockets, thereby subscribing to updates regarding transactions for your address. As long as you keep the connection open, the service will publish new transactions to your address on this websocket connection. Both have advantages and disadvantages. Webhooks are plain http and thus have no technological overhead. However, you need a stable endpoint (a server). WebSockets is an additional protocol, and thus you might face problems (extra libraries and infrastructure needed). However, you can initiate them from anywhere, also from mobile devices for example.
|
|
|
|
tzpardi
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 66
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 11, 2015, 12:12:52 PM |
|
Thanks, that was exactly what I was looking for (but with search disabled...)
Actually, after a second glance, not really. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) The focus of the other thread is block explorers, not the discussions of APIs. So it seems that most people report their favorite block explorer for occasional manual use, rather programmatically usable APIs that support a bigger feature set. Most of the sites listed don't have an API. Try to list those especially offering bitcoin send/receive API. AFAIK none still offers it as good as blockchain.info, though it is difficult to offer a send API for those, who do not have a wallet service. Can I challenge you to try our API and see if you still think bc.info is the best ? Im from the https://www.blocktrail.com/ team, if you need any help I can get our team to help you with the integration. Does your project and API support or implements green addresses? I am looking for a green address implementation/API other than the https://greenaddress.it one.
|
|
|
|
arnuschky (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 11, 2015, 02:10:34 PM |
|
Does your project and API support or implements green addresses? I am looking for a green address implementation/API other than the https://greenaddress.it one. What's a "green" address?
|
|
|
|
btcbb
Newbie
Offline
Activity: 30
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 11, 2015, 02:23:15 PM |
|
Does your project and API support or implements green addresses? I am looking for a green address implementation/API other than the https://greenaddress.it one. No, BlockTrail uses 2-of-3 multisig (unlike greenaddress which makes use of 2-of-2), so BlockTrail does not have the control over the coins to prevent its users from double spending (and thus does not provide "greenaddress functionality" between its users)
|
|
|
|
tzpardi
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 66
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 11, 2015, 02:33:39 PM |
|
Does your project and API support or implements green addresses? I am looking for a green address implementation/API other than the https://greenaddress.it one. What's a "green" address? This is probably the best explanation for that question at https://en.bitcoin.it/wiki/Green_address
|
|
|
|
tzpardi
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 66
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 11, 2015, 03:43:57 PM |
|
Does your project and API support or implements green addresses? I am looking for a green address implementation/API other than the https://greenaddress.it one. No, BlockTrail uses 2-of-3 multisig (unlike greenaddress which makes use of 2-of-2), so BlockTrail does not have the control over the coins to prevent its users from double spending (and thus does not provide "greenaddress functionality" between its users) Generally I understand what multisig is for but could you explain in the case of BlockTrail service why need their signature for the transaction, what's the advantage of having a multisig transaction and BlockTrail's signature on the transaction?
|
|
|
|
btcbb
Newbie
Offline
Activity: 30
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 11, 2015, 04:43:02 PM |
|
Generally I understand what multisig is for but could you explain in the case of BlockTrail service why need their signature for the transaction, what's the advantage of having a multisig transaction and BlockTrail's signature on the transaction?
Great quesiton. I'll give an example to help illustrate the problem and how 2-of-3 multisig solves it. Lets say you run a bitcoin service of some sort, for example, an exchange, a gambling website, an ATM network, etc. One morning you wake up to find that $1,000,000 worth of bitcoins are missing from your hot wallet ![Shocked](https://bitcointalk.org/Smileys/default/shocked.gif) If you were using 2-of-3 multisig, this scenario could have been prevented, because the service provider (for example BlockTrail) could enforce your custom restrictions and spending limits before signing your transactions. This allows you to greatly mitigate how much damage an attacker can do (i.e you would lose $10k instead of $1m). In order to circumvent the restrictions, an attacker would need to have access both to your systems AND the multisig service provider's systems, making it very unlikely for a successful attack. In another scenario, if the multisig service provider's systems are breached, then users' coins are still safe, because the service provider only has 1 out of 3 keys needed to make transactions. An attacker would still need to attack every single user individually, to actually get their bitcoins. This isn't necessarily the case with some of the more traditional APIs which either have access to your private key (coinbase) or which you need to send your password to the service provider (bc.info). Since we're on the topic of security I think its worthwhile mentioning some of the benefits of HD Wallets, which separate your keychain from your backup process. The issue is that if your bitcoin service (exchange, gambling site, ATM, etc) is constantly generating new bitcoin addresses for users to pay and deposit into, in a short while you'll find that you need to manage hundreds, or hundreds of thousands of private keys. If you have a high volume of transactions its likely that you have a very well defined backup process for getting these keys into cold storage. HD wallet technology eliminates this issue entirely - since you have one private key to manage all of your bitcoin addresses, forever, and you only need to back it up once when you initially created it. You can generate it, throw it in a safety deposit box and never need to expose your backup process to technical faults, human errors or unknown security vulnerabilities. This is also far easier to manage and gives you peace of mind.
|
|
|
|
tzpardi
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 66
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 12, 2015, 09:30:18 AM |
|
Generally I understand what multisig is for but could you explain in the case of BlockTrail service why need their signature for the transaction, what's the advantage of having a multisig transaction and BlockTrail's signature on the transaction?
Great quesiton. I'll give an example to help illustrate the problem and how 2-of-3 multisig solves it. Lets say you run a bitcoin service of some sort, for example, an exchange, a gambling website, an ATM network, etc. One morning you wake up to find that $1,000,000 worth of bitcoins are missing from your hot wallet ![Shocked](https://bitcointalk.org/Smileys/default/shocked.gif) If you were using 2-of-3 multisig, this scenario could have been prevented, because the service provider (for example BlockTrail) could enforce your custom restrictions and spending limits before signing your transactions. This allows you to greatly mitigate how much damage an attacker can do (i.e you would lose $10k instead of $1m). In order to circumvent the restrictions, an attacker would need to have access both to your systems AND the multisig service provider's systems, making it very unlikely for a successful attack. In another scenario, if the multisig service provider's systems are breached, then users' coins are still safe, because the service provider only has 1 out of 3 keys needed to make transactions. An attacker would still need to attack every single user individually, to actually get their bitcoins. This isn't necessarily the case with some of the more traditional APIs which either have access to your private key (coinbase) or which you need to send your password to the service provider (bc.info). Since we're on the topic of security I think its worthwhile mentioning some of the benefits of HD Wallets, which separate your keychain from your backup process. The issue is that if your bitcoin service (exchange, gambling site, ATM, etc) is constantly generating new bitcoin addresses for users to pay and deposit into, in a short while you'll find that you need to manage hundreds, or hundreds of thousands of private keys. If you have a high volume of transactions its likely that you have a very well defined backup process for getting these keys into cold storage. HD wallet technology eliminates this issue entirely - since you have one private key to manage all of your bitcoin addresses, forever, and you only need to back it up once when you initially created it. You can generate it, throw it in a safety deposit box and never need to expose your backup process to technical faults, human errors or unknown security vulnerabilities. This is also far easier to manage and gives you peace of mind. Thanks for answering, that's great, the multisig makes a perfect sense from security viewpoint. On the other hand what happens terms of transferring the coins if the service provider, in this case BlockTrail goes out of business? Since the service provider won't be able to sign the transaction how the coins can be transferred from my address? The BlockTrail website states that "You're always able to spend your coins using your primary key together with your backup key", is that means 2 keys from the three (which are my key, backup key and BlockTrail's key) are enough to perform a transaction? I am actually planning to accept Bitcoin within our business and searching for an online wallet solution that offers a robust API as well. The Blockchain.info service is a great and matured solution, but I am concerned that Blockchain.info keeps full control over the wallet, while BlockTrail claims that they address this issue by letting users retain full control over the wallet. The BlockTrail API looks good as well, it seems the team at BlockTrail has done a great job so far. Terms of the HD wallet, again, to mitigate the risk of the service provider BlockTrail goes out of business, should users make a backup of their wallet after every transaction or how can be the coins accessible in case if the BlockTrail servers aren't operational?
|
|
|
|
btcbb
Newbie
Offline
Activity: 30
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 12, 2015, 12:05:25 PM |
|
Thanks for answering, that's great, the multisig makes a perfect sense from security viewpoint. On the other hand what happens terms of transferring the coins if the service provider, in this case BlockTrail goes out of business? Since the service provider won't be able to sign the transaction how the coins can be transferred from my address? The BlockTrail website states that "You're always able to spend your coins using your primary key together with your backup key", is that means 2 keys from the three (which are my key, backup key and BlockTrail's key) are enough to perform a transaction?
I am actually planning to accept Bitcoin within our business and searching for an online wallet solution that offers a robust API as well. The Blockchain.info service is a great and matured solution, but I am concerned that Blockchain.info keeps full control over the wallet, while BlockTrail claims that they address this issue by letting users retain full control over the wallet. The BlockTrail API looks good as well, it seems the team at BlockTrail has done a great job so far.
Terms of the HD wallet, again, to mitigate the risk of the service provider BlockTrail goes out of business, should users make a backup of their wallet after every transaction or how can be the coins accessible in case if the BlockTrail servers aren't operational?
Hey Tzpardi, Again excellent question. Even if a meteor falls down directly on BlockTrail HQ and we are no longer able to sign a transaction, you STILL have access to your coins because you have 2 out of 3 keys, and two keys are always necessary to sign your transactions. So if BlockTrail is not around, you take the second key that you kept in cold storage and you sign your coins using your own two keys. You can do this manually, but we'll also be adding a tool to our SDK to help you do this easily. The beauty of HD wallet capabilities is that you never need to backup anything except for the 'master seed'. This is because using cryptography, you can recover all your addresses (and their keys) from this master seed. So essentially, after you've secured your master seed in a safe, you never need to make a backup ever again!
|
|
|
|
spin
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 12, 2015, 12:32:27 PM |
|
Is this thread about apis or multi-sig?
|
If you liked this post buy me a beer. Beers are quite cheap where I live! bc1q707guwp9pc73r08jw23lvecpywtazjjk399daa
|
|
|
RocketSingh
Legendary
Offline
Activity: 1662
Merit: 1050
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 12, 2015, 08:27:43 PM |
|
Thanks for answering, that's great, the multisig makes a perfect sense from security viewpoint. On the other hand what happens terms of transferring the coins if the service provider, in this case BlockTrail goes out of business? Since the service provider won't be able to sign the transaction how the coins can be transferred from my address? The BlockTrail website states that "You're always able to spend your coins using your primary key together with your backup key", is that means 2 keys from the three (which are my key, backup key and BlockTrail's key) are enough to perform a transaction?
I am actually planning to accept Bitcoin within our business and searching for an online wallet solution that offers a robust API as well. The Blockchain.info service is a great and matured solution, but I am concerned that Blockchain.info keeps full control over the wallet, while BlockTrail claims that they address this issue by letting users retain full control over the wallet. The BlockTrail API looks good as well, it seems the team at BlockTrail has done a great job so far.
Terms of the HD wallet, again, to mitigate the risk of the service provider BlockTrail goes out of business, should users make a backup of their wallet after every transaction or how can be the coins accessible in case if the BlockTrail servers aren't operational?
Hey Tzpardi, Again excellent question. Even if a meteor falls down directly on BlockTrail HQ and we are no longer able to sign a transaction, you STILL have access to your coins because you have 2 out of 3 keys, and two keys are always necessary to sign your transactions. So if BlockTrail is not around, you take the second key that you kept in cold storage and you sign your coins using your own two keys. You can do this manually, but we'll also be adding a tool to our SDK to help you do this easily. The beauty of HD wallet capabilities is that you never need to backup anything except for the 'master seed'. This is because using cryptography, you can recover all your addresses (and their keys) from this master seed. So essentially, after you've secured your master seed in a safe, you never need to make a backup ever again! Is there any API offered by blocktrail.com that allows to Push a Tx, e.g. https://blockchain.info/pushtx ?
|
|
|
|
btcbb
Newbie
Offline
Activity: 30
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 13, 2015, 01:27:54 PM |
|
|
|
|
|
RocketSingh
Legendary
Offline
Activity: 1662
Merit: 1050
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 13, 2015, 05:18:17 PM |
|
You may say if it is available in any other format...
|
|
|
|
|