Introducing Celatone

Sawit Trisirisatayawong
Alles Labs
4 min readFeb 16, 2023

--

Today, we’re thrilled to announce the launch of Celatone: a smart contract explorer for a smart contract powered Cosmos ecosystem and a developer’s portal to on-chain smart contract development.

With Celatone, users can easily find, deploy, interact, and organize on-chain CosmWasm contracts on all supported chains through one single interface.

With this release, we’re supporting CosmWasm on Osmosis mainnet and testnet: https://celatone.osmosis.zone.

Celatone

Our goal for Celatone is twofold:

For existing developers, we aim to assist existing developers to make their development process as seamless, simple, and efficient as possible.

For newcomers to the CosmWasm ecosystem, Celatone will enable them to quickly get started and help them learn and familiarize themselves with the different parts of the development process.

Features

Explore

Celatone allows users to easily explore and find on-chain codes, contracts, and other related data. Users can currently search for IDs and contract addresses to view information.

Users can also view codes and contracts they’ve previously stored/instantiated through their wallet. We will also be adding additional data and pages for accounts, transactions, and other details in future releases.

Celatone: Code and Contract Details Page

For mainnet networks, we also shows a “Public Projects” section that displays the list of protocols, codes, and contracts deployed on the network.

Celatone: Public Projects

Deploy

Developers can easily store codes and instantiate contracts through our front-end in one seamless flow. For permissioned CosmWasm networks, we will also provide an interface to create and submit the necessary governance proposals in an upcoming release.

Celatone: Store and Instantiate Contracts

Interact

With Celatone, users can easily query data from contracts and send transactions to them. No more having to interact with chain endpoints. No more having to find ways to retrieve the queries and messages available. No more having to write your own scripts. Celatone abstracts all of these complexities away, allowing you to focus on the actual task at hand.

With Celatone, the process of performing a query or sending transactions on a contract is as simple as

  • Pasting the desired contract address into the search bar at the top of the page
  • Selecting the query or MsgExecuteContract you want from the provided list
  • Clicking “Query”/“Execute” or hitting ctrl-Enter
Celatone: Query and Execute Contracts

Celatone also automatically generate code snippets for both queries and transactions in various languages and frameworks. Currently supports:

  • CLI (chain daemon)
  • Python
  • JavaScript/TypeScript (CosmJS)
Celatone: Code Snippet Generation

Organize

Developers can also save and organize codes and contracts into custom lists and folders. They can also further assign tags and custom names to any codes and data for faster searchability. When you have a wallet connected to Celatone, the webapp will automatically show you a list of codes you’ve previously stored and the contracts you’ve instantiated on that chain.

Celatone: Lists, Folders, and Tags

Motivation

Our goal with Celatone is to make CosmWasm development more accessible. With that in mind, our goal is to make the CosmWasm development

  • simpler
  • more seamless
  • more approachable

Making it simpler

Throughout the smart contract development lifecycle, there are various tasks that developers need to do ad infinitum. This includes:

  • deploying contracts
  • querying contract state data
  • sending transactions to contract

And yet these processes are more involved and time-consuming than they can be.

Take interacting with contracts. To do so, developers would first need to find the list of the messages that the desired contract exposes. And depending on whether the contract is open-sourced, this information may or may not be readily available.

Once they have the message type, they still need to actually send the transaction. This involves either utilizing the chain’s client daemon and painstakingly inputting the necessary details (chain IDs, RPC URLs, etc.) or writing custom scripts. This applies even when interacting with contracts that they deployed themselves.

Both of these steps take developers out of their main focus of developing the contracts and simply increase the time and effort required to complete the process overall.

Making it more seamless

Let’s take an example of deploying a CosmWasm contract on-chain. Barring writing a deploy script yourself, your only other main option is to use the chain’s client daemon. Both of these options are far from ideal. Finding an available RPC node for the network, using the right client daemon/library, pasting transaction hashes into an explorer or LCD endpoint to get the code ID or contract address, all creates friction.

Making it more approachable

Lastly, tools should make development more approachable, especially for newcomers.

For newcomers, having to go through the tasks of installing the necessary tools, learning the features available, and configuring the necessary settings results in a significantly high learning curve. In certain cases, this could outright deter and discourage them from continuing to develop with the framework.

Additionally, smart contract developers are rarely the only party working with contracts. Frontend engineers, product teams, and other individuals also need to access and interact with contracts (to query data, test functionality, etc.). And since they typically have less experience in the area, many end up having to rely on their peers for support. We believe that breaking this dependency will result in higher efficiency productivity for all parties.

Initial Version, Chains Supported, and Planned Features

With this initial release, we’re supporting the Osmosis testnet (osmo-test-4) and mainnet (osmosis-1) as our first pair of networks.

Going forward, we plan to add support for mainnet networks, local networks, and other chains.

We also have numerous features planned and currently in the pipeline. These includes:

  • Ability to create store code and instantiate proposals through the front-end (for permissioned CosmWasm networks)
  • Public projects section for mainnet networks
  • Accounts and Transaction Details page
  • Code snippet generation for queries and MsgExecuteContract in various languages/frameworks (Python, TypeScript, CosmJS, etc.)

Links

--

--