bitcoins, how can someone receive much less than have spent? - bitcoin

Here is blockchain link:
https://blockchain.info/address/14f4WdcxkRhP2N5JbCWe3q7QcNtDiX82ba?filter=1
Here you can clearly see that that total received bitcoin was about, but he spent more than 200 i guess...
Can someone explain how is that even possible?

Whoever who made these transactions had other sources of funds than just the account you queried. Thus he was able to form transactions that delivered more funds than that one account received.
If you total amount delivered by all of the transactions that drew from that account, they do total more than 200 Bitcoins. But those transactions drew from many accounts, not just this one.
For example, if you look closely at transaction ce99101a40bcf2bceab57ac43ff881260a6961c546b9d52e0737ed6acd39a43a you can see that while the transaction delivered over 25 Bitcoins, it had numerous input accounts. Only 0.1528 Bitcoins came from 14f4WdcxkRhP2N5JbCWe3q7QcNtDiX82ba.
Note that this is perfectly ordinary. Some wallets behave this way automatically, constantly generating additional accounts to hold funds and managing those sources as a unit, forming transactions that draw from several of them and returning unspent funds to yet another new account.

Related

How users currency accounts address are updated during currency trading on Exchanges like Coinbase and Binance?

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

Sms delivery fail, but money still charged

Can any body explain why sms gateways take money on fail delivery?
Yes i understand that sometimes confirm that sms was delivered its hard but even if services says cant deliver it still take money.
Because then they are not loosing money and why to hurry up? I used when when they answered to me after one week. After one week they answered why sms was not delivered.
As part of question would be how to deal with that because now i see only one option to use two different services and track if user try to send sms twice and account is not confirmed then use other service as previous
The way these services work is that they incur cost on every SMS sent, even if not delivered. Do note that in most of the cases, this is not the telecom provider's cost, as that is pretty minimal because of the bulk purchases these services do. It is more of the cost of their entire infrastructure etc. in sending out that SMS.
To put it in perspective, take case of email service providers. They also charge based on number of emails sent, irrespective of whether the emails are actually delivered or not.
And to minimize this cost, you need to try a few services to see which one has the best data bank of numbers that have least non-delivery rate.

Aggregation API: Yodlee transactions resulting when a check bounces

How do people deal with the situation of bounced checks when getting Yodlee transactions through the Aggregation API?
Our app only retrieves posted transactions and it has led to an issue.
Most banks seem to balance the bounced check situation by providing posted transactions for both the initial check disbursement (negative amount) and for the bounced check (positive amount). Bank of America, however only posts the positive amount transaction - (the one the increases the balance of the consumer's bank account) - the original transaction never gets past the pending stage. and since the original transaction (the check) is never posted it results in an incorrect increase in balance on the consumer side.
Any thoughts?
If you are customer of Yodlee, then you can reach out to Yodlee's support team and raise your issue with details like BankName, SiteId,memSiteAccId and cobrandId. Yodlee's data team will look into it and would be able to help you out.

Match bank transactions between Yodlee connections to the same account

In our application, there are occasionally cases where a bank account is disconnected using removeItem and subsequently reconnected using addItemForContentService1 from the Yodlee SOAP aggregation API. There is anecdotal evidence to suggest that, until relatively recently (1-2 months ago?), the transaction IDs for bank transactions that had already been retrieved from a prior connection would be identical when the same bank account was reconnected. However, now it appears that, when a bank account is disconnected and then reconnected in this way, all of the bank transactions are now assigned new transaction IDs, thus breaking any client logic that attempts to match transactions from previous connections to the same bank account. This can be a serious problem since, for example, it can produce many duplicate transactions for accounts that have already had bank reconciliations performed.
My questions are whether there now exists a reliable mechanism to identify the same bank transactions when disconnecting and reconnecting to the same bank account using removeItem and addItemForContentService1 and, if so, what is it?
When you call removeItem the account is deleted and also all the data related to that account is deleted. Now when you call addItemForContentService1 a new itemId is created for that account and data is freshly added to the data base considering the account as new. Since there is no mapping to the old data , so you will not get the same transaction IDs for those transactions.
Hence removeItem should only be called if you wish to delete the account and it's data from Yodlee platform.

How Do I Get the Remaining Transaction Refund Balance with Authorize.Net?

With Authorize.Net, I see no way to use the Transaction Details (TD) API in order to find the remaining transaction refund balance, such as someone who buys two products at once on a given transaction, gets refunded on one product, and then the next day comes back and wants to get refunded on the second product. Unless I store those prices somewhere, I have no way to know how much to refund. And this gets more complicated when exchange rates are used, where the price fluctuates a little. The only way to refund properly on the second product is to get the remaining refund balance and refund that balance.
What's the trick to get the remaining balance that I can still refund out of the transaction?
Unfortunately there is no way to get that information through their API. The merchant account provider does not provide this information nor does Authnet keep track of this information themselves. Basically you need to keep track of open balances, available refunds, etc on your end.