Hmm I tried looking at the code and it uses some interesting logic. Not what I expected but quite clever.
reply
like what?
reply
Neat! I feel like I've seen something very similar to this somewhere else, but I can't remember where...
Also,
They will also get the same price history going back to July 26th, 2020
I wonder why this specific date in history?
reply
It probably performs very poorly after that. I don't think this is a serious thing that can be relied on strictly with on chain data. If it were something that could be relied on then time period wouldn't be a factor. If it can't even go back one epoch then it's not something that can go forward one epoch either. Interest project, but anyone can take some model within a specific time period and find the algo to fit their assumptions.
reply
It's kind of like fee estimation. Even if you develop an estimation model that works really well, it'll stop working when everyone uses that model.
reply
LOL. This ^^
reply
Actually, I misunderstood. This doesn't try to predict the future at all. It just allows you to pretty accurately determine a given day's USD price (assuming the day is within their specified range).
I don't fully grok it, but most of the magic is in a historical "stencil" in the shape of a bell curve that matches output patterns to price points. It then lines up this stencil with a bell curve of the output patterns on a given day and voila.
What's cool about this is that if you need historical price data you can use this to deduce the price rather than rely on some external source. I guess it could break if onchain behavior for a day is anomalous and not accounted for by the model?
reply
Oh, thanks for explaining this. That is useful and cool.
reply
"but anyone can take some model within a specific time period and find the algo to fit their assumptions"
A bit dismissive lmao
reply
I heard more about it today at bitdevs and it sounds like it has reasonable assumptions based on common amount analysis but needs a solid baseline of historical price matching for it to work. And still can't be relied on in any meaningful way.
reply
This is seriously clever!
reply
I'm still confused, can some1 ELI5 ?
reply
You can use this signal to make the decision of buying and selling if you are a trader
reply
That can be tricked if I start sending like $4.20, $42.0... transactions, right?
reply
It would mess up the model if you could convince the whole bitcoin ecosystem to send $4.20 and $42.0. Many people like the round numbers of $50 and $100.
reply
Not sure how they arrive at the price estimate. Surely they still need inputs from a bunch of exchanges
reply
I think it works by seeing patterns of people buying and selling round dollar amounts, like $100. It can then estimate what bitcoin price must have been been seeing how many sats that dollar amount bought.
reply
Yeah, it works on the logic that most transactions are in round dollar amounts, like $50, $100, etc, so there's an extra density of transaction outputs at those round amounts. By looking at where these peaks in the transaction outputs distribution are, you can estimate what the price would have been to make those sat amounts equal to round dollar amounts.
I think it's a really cool idea, especially because you don't need to pull the price from any external data provider.
reply
People buying $50 on an exchange wouldn't send it to their personal wallet until they have a larger UTXO wouldn't they?
Then there's all the ordinal noise & people buying lightning on robosats.
reply
That's what I don't understand as well. If you buy $50 on Coinbase, I highly, highly doubt that Coinbase is doing an on-chain transaction for that amount to move it into your "own" wallet on Coinbase. Rather they are using their centralized ledger to keep track of who has what and then settling accordingly when you choose to withdraw.
I wonder where the data for the UTXO sets is coming from. Batched withdraws from exchanges? As more and more btc comes off exchanges, I wonder how this price estimation model will continue to function.
reply
Coinbase definitely don't do that until you withdraw
reply