Skip to main content

Centrifuge Dashboards

Overview

Centrifuge is a platform for real-world asset tokenization. Through Centrifuge, investors gain access to a diverse range of assets, improving transparency and achieving better insight into their portfolio. Asset managers tokenize their funds and streamline access to necessary service providers and investors, saving cost for fund operations and unlocking new sources of capital.

Centrifuge provides both the infrastructure and ecosystem to tokenize, manage, and invest into a complete, diversified portfolio of real-world assets.

Asset pools are fully collateralized, investors have legal recourse, and the protocol is asset-class agnostic with pools for assets spanning structured credit, real estate, US treasuries, carbon credits, consumer finance, and more.

Centrifuge's ecosystem extends beyond its onchain financial infrastructure, incorporating a DAO (decentralized autonomous organization) supported by a diverse community of finance professionals and developers.

By bringing the entire structured credit market onchain across securitization, tokenization, privacy, governance, and liquidity integrations, Centrifuge is building a more transparent, affordable, and limitless financial system.

Some assets are managed on Ethereum, others are managed on Centrifuge.

Here you'll find a variety of dashboards that help visualize data from the Centrifuge parachain on Polkadot:

  • centrifuge on Polkadot: This dashboard provides details for
  • assets pools on Centrifuge parachain. (As of June 2024: only one)

Key Tables

Data from the centrifuge parachain is organized into several key tables: centrifuge.balances,

  • centrifuge.balances
  • centrifuge.blocks
  • centrifuge.calls
  • centrifuge.events
  • centrifuge.extrinsics
  • centrifuge.transfers

The centrifuge.traces table is created by a snapshot script utilizing Centrifuge API calls to fetch accurate values which would be difficult to calculate from the blockchain events alone.

Start building your own queries using granular data on Dune here.

Useful Queries

Some useful queries for Centrifuge are provided:

Subject AreaQueryDescription
Portfolioquery_3708897Provides details about the assets in the pools
Centrifuge Pool Data Anemoyquery_3708939Provides details for the Anemoy pool (first pool on Centrifuge)

Dune users are encouraged to study the source code of the queries, including parts of a query that may have been commented out for future use.

Uncommenting these parts may accelerate your effort of adopting a query to a slightly different use case.

Getting Started with Queries

To get started with querying data from Centrifuge, you are welcome to use the mentioned queries. You can also use the following DuneSQL queries as examples:

Centrifuge Loan Market Data
WITH portfolio AS (
SELECT
ts,
CAST(JSON_VALUE(c.kv, 'strict $.asset_id.id') AS INT) AS asset_id,
CAST(JSON_VALUE(c.kv, 'strict $.asset_id.pool') AS BIGINT) AS pool_id,
FROM_UNIXTIME(CAST(JSON_VALUE(c.pv, 'strict $.maturity_date') AS BIGINT)) AS maturity_date,
CAST(JSON_VALUE(c.pv, 'strict $.outstanding_interest') AS UINT256) AS outstanding_interest,
CAST(JSON_VALUE(c.pv, 'strict $.outstanding_principal') AS UINT256) AS outstanding_principal,
CAST(JSON_VALUE(c.pv, 'strict $.present_value') AS UINT256) AS present_value,
CAST(JSON_VALUE(c.pv, 'strict $.total_borrowed') AS UINT256) AS total_borrowed,
CAST(JSON_VALUE(c.pv, 'strict $.total_repaid_interest') AS UINT256) AS total_repaid_interest,
CAST(JSON_VALUE(c.pv, 'strict $.total_repaid_principal') AS UINT256) AS total_repaid_principal,
CAST(JSON_VALUE(c.pv, 'strict $.total_repaid_unscheduled') AS UINT256) AS total_repaid_unscheduled,
CAST(JSON_VALUE(c.pv, 'strict $.pool_currency.symbol') AS VARCHAR) AS currency_symbol,
CAST(JSON_VALUE(c.pv, 'strict $.pool_currency.decimals') AS INT) AS decimals,
CAST(JSON_VALUE(c.pv, 'strict $.type') AS VARCHAR) AS type
FROM
centrifuge.traces c
WHERE
track = 'portfolio'
)
SELECT
ts,
asset_id,
pool_id,
maturity_date,
outstanding_interest / POW(10, decimals) AS outstanding_interest,
outstanding_principal / POW(10, decimals) AS outstanding_principal,
present_value / POW(10, decimals) AS present_value,
total_borrowed / POW(10, decimals) AS total_borrowed,
total_repaid_interest / POW(10, decimals) AS total_repaid_interest,
total_repaid_principal / POW(10, decimals) AS total_repaid_principal,
total_repaid_unscheduled / POW(10, decimals) AS total_repaid_unscheduled,
currency_symbol
FROM
portfolio
WHERE
type = 'Other'
ORDER BY
maturity_date DESC;

The query is fairly typical for a parachain query on Dune. It parses details from the centrifuge.traces table, and displays relevant values with suitable labels.

The query uses Dune's native UINT256 type, which allows to deal with very large numbers and still maintain precision.

Query result:

DuneSQL Reference

For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.