BarnBridge · Schema

SmartAlphaPool

A BarnBridge SMART Alpha price-volatility management pool.

DeFiRisk TokenizationYieldBlockchainEthereumSMART YieldStructured ProductsTranches

Properties

Name Type Description
poolName string
poolAddress string
poolToken object
juniorTokenAddress string
seniorTokenAddress string
oracleAddress string
oracleAssetSymbol string
seniorRateModelAddress string
accountingModelAddress string
epoch1Start integer Unix timestamp of the start of epoch 1.
epochDuration integer Duration of each epoch in seconds.
state object
tvl object
userHasActivePosition booleannull Whether the queried user has an active position; null if no user address was provided.
View JSON Schema on GitHub

JSON Schema

smart-alpha-pool.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/barnbridge/main/json-schema/smart-alpha-pool.json",
  "title": "SmartAlphaPool",
  "description": "A BarnBridge SMART Alpha price-volatility management pool.",
  "type": "object",
  "properties": {
    "poolName": {
      "type": "string",
      "example": "WBTC-USD"
    },
    "poolAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "poolToken": {
      "$ref": "#/$defs/Token"
    },
    "juniorTokenAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "seniorTokenAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "oracleAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "oracleAssetSymbol": {
      "type": "string",
      "example": "BTC/USD"
    },
    "seniorRateModelAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "accountingModelAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "epoch1Start": {
      "type": "integer",
      "description": "Unix timestamp of the start of epoch 1."
    },
    "epochDuration": {
      "type": "integer",
      "description": "Duration of each epoch in seconds."
    },
    "state": {
      "$ref": "#/$defs/PoolState"
    },
    "tvl": {
      "$ref": "#/$defs/PoolTVL"
    },
    "userHasActivePosition": {
      "type": ["boolean", "null"],
      "description": "Whether the queried user has an active position; null if no user address was provided."
    }
  },
  "required": ["poolName", "poolAddress", "poolToken", "state", "tvl"],
  "$defs": {
    "Token": {
      "type": "object",
      "properties": {
        "address": { "type": "string" },
        "symbol": { "type": "string" },
        "decimals": { "type": "integer" }
      }
    },
    "PoolState": {
      "type": "object",
      "properties": {
        "epoch": { "type": "integer" },
        "seniorLiquidity": { "type": "string" },
        "juniorLiquidity": { "type": "string" },
        "upsideExposureRate": { "type": "string" },
        "downsideProtectionRate": { "type": "string" }
      }
    },
    "PoolTVL": {
      "type": "object",
      "properties": {
        "epochJuniorTVL": { "type": "number" },
        "epochSeniorTVL": { "type": "number" },
        "juniorEntryQueueTVL": { "type": "number" },
        "seniorEntryQueueTVL": { "type": "number" },
        "juniorExitQueueTVL": { "type": "number" },
        "seniorExitQueueTVL": { "type": "number" },
        "juniorExitedTVL": { "type": "number" },
        "seniorExitedTVL": { "type": "number" }
      }
    }
  }
}