Inspiration

  • Candid UI, the most used tool when developing IC smart contracts, is handy and simple. However, when we are actively testing or inspecting the canisters, oftentimes we have to repetitively type the canister ids, method names, and parameters. In addition, the current setup makes the testing irreproducible, which slows down the overall development process. Learning from our own development experience, we decided to make up the missing features of candid UI to allow developers to subscribe to canisters, store history calls, and compose test cases entirely on IC.

What it does

  • Candid + allows the users to keep track of the canisters they wish to test or inspect by simply subscribing through the canister ids. Once subscribed, users can call the methods on those canisters just like they do with candid UI, while candid+ will keep track of all the call histories. Those canister calls can be organized as test cases to allow more comprehensive testing and reproducible debugging. Developers can choose to share those test cases for better development transparency. To be noticed, all data is stored on IC blockchain with complete permission management.
  • Subscribe Canister => Call Methods => Compose Test Cases (Entirely on IC)

How we built it

  • Candid+ is decomposed into 3 parts.
    • The hub: keeps track of candid+ profiles registered
    • Candid+ backend: keeps track of all user history such as canisters subscribed, canister calls, and test cases. It can either be created through shared canisters controlled by us or dedicated canisters owned by users.
    • Candid+ frontend: The GUI for users to test and inspect their canisters

Challenges we ran into

  • Permission management: users should be able to keep their profile either private or public
  • Multiple profiles on one canister: multiple candid+ profiles can be cached on the same canister.
  • User profile on the dedicated canister: users should be able to create their own Candid+ canister and keep full control over it.
  • Scalability: how will we manage all the candid+ profiles scattered among multiple canisters.
  • Local Testing: how developers can use Candid+ for local testing

Accomplishments that we're proud of

  • Our goal is to simplify the development experience on IC and makes testing reproducible and sharable. In the meantime, we are dedicated to ensuring users take full control of their profile privacy and data ownership. With the vision of building true web3 DApps, we support resharing the test cases and user profiles to help developers and investors better understand and inspect the canisters.

What we learned

  • IC, as a universal smart contract platform, is revolutionary for developers even to build development tools. By bringing the development tools onchain, smart contracts development is now completely transparent. With the data privacy setup of IC, we can build the tools with comprehensive permissions for professionals and enterprises who wish to take full control of their data.

What's next for Candid+

  • Candid+ is the first application of ICHub, the epic center for IC developers.
  • Candid+ Chrome App: it will be a simple Chrome app that allows developers to test their canisters locally without connecting to the IC mainnet
  • Geek Space: By integrating with canisters, test cases, and project descriptions, developers can demonstrate and discuss their canisters and code for coworking and reproducible debugging.
  • Canister Manager: tools like create canister, install code, delete, charge cycles, etc
  • Canister Monitor: Monitoring the canister for module hash changes, cycle balance, memory usage, etc.
  • Canister Market Place: Enable canisters to stake neurons and trade canisters like NFTs.

Contact

Built With

+ 9 more
Share this project:

Updates