VPM-45 - Create NFTPUSDT Market Cap futures (Pre-market) [NFTPerp protocol]

VPM-45 - Create NFTPUSDT Market Cap futures (Pre-market) [NFTPerp protocol]

This proposal outlines the creation of a futures market for NFTPerp, structured around the settlement principles detailed in the referenced research note.

It outlines the methodology for defining a token launch, calculating the market capitalisation at launch using a specified algorithm, and setting the futures contract settlement price. To the best of my understanding the market capitalization (MCAP) is calculated using a bespoke “MCAP Valuation Algorithm” once the token has launched (TGE). This involves computing the time-weighted average price (TWAP) of the token over a specified trading window and multiplying it by the total token supply. This resultant figure gives the market cap at the point of calculation, which is then used to determine the settlement price of a futures contract, based on a predetermined fraction of the MCAP.

Contributions to improving JSON proposal are welcome, in particular to refine these parameters further, ensuring a robust framework for market operations. Involvement in defining these auction and SLA parameters could enhance the proposal’s effectiveness applicability as well as quality of trading.

Market Summary:
NFTperp USDT futures
Settlement asset: USDT

Full Proposal JSON:

{
    "batchProposalSubmission": {
        "rationale": {
            "description": "This proposal creates a futures market on the FDV of NFTPerp as discussed in this forum post: INSERT FORUM LINK",
            "title": "VMP-45 - NFTPerp MCAP (Futures market)"
        },
        "terms": {
            "closingTimestamp": "PLACEHOLDER", // TODO - grab closing timestamp
            "changes": [
                {
                    "enactmentTimestamp": "PLACEHOLDER", // TODO - grab enactment timestamp (1-2 hours after closing)
                    "newMarket": {
                        "changes": {
                            "linearSlippageFactor": "0.001",
                            "decimalPlaces": "6",
                            "positionDecimalPlaces": "-2",
                            "instrument": {
                                "name": "NFTPerp MCAP (Futures market)",
                                "code": "NFTPERP/USDT.MCAP", // This looks more like spot with forward slash
                                "future": {
                                    "settlementAsset": "bf1e88d19db4b3ca0d1d5bdb73718a01686b18cf731ca26adedf3c8b83802bba",
                                    "quoteName": "USDT",
                                    "dataSourceSpecForSettlementData": {
                                        "external": {
                                            "ethOracle": {
                                                "sourceChainId": "42161",
                                                "address": "0x302461E6dBF45e59acb3BE9a9c84C0a997779612",
                                                "abi": "[{\"type\":\"function\",\"name\":\"getData\",\"inputs\":[{\"name\":\"identifier\",\"type\":\"tuple\",\"internalType\":\"struct SettlementOracle.Identifier\",\"components\":[{\"name\":\"liveness\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"bondCurrency\",\"type\":\"address\",\"internalType\":\"contract IERC20\"},{\"name\":\"minimumBond\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maximumBond\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"marketCode\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"quoteName\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"enactmentDate\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"ipfsLink\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"}]",
                                                "method": "getData",
                                                "args": [
                                                    {
                                                        "liveness": 28800,
                                                        "bondCurrency": "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
                                                        "minimumBond": 500000000,
                                                        "maximumBond": 100000000000,
                                                        "ipfsLink": "ipfs://bafybeiepzqdjoxwzeh2vzwi5c4473vddemqjihc26tbuu32vkasisk537i", // TODO - check if we need a new IFPS link
                                                        "marketCode": "NFTPERP/USDT.MCAP",
                                                        "quoteName": "USDT",
                                                        "enactmentDate": "2024-03-20T11:00:00Z" // TODO - update this with correct enactment date
                                                    }
                                                ],
                                                "requiredConfirmations": "64",
                                                "trigger": {
                                                    "timeTrigger": {
                                                        "every": "600"
                                                    }
                                                },
                                                "filters": [
                                                    {
                                                        "key": {
                                                            "name": "resolved",
                                                            "type": "TYPE_BOOLEAN"
                                                        },
                                                        "conditions": [
                                                            {
                                                                "operator": "OPERATOR_EQUALS",
                                                                "value": "true"
                                                            }
                                                        ]
                                                    },
                                                    {
                                                        "key": {
                                                            "name": "price",
                                                            "type": "TYPE_INTEGER",
                                                            "numberDecimalPlaces": "18"
                                                        },
                                                        "conditions": [
                                                            {
                                                                "operator": "OPERATOR_GREATER_THAN_OR_EQUAL",
                                                                "value": "0"
                                                            }
                                                        ]
                                                    }
                                                ],
                                                "normalisers": [
                                                    {
                                                        "name": "resolved",
                                                        "expression": "$[0]"
                                                    },
                                                    {
                                                        "name": "price",
                                                        "expression": "$[1]"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "dataSourceSpecForTradingTermination": {
                                        "external": {
                                            "ethOracle": {
                                                "sourceChainId": "42161",
                                                "address": "0x6d0b3a00265b8b4a1d22cf466c331014133ba614",
                                                "abi": "[{\"type\":\"function\",\"name\":\"getData\",\"inputs\":[{\"name\":\"identifier\",\"type\":\"tuple\",\"internalType\":\"struct TerminationOracle.Identifier\",\"components\":[{\"name\":\"bondCurrency\",\"type\":\"address\",\"internalType\":\"contract IERC20\"},{\"name\":\"minimumBond\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maximumBond\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"liveness\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"marketCode\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"quoteName\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"enactmentDate\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"ipfsLink\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"conditionalSettlementOracle\",\"type\":\"address\",\"internalType\":\"contract SettlementOracle\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"}]",
                                                "method": "getData",
                                                "args": [
                                                    {
                                                        "liveness": 28800,
                                                        "bondCurrency": "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
                                                        "minimumBond": 500000000,
                                                        "maximumBond": 100000000000,
                                                        "ipfsLink": "ipfs://bafybeiepzqdjoxwzeh2vzwi5c4473vddemqjihc26tbuu32vkasisk537i", // TODO - check this
                                                        "marketCode": "NFTPERP/USDT.MCAP",
                                                        "quoteName": "USDT",
                                                        "enactmentDate": "2024-03-20T11:00:00Z", // TODO - update this
                                                        "conditionalSettlementOracle": "0x302461E6dBF45e59acb3BE9a9c84C0a997779612"
                                                    }
                                                ],
                                                "requiredConfirmations": "64",
                                                "trigger": {
                                                    "timeTrigger": {
                                                        "every": "600"
                                                    }
                                                },
                                                "filters": [
                                                    {
                                                        "key": {
                                                            "name": "resolved",
                                                            "type": "TYPE_BOOLEAN"
                                                        },
                                                        "conditions": [
                                                            {
                                                                "operator": "OPERATOR_EQUALS",
                                                                "value": "true"
                                                            }
                                                        ]
                                                    },
                                                    {
                                                        "key": {
                                                            "name": "terminated",
                                                            "type": "TYPE_BOOLEAN"
                                                        },
                                                        "conditions": [
                                                            {
                                                                "operator": "OPERATOR_EQUALS",
                                                                "value": "true"
                                                            }
                                                        ]
                                                    }
                                                ],
                                                "normalisers": [
                                                    {
                                                        "name": "resolved",
                                                        "expression": "$[0]"
                                                    },
                                                    {
                                                        "name": "terminated",
                                                        "expression": "$[2]"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "dataSourceSpecBinding": {
                                        "settlementDataProperty": "price",
                                        "tradingTerminationProperty": "terminated"
                                    }
                                }
                            },
                            "metadata": [
                                "base:NFTPERP",
                                "quote:USDT",
                                "enactment:2024-03-20T11:00:00Z", // TODO - update this
                                "settlement:fromOracle",
                                "class:fx/crypto",
                                "oracle:uma",
                                "sector:defi",
                                "oracleChain:arbitrum",
                                "domain:nftperp.xyz"
                            ],
                            
                                    },
                                ]
                            },
                            "logNormal": {
                                "tau": 0.0002281542323,
                                "riskAversionParameter": 0.01,
                                "params": {
                                    "mu": 0,
                                    "r": 0,
                                    "sigma": 5
                                }
                            },
                            "liquiditySlaParameters": {
                                "priceRange": "0.05", // TODO - check if this is too wide based on initial auction config
                                "commitmentMinTimeFraction": "0.5",
                                "performanceHysteresisEpochs": "0",
                                "slaCompetitionFactor": "0.8"
                            },
                            "liquidationStrategy": {
                                "disposalTimeStep": "5",
                                "disposalFraction": "0.1",
                                "fullDisposalSize": "10000",
                                "maxFractionConsumed": "0.1"
                            },
                            "liquidityFeeSettings": {
                                "method": "METHOD_CONSTANT",
                                "feeConstant": "0.005",
                            },
                            "liquidityMonitoringParameters": {
                                "targetStakeParameters": {
                                    "timeWindow": "3600",
                                    "scalingFactor": "0.05"
                                }
                            },
                            "markPriceConfiguration": {
                                "compositePriceType": "COMPOSITE_PRICE_TYPE_LAST_TRADE"
                            }
                        }
                    }
                }
            ]
        }
    }
}

I had to cut out “priceMonitoringParameters” otherwise the proposal was too long to be posted.
Maybe we can discuss those in this comment section.

"priceMonitoringParameters": {
                                "triggers": [
                                    {
                                        "horizon": "120",
                                        "probability": "0.9999999",
                                        "auctionExtension": "60",
                                    },
                                    {
                                        "horizon": "120",
                                        "probability": "0.9999999",
                                        "auctionExtension": "60",
                                    },
                                    {
                                        "horizon": "120",
                                        "probability": "0.9999999",
                                        "auctionExtension": "60",
                                    },
                                    {
                                        "horizon": "120",
                                        "probability": "0.9999999",
                                        "auctionExtension": "60",
                                    },
                                    {
                                        "horizon": "120",
                                        "probability": "0.9999999",
                                        "auctionExtension": "60",
                                    },
                                    {
                                        "horizon": "200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "300",
                                    },
                                    {
                                        "horizon": "200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "300",
                                    },
                                    {
                                        "horizon": "200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "300",
                                    },
                                    {
                                        "horizon": "200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "300",
                                    },
                                    {
                                        "horizon": "200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "300",
                                    },
                                    {
                                        "horizon": "400",
                                        "probability": "0.9999999",
                                        "auctionExtension": "900",
                                    },
                                    {
                                        "horizon": "400",
                                        "probability": "0.9999999",
                                        "auctionExtension": "900",
                                    },
                                    {
                                        "horizon": "400",
                                        "probability": "0.9999999",
                                        "auctionExtension": "900",
                                    },
                                    {
                                        "horizon": "400",
                                        "probability": "0.9999999",
                                        "auctionExtension": "900",
                                    },
                                    {
                                        "horizon": "400",
                                        "probability": "0.9999999",
                                        "auctionExtension": "900",
                                    },
                                    {
                                        "horizon": "400",
                                        "probability": "0.9999999",
                                        "auctionExtension": "900",
                                    },
                                    {
                                        "horizon": "500",
                                        "probability": "0.9999999",
                                        "auctionExtension": "1800",
                                    },
                                    {
                                        "horizon": "500",
                                        "probability": "0.9999999",
                                        "auctionExtension": "1800",
                                    },
                                    {
                                        "horizon": "500",
                                        "probability": "0.9999999",
                                        "auctionExtension": "1800",
                                    },
                                    {
                                        "horizon": "500",
                                        "probability": "0.9999999",
                                        "auctionExtension": "1800",
                                    },
                                    {
                                        "horizon": "500",
                                        "probability": "0.9999999",
                                        "auctionExtension": "1800",
                                    },
                                    {
                                        "horizon": "500",
                                        "probability": "0.9999999",
                                        "auctionExtension": "1800",
                                    },
                                    {
                                        "horizon": "500",
                                        "probability": "0.9999999",
                                        "auctionExtension": "1800",
                                    },
                                    {
                                        "horizon": "620",
                                        "probability": "0.9999999",
                                        "auctionExtension": "3600",
                                    },
                                    {
                                        "horizon": "620",
                                        "probability": "0.9999999",
                                        "auctionExtension": "3600",
                                    },
                                    {
                                        "horizon": "620",
                                        "probability": "0.9999999",
                                        "auctionExtension": "3600",
                                    },
                                    {
                                        "horizon": "620",
                                        "probability": "0.9999999",
                                        "auctionExtension": "3600",
                                    },
                                    {
                                        "horizon": "620",
                                        "probability": "0.9999999",
                                        "auctionExtension": "3600",
                                    },
                                    {
                                        "horizon": "620",
                                        "probability": "0.9999999",
                                        "auctionExtension": "3600",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "2700",
                                        "probability": "0.9999999",
                                        "auctionExtension": "7200",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
                                    },
                                    {
                                        "horizon": "43200",
                                        "probability": "0.9999999",
                                        "auctionExtension": "28800",
1 Like