DIVA subgraphs

Data emitted as the result of DIVA smart contract interactions is indexed using TheGraph.

The DIVA subgraph can be accessed here:

Pool data

The following query can be used to pull the data for a given pool Id (here pool Id = 5):

{
  pools(where: {id: 5}) {
    id
    referenceAsset
    floor
    inflection
    cap
    supplyInitial
    supplyShort
    supplyLong
    expiryTime
    collateralToken {
      id
      name
      symbol
      decimals
    }
    collateralBalanceShortInitial
    collateralBalanceLongInitial
    collateralBalance
    shortToken {
      id
      name
      symbol
      decimals
    }
    longToken {
      id
      name
      symbol
      decimals
    }
    finalReferenceValue
    statusFinalReferenceValue
    redemptionAmountLongToken
    redemptionAmountShortToken
    statusTimestamp
    dataProvider
    redemptionFee
    settlementFee
    createdBy
    createdAt
    
  }
}

Sample output from the above query:

{
  "data": {
    "pools": [
      {
        "id": "5",
        "referenceAsset": "ETH/USD",
        "floor": "2000000000000000000000",
        "inflection": "2000000000000000000000",
        "cap": "4500000000000000000000",
        "supplyInitial": "100000000000000000000",
        "supplyShort": "100000000000000000000",
        "supplyLong": "100000000000000000000",
        "expiryTime": "1647363501",
        "collateralToken": {
          "id": "0x867e53fede91d27101e062bf7002143ebaea3e30",
          "name": "WAGMI18",
          "symbol": "WAGMI18",
          "decimals": 18
        },
        "collateralBalanceShortInitial": "50000000000000000000",
        "collateralBalanceLongInitial": "50000000000000000000",
        "collateralBalance": "100000000000000000000",
        "shortToken": {
          "id": "0x4f946061de10a369de7e689f368053959a67a58e",
          "name": "S5",
          "symbol": "S5",
          "decimals": 18
        },
        "longToken": {
          "id": "0x33aa4370599755b83915dcc87c8eced8a5b9b1d2",
          "name": "L5",
          "symbol": "L5",
          "decimals": 18
        },
        "finalReferenceValue": "80000000000000000000",
        "statusFinalReferenceValue": "Challenged",
        "redemptionAmountLongToken": "0",
        "redemptionAmountShortToken": "0",
        "statusTimestamp": "1647381997",
        "dataProvider": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
        "redemptionFee": "2500000000000000",
        "settlementFee": "500000000000000",
        "createdBy": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
        "createdAt": "1647363941"
      }
    ]
  }
}

Data providers

Data providers that want to listen to pools where they are selected as the data provider can use the following reduced version of the pool query (here using address 0x9adefeb576dcf52f5220709c1b267d89d5208d78 as the data provider, all in small letters):

{
  pools (where: {dataProvider: "0x9adefeb576dcf52f5220709c1b267d89d5208d78"}) {
    id
    dataProvider
    referenceAsset
    floor
    inflection
    cap
    expiryTime
    createdAt
  }
}

Sample output of the above query:

{
  "data": {
    "pools": [
      {
        "id": "10",
        "dataProvider": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
        "referenceAsset": "BTC/USD",
        "floor": "60000000000000000000000",
        "inflection": "70000000000000000000000",
        "cap": "90000000000000000000000",
        "expiryTime": "1648112254",
        "createdAt": "1648022403"
      },
      {
        "id": "13",
        "dataProvider": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
        "referenceAsset": "BTC/USD",
        "floor": "40000000000000000000000",
        "inflection": "60000000000000000000000",
        "cap": "80000000000000000000000",
        "expiryTime": "1651269610",
        "createdAt": "1648197988"
      }
    ]
  }
}

Fees

Query to pull the fee claims for a given address (has to be lower case!):

feeRecipients(where: {id: "0x9adefeb576dcf52f5220709c1b267d89d5208d78"}) {
    id
    collateralTokens {
      amount
      collateralToken {
        id
        name
        symbol
        decimals
      }
    }
  }

Sample output from the above query:

{
  "data": {
    "feeRecipients": [
      {
        "id": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
        "collateralTokens": [
          {
            "amount": "32695586760280840",
            "collateralToken": {
              "id": "0x867e53fede91d27101e062bf7002143ebaea3e30",
              "name": "WAGMI18",
              "symbol": "WAGMI18"
            }
          },
          {
            "amount": "30000",
            "collateralToken": {
              "id": "0x8ca8de48c4507fa54a83dde7ac68097e87520eec",
              "name": "WAGMI6",
              "symbol": "WAGMI6"
            }
          }
        ]
      }
    ]
  }
}

Challenge

Query to retrieve the submitted challenges for a given poolId (here poolId = 5):

{
  challenges(where: {pool: "5"}) {
    challengedBy
    proposedFinalReferenceValue
    pool {
      id
    }
  }
}

Sample output of above query:

{
  "data": {
    "challenges": [
      {
        "challengedBy": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
        "proposedFinalReferenceValue": "1670000000000000000000",
        "pool": {
          "id": "5"
        }
      }
    ]
  }
}

User positions

Query to retrieve a shortlist of position tokens that a user may own. The shortlist is constructed based on user interactions with the DIVA Protocol functions as well as 0x protocol. Note that position tokens received via different avenues (e.g., Uniswap or simple transfer) will not appear in the list.

