I am new to bitcoin and blockchain , I want to build a digital currency exchange
But don't want to interface to an external site(Polonix for example).
I want, as a first step, to create wallets for all kinds of coins
Does "Blockchain" only work with Bitcoin?
Because I don't see an option to send "currency type" when creating a new wallet
https://blockchain.info/api
Please tell me what service or Api I'm supposed to interface with
Bitcoin and Blockchain are different things:
Bitcoin is the first descentralized digital crypto currency. Bitcoin implements the Blockchain technology.
Blockchain is the technology that gives you the chance to create descentralized networks.
Nowadays, there are many implementations of Blockchain: Bitcoin, Ethereum, Hyperledger Fabric, Corda, Ripple, Openchain...
If I were you, I would start reading more about Blockchain. Then, if you want to create your own cryptocurrency, I advise you to follow Ethereum's manual. https://www.ethereum.org/token. This will help you to understand better Blockchain, and also to create new wallets.
Bitcoin is a cryptocurrency and Blockchain is a data structure or technology.
Any cryptocurrency can be implemented using blockchain.
Wallet is like a bank account which has account numbers and the amounts.
I guess you want to create an user interface that shows multiple coin accounts and balances.
you can create one wallet and connect it to the blockchain networks like bitcoin, ethereum, ripple to get the information of multiple cryptos implemented using protocols ethereum and ripple.
ethereum network uses web3 api to connect and then eth.getBalance method to get balances of ethereum.Likewise each crypto will have a similar api and method.
Related
is there chance that Coinbase or any wallet can be used as a proxy wallet i.e a smaller exchange stores its retail clients assets on Coinbase custody but when withdrawals are made by a retail client it is processed by an api and sent from custody directly to the clients wallet
can this be achieved?
Complex, but anything is possible. You can program a login system, and depending on who logs in, a different function in the code is executed, and the books of each client's amounts would also have to be kept and integrated into the code, and the client must not have access to alter the core coding. Maybe use python?
You can already use Coinbase's API to make withdrawals to a wallet. Withdrawals via API exist for most exchanges.
https://developers.coinbase.com/api/v2#withdrawals
https://docs.pro.coinbase.com/?python#list-withdrawals
I have a website to sell products. Prices are in EURO. I want to take payment in my personal bitcoin address. So, i have to generate the product price with address in a QR code besides the regular payments system. And the customer can pay to scan the QR code. My question is - how can i show the QR code with product price and address at payment section ?
If you think you've got it and TRUST only yourself you can write it all yourself.
In order to do it you'd have to develop things such as wallet service for creating addresses + listening for any incoming deposits on your addresses, maybe storing your private keys should be necessity since you're dealing with some sensitive stuff u know... cryptos....
Otherwise you can trust 3rd party services such as BitGo or APIs provided by blockchain.com (previously knowns as blockchain.info)
DISCLAIMER: I don't have any affiliation with bitgo.com, blockchain.com or any other such services
My naive understanding behind how currency trading works on Exchanges like Binance and Coinbase is each users are provided with unique address and when the respective currencies trade happens on exchanges like Binance or Coinbase, both the parties accounts get's updated live on blockchain.
To elaborate more, In case of ETH/BTC trading, let's say, Mr Foo wants to trade his ETH with Mr Bar's BTC on Binance exchange. Binance will provide both of them with unique address respectively to their currency. So when the ETH/BTC trade take place, Mr Foo will receive the BTC on his newly generated unique BTC address and Mr Foo's ETH account will be deducted . On the other side, Mr Bar's BTC account will be deducted and Ether account is updated with newly received ether.
I'm really confuse regarding whether these currency trading on exchanges execute live on Blockchain? Recently during Bitcoin and Ethereum network congestion, I did BTC/ETH trading on HITBTC, the process happened instantaneously, but I've to wait for hours during withdrawal process. Also Hitbtc seems to be using same Ethereum account (0x65e2c5175e2e618f48e70343b14c31b280e42d90) to transfer fund during withdraw request for multiple users. It seems that these exchanges are using the same address for serving multiple users.
Could somebody explain how users accounts are updated during currency trading on exchanges like Coinbase and Binance? Does trading immediately happens live on blockchain? Or Exchanges only shows the users with fake trading balances until it's withdrawn? Do the Exchanges use same address to accept deposits from multiple users?
Thank you for your time.
Check out this thread for a brief explanation of Coinbase's order management.
Answer on the reddit thread, supposedly from a coinbase insider.
In addition, my comment above was just based on intuition and my general knowledge of the way brokers work.
Brokers
Brokers tend to match orders first since they are in the business of exchanging, not investing. Meaning they make their most consistent revenue from fees generated by facilitating customer orders, not by investing in the securities or assets that they help to buy/sell.
Sometimes in order to fulfill an order the broker will go long or short a particular asset class, in this case bitcoin or ethereum, etc. If this happens the broker is exposed to fluctuations in the price of that asset against the asset they are trying to grow (cash).
Now, since Coinbase is heavily involved in crypto it might be part of their strategy to hold Bitcoin or Ethereum inventory, but I would doubt it would figure much since that would undermine public trust in their institution as an impartial exchange. No one really likes to hear their broker bet against them, it tends to engender resentment.
Technicals
Coinbase is setup as a software wallet, meaning you have an account, with the private keys stored on their server. So it is possible for them to facilitate some of the trading between bitcoin accounts without ever having to match orders with an account holder outside their system.
Meaning, they can collect/match/fill the orders in batches and then submit those batches to bitcoin miners. This would allow them to quickly "fulfill" your order, and then send you verification once it has been posted to the blockchain.
Further Reading
Although it is not specifically geared towards crypto exchanges there is an excellent book on the subject of how markets actually function.
Market Microstructure in Practice
I need to accept bitcoins on my website (PHP). I'm using blockchain and i have read the api: https://blockchain.info/api/api_receive Is quite simple but i have some questions, but first i will try to explain what i need.
Client send bitcoins to my wallet (Any amount they want)
Server will be notified with confirmations until gets OK.
Gets the sent amount and client wallet from callback and store in DB.
Now my questions:
"You provide a bitcoin address we generate unique addresses that forwards payments to that address instantly notifying a callback URL."
Q: Can we reuse that address and all clients use same address to send bitcoins? Or address will be deleted? The address have a lifetime?
Instead create address to pay is possible clients pay directly to my wallet and server got notified? I don't need extra params like tokens.
I end up in a website that use always the same wallet/address for each odd: http://bitzillions.com/satoshibones
I will like to have a pay system like that, one address per game.
Also should i use blockchain/blockchain (https://github.com/blockchain/api-v1-client-php) library or the simple library (https://github.com/blockchain/receive_payment_php_demo)?
Also if you have any suggestion or alternative i will like to hear.
I think I can help. Disclaimer that I work for BlockTrail.
It would not be good to use the same address because people can view the historical transactions associated with that address. It is recommended to use a new address for every transaction. These can be under the same wallet or different wallets. That may sound complicated but with the possibilities as long as the universe is old you can make a new address per transactions. Some wallets will do this for you automatically. This is called HD Wallets or Hierarchical Deterministic Wallets. You can also use this to have your clients always pay into the same wallet.
You can also use an API to create these wallets. If you are interested in using BlockTrail's here is the link: https://www.blocktrail.com/
We also have webhooks that will send you notifications for confirmations etc... If you want to learn more about our platform, here is a blog that describes it. BTW it is free! https://blog.blocktrail.com/2015/06/blocktrails-developer-platform/
I was looking for official web API to operating with Bitcoin system, but found nothing.
Thank you in advance!
If you're fine with securing and running your own Bitcoin server and interacting with that, there's a guide at https://en.bitcoin.it/wiki/API_reference_(JSON-RPC). But if you're not comfortable securing your own instance of bitcoind, then you could always use a third-party service like Blockchain.info's API.
Please be aware that hackers are particularly targeting servers and websites that they think probably hold bitcoin. If you're thinking of launching a Bitcoin service, take a lot of time to educate yourself about the services that have lost their users' funds and what they did wrong. Take a look at Blockchain.info if you want to see a Bitcoin web service implemented well. Their servers never hold private keys "in the clear", so bitcoin cannot be stolen from their users if their servers are ever compromised.
Update: If you are building a Bitcoin service that holds bitcoin for users, the current "best practice" (circa June 2014) is to generate a hierarchical deterministic wallet using a random string of words as a seed and encrypt it client side with the user's username and password. At that point it's safe to send to the server for storage. The user should be shown the seed used to generate their HD wallet and prompted to write it down and store it somewhere safe. Without this string, it will be impossible for them to retrieve their wallet in the event they forget their username or password. When the user logs in later, the client-side code should grab the encrypted wallet and decrypt it again client-side. All operations requiring a decrypted wallet, such as signing transactions, should be done client-side. The server should never be exposed to the wallet "in the clear."