{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "InstantiateMsg", "type": "object", "required": [ "decimals", "initial_balances", "name", "symbol" ], "properties": { "decimals": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "initial_balances": { "type": "array", "items": { "$ref": "#/definitions/Cw20Coin" } }, "marketing": { "anyOf": [ { "$ref": "#/definitions/InstantiateMarketingInfo" }, { "type": "null" } ] }, "mint": { "anyOf": [ { "$ref": "#/definitions/MinterResponse" }, { "type": "null" } ] }, "name": { "type": "string" }, "symbol": { "type": "string" } }, "definitions": { "Binary": { "description": "Binary is a wrapper around Vec to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec", "type": "string" }, "Cw20Coin": { "type": "object", "required": [ "address", "amount" ], "properties": { "address": { "type": "string" }, "amount": { "$ref": "#/definitions/Uint128" } } }, "EmbeddedLogo": { "description": "This is used to store the logo on the blockchain in an accepted format. Enforce maximum size of 5KB on all variants.", "anyOf": [ { "description": "Store the Logo as an SVG file. The content must conform to the spec at https://en.wikipedia.org/wiki/Scalable_Vector_Graphics (The contract should do some light-weight sanity-check validation)", "type": "object", "required": [ "svg" ], "properties": { "svg": { "$ref": "#/definitions/Binary" } }, "additionalProperties": false }, { "description": "Store the Logo as a PNG file. This will likely only support up to 64x64 or so within the 5KB limit.", "type": "object", "required": [ "png" ], "properties": { "png": { "$ref": "#/definitions/Binary" } }, "additionalProperties": false } ] }, "InstantiateMarketingInfo": { "type": "object", "properties": { "description": { "type": [ "string", "null" ] }, "logo": { "anyOf": [ { "$ref": "#/definitions/Logo" }, { "type": "null" } ] }, "marketing": { "type": [ "string", "null" ] }, "project": { "type": [ "string", "null" ] } } }, "Logo": { "description": "This is used for uploading logo data, or setting it in InstantiateData", "anyOf": [ { "description": "A reference to an externally hosted logo. Must be a valid HTTP or HTTPS URL.", "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string" } }, "additionalProperties": false }, { "description": "Logo content stored on the blockchain. Enforce maximum size of 5KB on all variants", "type": "object", "required": [ "embedded" ], "properties": { "embedded": { "$ref": "#/definitions/EmbeddedLogo" } }, "additionalProperties": false } ] }, "MinterResponse": { "type": "object", "required": [ "minter" ], "properties": { "cap": { "description": "cap is a hard cap on total supply that can be achieved by minting. Note that this refers to total_supply. If None, there is unlimited cap.", "anyOf": [ { "$ref": "#/definitions/Uint128" }, { "type": "null" } ] }, "minter": { "type": "string" } } }, "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" } } }