{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "InstantiateMsg", "type": "object", "required": [ "ask_expiry", "bid_expiry", "bid_removal_reward_bps", "listing_fee", "max_finders_fee_bps", "min_price", "operators", "stale_bid_duration", "trading_fee_bps" ], "properties": { "ask_expiry": { "description": "Valid time range for Asks (min, max) in seconds", "allOf": [ { "$ref": "#/definitions/ExpiryRange" } ] }, "bid_expiry": { "description": "Valid time range for Bids (min, max) in seconds", "allOf": [ { "$ref": "#/definitions/ExpiryRange" } ] }, "bid_removal_reward_bps": { "description": "Stale bid removal reward", "type": "integer", "format": "uint64", "minimum": 0.0 }, "listing_fee": { "description": "Listing fee to reduce spam", "allOf": [ { "$ref": "#/definitions/Uint128" } ] }, "max_finders_fee_bps": { "description": "Max basis points for the finders fee", "type": "integer", "format": "uint64", "minimum": 0.0 }, "min_price": { "description": "Min value for bids and asks", "allOf": [ { "$ref": "#/definitions/Uint128" } ] }, "operators": { "description": "Operators are entites that are responsible for maintaining the active state of Asks. They listen to NFT transfer events, and update the active state of Asks.", "type": "array", "items": { "type": "string" } }, "sale_hook": { "description": "The address of the airdrop claim contract to detect sales", "type": [ "string", "null" ] }, "stale_bid_duration": { "description": "Duration after expiry when a bid becomes stale (in seconds)", "allOf": [ { "$ref": "#/definitions/Duration" } ] }, "trading_fee_bps": { "description": "Fair Burn fee for winning bids 0.25% = 25, 0.5% = 50, 1% = 100, 2.5% = 250", "type": "integer", "format": "uint64", "minimum": 0.0 } }, "definitions": { "Duration": { "description": "Duration is a delta of time. You can add it to a BlockInfo or Expiration to move that further in the future. Note that an height-based Duration and a time-based Expiration cannot be combined", "oneOf": [ { "type": "object", "required": [ "height" ], "properties": { "height": { "type": "integer", "format": "uint64", "minimum": 0.0 } }, "additionalProperties": false }, { "description": "Time in seconds", "type": "object", "required": [ "time" ], "properties": { "time": { "type": "integer", "format": "uint64", "minimum": 0.0 } }, "additionalProperties": false } ] }, "ExpiryRange": { "type": "object", "required": [ "max", "min" ], "properties": { "max": { "type": "integer", "format": "uint64", "minimum": 0.0 }, "min": { "type": "integer", "format": "uint64", "minimum": 0.0 } } }, "Uint128": { "description": "A thin wrapper around u128 that is using strings for JSON encoding/decoding, such that the full u128 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u128` to get the value out:\n\n``` # use cosmwasm_std::Uint128; let a = Uint128::from(123u128); assert_eq!(a.u128(), 123);\n\nlet b = Uint128::from(42u64); assert_eq!(b.u128(), 42);\n\nlet c = Uint128::from(70u32); assert_eq!(c.u128(), 70); ```", "type": "string" } } }