Pricing/Economics of Data Feeds
The economics of Chainlink decentralized oracles are similar to Ethereum and other L1s. Chainlink Node operators are economically incentivized to run nodes as long as people use their services.
With an L1, the node operators get paid to mine blocks, and as soon as people stop paying for the blocks, the operators would stop supporting the chain. It works the same way with Chainlink, except instead of mining blocks, the nodes are delivering data to a blockchain. Once it stops being economical for nodes to deliver data or external execution, the nodes wouldn’t do it.
That being said, same as ETH, we see node operators consistently upping participation since there is so much demand for data on-chain, just like there is a ton of demand for blocks in an L1.
Chainlink price feeds are (presently) paid for by the protocols that are sponsoring them, which isn’t really fair since (as you have correctly observed) anyone can consume the price feed data for free.
On Going Support of Feeds
There are a few scenarios where a feed might change or no longer be supported:
- The token changes address (We’ve seen this before, where a token “splits” and it wouldn’t make sense to support 2 feeds)
- The Node operators stop getting paid (Maybe the protocols using them no longer want them)
- The token becomes too volatile for the node & consumers (For this reason, it’s a best practice to use high liquidity tokens for a feed as that helps absorb the volatility a bit)
- The economic model changes so everyone pays their fair share. (This hasn’t happened, but it might happen to make things more fair for those paying)
A best practice if you’re nervous about the state of a feed, would be to add a check to see when the last update on a feed was. If the last update was not recent enough for your requirements (you can check timestamp data using the API), you can freeze functionality that depends on the feed.