When exactly will Rosetta API go live

Rosetta API is a prerequisite for ICP tokens to go live on CEX, Dfinity Foundation should pay attention to the development of Rosetta API and try to realize this feature during the bull market

6 Likes

Seems that will delay as always, you must @mariop who I believe is leading this development to reply.

1 Like

Perhaps this is the most important question now. BTC has reached a new high, and the bull market is imminent. I hope IC’s ecological currency can be listed on exchanges as soon as possible.

1 Like

If after 3 years getting wrecked, we arrive to the bull season and miss the train because the Rosetta team can not get the f***** work done, I would fire the whole team.
3 F*** YEARS !!!

2 Likes

Hi @gatsby_esp ,

I think it is reasonable to be satisfied or dissatisfied for any progress. That is very fair play. Asking what has delayed? What is blocking? what is being done to address it? Expressing all these questions is fair. You can accept or not accept the answers from folks working on it. All that is fair play!

However, the rest of the message is ad hominem. I am leaving it as a warning for the future, but ask you please moderate for future posts.

Can I ask you please tone down the tenor so we can have more reasonable discussion in the dev forum? I have said my fair share of stuff on the internet, so I am not casting blame, just doing my job as admin.

8 Likes

Hi,
ICRC Rosetta is in the final stages of development. We started working on it at the end of November 2023 and we are feature complete. We are testing it against the various Ledgers (SNSes, ckBTC and ckETH). After that the main things missing are addressing performance issues and perform a security review.
The ETA is around a month from now.

20 Likes

Will all of the ICP’s altcoins be able to end up in CEX or just the ones on NNS?

Got my answer, all ICRC-1’s if info was correct

Being part of the NNS is not a requirement for Rosetta to work. The only requirement is that the Ledger of the altcoin is compatible with the ICRC Ledger that we developed for ck and SNS Tokens (this one). If the token is using that Ledger then they can use Rosetta out-of-the-box.

3 Likes

Could you specify what exactly it is that makes a ledger compatible? For example is there a minimal did file describing the sub-interface that the ledger needs to provide?

The list of endpoints required are all the ICRC-1 and ICRC-2 endpoints plus the following custom endpoints:

get_blocks : (GetBlocksArgs) -> (GetBlocksResponse) query;  
get_data_certificate : () -> (DataCertificate) query;

You can find the precise definitions of each one of the endpoints in the Ledger’s did file.

Note that once ICRC-3 is voted, we will add support for it an alternative to get_blocks and get_data_certificate meaning that the Ledger is supported if it supports either ICRC-3 or get_blocks plus get_data_certificate.

1 Like

Thanks! Just double-checking, really all endpoints are required, right?

1 Like

yes. The exceptions are

  1. icrc1_balance_of is not going to be used because Rosetta recomputes the balances locally in order to provide them at each height.
  2. all the metadata endpoint that are redundant with icrc1_metadata, e.g. icrc1_symbol, because icrc1_metadata already provides all the info.
  3. icrc2_allowance as we don’t need to check the allowance from Rosetta.
1 Like

Thank you. Will be possible then to fetch transactions and other information like account balance form Rosetta API as we do now with ICP ledger? How it will work? Can we do that using an existing rosetta node (the one I use for fetch ICP data) or it will be necessary to have different rosetta nodes for different tokens?

1 Like

ICRC Rosetta implements a big part of the Rosetta API so you can fetch transactions and account balances. Transactions can be fetched via /block/transaction or /search/transactions. Account balances can be fetched via /account/balance.

The ICRC Rosetta is different from the ICP Rosetta. It’s one instance per token but it’s very lightweight. You can run multiple of them of the same machine easily, e.g. at DFINITY we are running the ICRC Rosetta for SNS OC, ckTESTBTC, ckBTC, ckSepoliaETH and ckETH on the same server.

1 Like

Thank you very much Mario for the answer. So if I understand correctly I can run multiple rosetta nodes on the same machine in different docker containers, right?

At the moment the docker I run it as follows to connect to ICP:

docker run
–interactive
–tty
–publish 8081:8081
–detach
–name rosetta-node
-v rosetta-data:/path/to/rosetta/data
–restart always
dfinity/rosetta-api
–mainnet
–not-whitelisted

I guess I will obviously have to create a separate volume and publish it on a different port, but other than that how do I run it for a specific token? What tokens are supported to date?

Also, I connect to the node with a php where I have some code that helps me retrieve transactions based on block height:

$requestData = json_encode(array(
        "network_identifier" => array(
            "blockchain" => "Internet Computer",
            "network" => "00000000000000020101"
        ),
        "block_identifier" => array(
            "index" => $blockIndex
        )
    ));

In this case for ICP. How do I change these settings based on the token I want to analyze?

I know these may seem like obvious questions to experienced eyes, but personally I am a newbie. So thank you very much for your help.

Yes.

You’ll need to pass the canister id of the Ledger too. There are many different ICRC Ledgers.

The code is pretty much the same but I suggest to retrieve the network identifier from /network/list. /network/list returns a list which always contains one element and that’s the one you want to pass.

No problem really :). There are no obvious questions and I’m happy to support.

1 Like

Thank you Mario, I’m looking forward for the go live of this feature. Please keep us updated.

3 Likes

To be honest, this one should be the first priority to save the ecosystem.

5 Likes

Mario, would the API going live make it possible for native stablecoins to exist on ICP. The likes of USDC/USDT/DAI?

Circle can deploy USDC on ICP using the ICRC standard if they choose to?

It is one of the priorities.

2 Likes