Determining Fair-Value of NFT Event Tickets
Similar to how Automated Market Maker (AMM) contracts like Uniswap work, I believe it is possible to determine a fair market value for NFTs which represent tickets to events or other items with a defined fair-market value utilizing a "P2C" or, peer-to-contract protocol.
Precedent in Fungible Tokens
Where UniSwap uses the following formula to determine market price in their liquidity pool:x * y = k
Where x
is the amount of Token A, y
is amount of Token B, and k
is a fixed constant representing the liquidity of the pool. Unlike traditional markets, you don't need a counterparty to determine the price using this model. The price you get for an asset is determined by a formula. If I'm looking at an ETH:DAI pool, and I want to buy all of the ETH, I could not, as each ETH purchased exponentially increases the price with zero as a limit, if either x
or y
reach zero, the equation doesn't work, our k
value goes to zero, making the asset unbuyable.
Applying to NFTs
I would suggest looking at a foundation for price stabilization, it will be infinitely valuable to NFTs in general, particularly compared to a model where the price is set in stone. Perhaps you don't want that... If tickets aren't selling, maybe the price going down a little bit is a good thing, so more people can afford to go; drive the demand and price up, and let market forces work it out.
There's a value framework that tends to keep NFTs in line, and could be a good starting point, loosely defined as:
Value = Utility + Ownership History + Future Value + Liquidity
A ticket has high utility, negligible ownership history, no future value, and liquidity varies depending on number of sold out tickets, hype behind the event, number of seats, which could factor into your formula.
We can remove Ownership History & Future Value from the equation for tickets in particular and let's redefine liquidity in this context as availability and utility as demand, as that's what it really is. Also, demand does not sum with availability to create value, they form a ratio, where:
Value = Demand / Availability
Your interacting contract would set the initial value, and the availability is determined by the NFT which it interacts with. Demand comes into play after the tickets go on sale.
Demand could be represented as a independent variable between 0-1. When tickets first go on sale, Demand is 1 as it's an empty house. We can approach zero, but can never reach it even if there is no demand for tickets, because the value would be zero in this case as well. It is likely that demand will remain constant: people who want to go to something want to go to something regardless. If they can afford it, they'll go. The only thing this does is reduce the price proportionally depending on the number of requests for tickets, which is not unlike tickets to events today where promoters will give discounts just to fill the seats. But again, if the demand isn't there, the price may drop but people still won't buy tickets. Only so many people want to go to an event but can't afford it and would if the price went down. It's generally either a "I want to go" or "I don't".
Setting the equation up like this also prevents the price from going above the sale price as you cap Demand at 1 in the controlling contract. However, you could alter this and allow for some resale within a reasonable range. If it's last minute, sometimes ticket prices do go up (scalpers or not). Perhaps setting Demand to an integer between 0-1.3 is better.
NOTE: I know this is a price control mechanism, not a price lock mechanism, I provide the detail as unless you're going to do some of the sales and processing off-chain, it's difficult to keep the price from fluctuating with demand without an equation in place.