{
  user(id: "0x9adefeb576dcf52f5220709c1b267d89d5208d78" ){
    id
    positionTokens(first: 100,
      orderDirection: desc,
      orderBy: receivedAt,) {
        receivedAt,
        positionToken {
        id
        name
        symbol
        decimals
        owner
        pool {
          id
          referenceAsset
          floor
          inflection
          cap
          supplyInitial
          supplyShort
          supplyLong
          expiryTime
          collateralToken {
            id
            name
            decimals
            symbol
          }
  				collateralBalanceLongInitial
          collateralBalanceShortInitial
          collateralBalance
          shortToken {
            id
            name
            symbol
            decimals
            owner
          }
          longToken {
            id
            name
            symbol
            decimals
            owner
          }
          finalReferenceValue
          statusFinalReferenceValue
          redemptionAmountLongToken
          redemptionAmountShortToken
          statusTimestamp
          dataProvider
          redemptionFee
          settlementFee
          createdBy
          createdAt
          capacity
          expiryTime
          challenges {
            challengedBy
            proposedFinalReferenceValue
          }
        }
      }
    }
  }
}

Sample output of above query

{
  "data": {
    "user": {
      "id": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
      "positionTokens": [
        {
          "receivedAt": "1660894980",
          "positionToken": {
            "id": "0xac9bfbeadb47ab2bd8013eb61e1a636fe04aaeb1",
            "name": "S54459",
            "symbol": "S54459",
            "decimals": 18,
            "owner": "0xebbaa31b1ebd727a1a42e71dc15e304ad8905211",
            "pool": {
              "id": "54459",
              "referenceAsset": "REP/USD",
              "floor": "10000000000000000000",
              "inflection": "15000000000000000000",
              "cap": "20000000000000000000",
              "supplyInitial": "10000000000000000000",
              "supplyShort": "10000000000000000000",
              "supplyLong": "10000000000000000000",
              "expiryTime": "1660895400",
              "collateralToken": {
                "id": "0x134e62bd2ee247d4186a1fdbaa9e076cb26c1355",
                "name": "DIVA USD",
                "decimals": 18,
                "symbol": "dUSD"
              },
              "collateralBalanceLongInitial": "5000000000000000000",
              "collateralBalanceShortInitial": "5000000000000000000",
              "collateralBalance": "10000000000000000000",
              "shortToken": {
                "id": "0xac9bfbeadb47ab2bd8013eb61e1a636fe04aaeb1",
                "name": "S54459",
                "symbol": "S54459",
                "decimals": 18,
                "owner": "0xebbaa31b1ebd727a1a42e71dc15e304ad8905211"
              },
              "longToken": {
                "id": "0x88f4b382c2777ac2ba2e3b5c4e7c1d0215074aed",
                "name": "L54459",
                "symbol": "L54459",
                "decimals": 18,
                "owner": "0xebbaa31b1ebd727a1a42e71dc15e304ad8905211"
              },
              "finalReferenceValue": "0",
              "statusFinalReferenceValue": "Open",
              "redemptionAmountLongToken": "0",
              "redemptionAmountShortToken": "0",
              "statusTimestamp": "1660894980",
              "dataProvider": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
              "redemptionFee": "2500000000000000",
              "settlementFee": "500000000000000",
              "createdBy": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
              "createdAt": "1660894980",
              "capacity": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
              "challenges": []
            }
          }
        },
        {
          "receivedAt": "1660894980",
          "positionToken": {
            "id": "0x88f4b382c2777ac2ba2e3b5c4e7c1d0215074aed",
            "name": "L54459",
            "symbol": "L54459",
            "decimals": 18,
            "owner": "0xebbaa31b1ebd727a1a42e71dc15e304ad8905211",
            "pool": {
              "id": "54459",
              "referenceAsset": "REP/USD",
              "floor": "10000000000000000000",
              "inflection": "15000000000000000000",
              "cap": "20000000000000000000",
              "supplyInitial": "10000000000000000000",
              "supplyShort": "10000000000000000000",
              "supplyLong": "10000000000000000000",
              "expiryTime": "1660895400",
              "collateralToken": {
                "id": "0x134e62bd2ee247d4186a1fdbaa9e076cb26c1355",
                "name": "DIVA USD",
                "decimals": 18,
                "symbol": "dUSD"
              },
              "collateralBalanceLongInitial": "5000000000000000000",
              "collateralBalanceShortInitial": "5000000000000000000",
              "collateralBalance": "10000000000000000000",
              "shortToken": {
                "id": "0xac9bfbeadb47ab2bd8013eb61e1a636fe04aaeb1",
                "name": "S54459",
                "symbol": "S54459",
                "decimals": 18,
                "owner": "0xebbaa31b1ebd727a1a42e71dc15e304ad8905211"
              },
              "longToken": {
                "id": "0x88f4b382c2777ac2ba2e3b5c4e7c1d0215074aed",
                "name": "L54459",
                "symbol": "L54459",
                "decimals": 18,
                "owner": "0xebbaa31b1ebd727a1a42e71dc15e304ad8905211"
              },
              "finalReferenceValue": "0",
              "statusFinalReferenceValue": "Open",
              "redemptionAmountLongToken": "0",
              "redemptionAmountShortToken": "0",
              "statusTimestamp": "1660894980",
              "dataProvider": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
              "redemptionFee": "2500000000000000",
              "settlementFee": "500000000000000",
              "createdBy": "0x9adefeb576dcf52f5220709c1b267d89d5208d78",
              "createdAt": "1660894980",
              "capacity": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
              "challenges": []
            }
          }
        },
        {...},
        {...}
      ]
    }
  }
}

Last updated