Do you intend Rosetta to be a universal API for your needs as an exchange? Or do you intend Rosetta to be a universal API for all things blockchain? At Kadena we’re trying to flesh out a clearer picture of how different components of our ecosystem will relate to each other and Rosetta is becoming a key piece of the puzzle. It would help us to hear what your plans are. For instance, are you stopping with the more recently released Construction API, or do you have plans to add things like perhaps a Node API, Wallet API, etc?
This is a GREAT question @mightybyte!
In the near term, we (Coinbase) plan to use Rosetta to support all new blockchains we add to our platform. From this prospective, we expect implementations to minimally support all needs “an exchange” could have (i.e. account creation, transfers, staking, governance) on their “first pass”.
That being said, we plan to continue supporting/developing the specification and tooling to get as close as possible to being the universal API “for all things blockchain”. We encourage implementers to make multiple passes at their implementation as new support or features are added to Rosetta (naturally we try to avoid breaking changes at all costs).
There is a risk to trying to become “everything to everyone” where we create a standard that is more complex than just adding blockchains individually (just take a look at some of the payments standards for banks like ISO 15022 or ISO 2022). The more complex the interaction, the less generic interfaces tend to help IMO (and the more they tend to hurt).
We approached Rosetta from the perspective of trying to solve problems we understood well and didn’t want to “boil the ocean” with more nuanced activity that we had no experience in. We felt these efforts could be community-driven by teams that did have more opinions.
Awesome to hear that you’ve found Rosetta to be useful for your ecosystem building.
We plan to continue adding more tools on top of the
Data API and
Construction API but feel pretty good about them being the 2 required primitives on the “base layer”. I do see a world where we could add other “optional” APIs here but this story isn’t as developed yet (to be clear).
We strongly believe tools like a Wallet SDK (that orchestrates the construction and signing of transactions + manages keys) should be built on top of the Rosetta API. We have been working hard to create some of these tools in the
rosetta-sdk-go and the
rosetta-cli. If your team develops anything in this vein, we invite you to share it in #ecosystem and we may link it on the website!
Could you elaborate more on what you mean here by
Node API? Is there something important missing from the
Data API or are you referring more to a
@jai.prasad may have some more thoughts on all of this!