{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:ksp:schema:std.offchain_transport:v1", "title": "KSP standard Off-chain Transport configuration", "type": "object", "additionalProperties": false, "required": [ "format_version", "default_profile", "profiles" ], "properties": { "format_version": { "const": 1 }, "default_profile": { "$ref": "#/$defs/profileId" }, "profiles": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/profile" } } }, "$defs": { "profileId": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]*$" }, "enabledOnly": { "type": "object", "additionalProperties": false, "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean" } } }, "coingecko": { "type": "object", "additionalProperties": false, "required": [ "enabled", "access_mode" ], "properties": { "enabled": { "type": "boolean" }, "access_mode": { "enum": [ "demo", "keyless" ] }, "api_key": { "type": "string", "minLength": 1 } }, "allOf": [ { "if": { "properties": { "access_mode": { "const": "keyless" } }, "required": [ "access_mode" ] }, "then": { "not": { "required": [ "api_key" ] } } }, { "if": { "properties": { "enabled": { "const": true }, "access_mode": { "const": "demo" } }, "required": [ "enabled", "access_mode" ] }, "then": { "required": [ "api_key" ] } } ] }, "coinmarketcap": { "type": "object", "additionalProperties": false, "required": [ "enabled", "access_mode" ], "properties": { "enabled": { "type": "boolean" }, "access_mode": { "enum": [ "basic", "keyless" ] }, "api_key": { "type": "string", "minLength": 1 } }, "allOf": [ { "if": { "properties": { "access_mode": { "const": "keyless" } }, "required": [ "access_mode" ] }, "then": { "not": { "required": [ "api_key" ] } } }, { "if": { "properties": { "enabled": { "const": true }, "access_mode": { "const": "basic" } }, "required": [ "enabled", "access_mode" ] }, "then": { "required": [ "api_key" ] } } ] }, "jupiter": { "type": "object", "additionalProperties": false, "required": [ "enabled", "access_mode" ], "properties": { "enabled": { "type": "boolean" }, "access_mode": { "enum": [ "free", "keyless" ] }, "api_key": { "type": "string", "minLength": 1 } }, "allOf": [ { "if": { "properties": { "access_mode": { "const": "keyless" } }, "required": [ "access_mode" ] }, "then": { "not": { "required": [ "api_key" ] } } }, { "if": { "properties": { "enabled": { "const": true }, "access_mode": { "const": "free" } }, "required": [ "enabled", "access_mode" ] }, "then": { "required": [ "api_key" ] } } ] }, "birdeye": { "type": "object", "additionalProperties": false, "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean" }, "api_key": { "type": "string", "minLength": 1 } }, "allOf": [ { "if": { "properties": { "enabled": { "const": true } }, "required": [ "enabled" ] }, "then": { "required": [ "api_key" ] } } ] }, "dexscreener": { "type": "object", "additionalProperties": false, "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean" }, "sol_usd_pair_address": { "type": "string", "minLength": 1 } }, "allOf": [ { "if": { "properties": { "enabled": { "const": true } }, "required": [ "enabled" ] }, "then": { "required": [ "sol_usd_pair_address" ] } } ] }, "marketPrice": { "type": "object", "additionalProperties": false, "required": [ "birdeye", "coinbase_exchange", "coingecko", "coinmarketcap", "coinpaprika", "dexscreener", "jupiter", "kraken" ], "properties": { "birdeye": { "$ref": "#/$defs/birdeye" }, "coinbase_exchange": { "$ref": "#/$defs/enabledOnly" }, "coingecko": { "$ref": "#/$defs/coingecko" }, "coinmarketcap": { "$ref": "#/$defs/coinmarketcap" }, "coinpaprika": { "$ref": "#/$defs/enabledOnly" }, "dexscreener": { "$ref": "#/$defs/dexscreener" }, "jupiter": { "$ref": "#/$defs/jupiter" }, "kraken": { "$ref": "#/$defs/enabledOnly" } } }, "profile": { "type": "object", "additionalProperties": false, "required": [ "profile_id", "market_price" ], "properties": { "profile_id": { "$ref": "#/$defs/profileId" }, "market_price": { "$ref": "#/$defs/marketPrice" } } } } }