Assigned: Chainsight BNT-1 - Asset Rating Oracle


Status: Assigned
Size: 1,000 ICP Γ— 2 slots (We will select up to two teams)
Deadline: - (First come, first served)

Background of this bounty

Chainsight provides a tool to collect and process data, which is used within your on-chain application. One of the most essential parts is an asset rating, where some assets would be scored based on the historical and real-time updated data you can handle with Chainsight. In fact, the definition of the asset rating should be changed according to the situation or user demand. For instance, liquidity stability and price stability are different things. However, it would be beneficial for the ecosystem to build a general-purpose asset rating that can be seen from other applications on production because it might inspire someone who wants to create something new based on the asset rating oracle. We expect this bounty would be a trigger to the upcoming use cases.

What we want in this bounty

  • The purpose of this bounty is to develop an asset rating to asset some ERC-20 tokens based on on-chain data. It is preferable that the tokens be popular ones that are commonly used in many protocols (e.g. DAI, USDC, UNI) because anyone can understand and use them, but you can choose whatever.
  • Currently, only the EVM chains are supported, and you need to collect data from an EVM chain and process them on ICP.
  • Asset rating must be expressed quantitatively. However, based on the quantitative score, we recommend that it be expressed as a one-dimensional symbol with the quantitative data, such as AA or B+ to be understood easily by anyone.
  • You may define any asset rating, but you must have a hypothesis as to whom the asset rating is beneficial.
  • At a minimum, four assets must be selected and their data collected.
  • Only one assessment item is acceptable. However, it would be much greater if multiple assessment items were combined to produce an overall assessment.
  • We expect you to design so that one canister has the minimum responsibility. For example, separate a canister that only collects data on a token from a canister that assesses them based on the data. This is with the expectation that your canisters will be reused by someone else in the future.
  • Template code can be generated from Chainsight CLI. The project should be created based on this, and the final code must be open-sourced.
  • You must use the Chainsight CLI and provide feedback on it; if the Chainsight CLI is not available for some reason, you may create your own Canister after explaining the reason to the team.
  • You don’t need any front-end-related code. After launching Chainsight Dashboard, your asset rating can be searched on the dashboard.

Example code for asset rating

How to apply

  1. Please fill out the form:
  2. Mention to me in this thread.
  3. We will review and assign to up to two teams.

Payment Process

  1. Share the final deliverables on this thread.
  2. We will review the final deliverables considering what you were planning to build in the application form.
  3. We will send 1,000 ICP to your account.

Final Deliverables

  1. CanisterIDs deployed on IC
  2. GitHub repos
  3. Docs (README is fine)
    1. What type of asset rating?
    2. Who is it for?
    3. What are the unique points?
  4. Feedback to Chainsight CLI

As Detable team, we want to inform you that we just submitted our application.


Hi. I have also submitted an application.


Awesome! Thank you so much for the submission @furkan @timk11
We will review and get back to you soon!


Hello, I have submitted the application form.


Thank you @hude for the submission. Let us review in a few days!

1 Like

Can we consider 4 different tokens in addition to $LQTY, $UNI, and $AAVE?

At a minimum, four assets must be selected and their data collected.


Sure. I will add $LDO and, if possible, $DAI.


Thank you guys for your application @furkan @timk11 @hude
I am happy to get applications from three different perspectives. I originally intended to give two teams the right to participate in the bounty, but since all of the projects are interesting, I would like to increase the number of participation slots from 2 to 3, providing 1,000 ICP for each after the completion. Now, I’ll change the status Open to Assigned. Please post any questions in this thread when you need.

1 Like

Thanks for the opportunity! I look forward to getting stuck into it.

1 Like

@furkan @timk11 @hude Once again, thank you guys for your participation. There are still few docs explaining Chainsight and how to use CLI since it is beta, which would sometimes be difficult to understand when developing at this stage. Considering that, we propose the following support to you guys:

  1. You can ask questions to the Chainsight core team on Slack.

If you need, you can connect Slack with us and ask questions directly to the Chainsight team. Feel free to ask about development issues, component designs, or whatever.

  1. A sample project made by CLI is now available

The sample code for price oracle developed with Chainsight CLI is now public. We hope this code will help your development.

If you want any other specific sample code, please request details in this thread. We may not be able to develop it right away due to priorities, but we intend to receive important feedback from you.


Thanks. I’ll check out the sample project. I haven’t used Slack before but I’ll hop onto it. How do I find you on it?

@timk11 Please let me know once you sign up. I’ll send an invitation to your email.

I’ve signed up now. Thanks.

@hawk Can you also email or DM me the Google form that I submitted? I have all the details written down in a couple of places but I didn’t save a copy of the submitted version before I sent it.

Question: Can a Solidity contract that consumes gas be used as part of a Chainsight project? If so, how is the gas paid insofar as what needs to be included in the canister code?

I’ve put together a Solidity contract in order to compile the required on-chain data (from an EVM-based chain) but after deploying it locally with Remix I realised that gas is needed if a view function is called by another function, and for some other things. I suppose one option is to move all of the gas-consuming logic out of the contract and put it in canisters, but I’m wondering if that’s the only option.

Hey @timk11,
If you want to write gas-consuming logic within a view function on EVM, it should definitely be outside the view function. If you are facing some troubles to write the code to fetch something from a solidity smart contract to a canister with Chainsight CLI, I suggest you refer to this sample logic:

Also, you can ask more questions on Slack.

Thanks @hawk. I’ll have a closer look at that.

I still can’t access Slack. This is what I’m getting:

@hawk I just sent you an update and questions through Telegram.

1 Like

I’m having some trouble with csx build. I managed to solve a few errors but there’s one now that I’m stuck on.

Here’s where I’m up to:

~/ic/csx/uniswap_edpr$ tree
β”œβ”€β”€ artifacts
β”‚   β”œβ”€β”€ __interfaces
β”‚   β”‚   └── UniswapV3Pool.json
β”‚   β”œβ”€β”€ pool_fees_usdceth_0_3
β”‚   β”‚   β”œβ”€β”€ Cargo.toml
β”‚   β”‚   └── src
β”‚   β”‚       β”œβ”€β”€
β”‚   β”‚       └──
β”‚   └── tcumul_28x6hr_usdceth_0_3
β”‚       └── src
β”‚           └──
β”œβ”€β”€ components
β”‚   β”œβ”€β”€ algorithm_lens_usdceth_0_3.yaml
β”‚   β”œβ”€β”€ pool_fees_usdceth_0_3.yaml
β”‚   β”œβ”€β”€ relayer_usdceth_0_3.yaml
β”‚   β”œβ”€β”€ tcumul_28x6hr_usdceth_0_3.yaml
β”‚   β”œβ”€β”€ tcumul_30_min_usdceth_0_3.yaml
β”‚   └── v3pool_usdceth_0_3.yaml
β”œβ”€β”€ interfaces
β”‚   β”œβ”€β”€ UniswapV3Pool.json
β”‚   └── sample.did
└── project.yaml

8 directories, 14 files
~/ic/csx/uniswap_edpr$ csx build
Nov 15 07:43:15.477 INFO Building project...
Nov 15 07:43:15.481 INFO Processing for codegen
Nov 15 07:43:15.490 INFO ./artifacts/pool_fees_usdceth_0_3/src/ already exists, skip creating
Nov 15 07:43:15.490 INFO project Cargo.toml already exists, skip creating
Nov 15 07:43:15.492 INFO Interface file "UniswapV3Pool.json" copied by user's interface
Nov 15 07:43:15.511 ERRO ic_solidity_bindgen::internal::Unimplemented

./artifacts/tcumul_28x6hr_usdceth_0_3/src/ is an empty file.

Any ideas as to why I’m getting this error?