For ICON Foundation technical lead Eric Solomon, ICON represents a land of opportunity for developers.
He says, “One distinct thing for the time being is that there are lots of applications that could be made in the ICON ecosystem that are not currently there.”
As technical lead, Eric’s portfolio of responsibilities includes everything from product development to security responses to attacks. He has taken a special interest in expanding the knowledge base of the ICON technical community, as well as in facilitating communication within that community. One result of that interest is ICON’s greatly improved Dev Portal, the network’s primary documentation repository.
We talked with Eric about his work with the Dev Portal and open source development on ICON, as well as resources available to developers who want to build on ICON. We also touched on ICON’s upcoming Builder Program, an initiative aimed at bringing developers to ICON by connecting available resources in the ecosystem.
A Lifelong Knowledge Seeker
Eric joined ICON as a technical lead in January 2022, but has been working in the crypto space for four years. He was introduced to crypto technology through the open source technology community, for which he has a deep and very clear passion. Describing himself as a lifelong “knowledge seeker,” he began interacting in the open source community in earnest after learning Python.
He recalls, “When that happened, I realized there were millions of people willing to share knowledge with each other for the benefit of everyone else’s pursuit of knowledge and the creation of things.”
Solomon was doing some “hardcore scientific stuff” when he decided to apply his efforts to the “field of science as an open-source endeavor.” He found himself working for a cryptocurrency company doing work on distributed computing.
He says, “When I was first introduced to crypto, it was sort of from the same community — from people looking to lower the barrier to entry, not only for seeking knowledge, but also for practicing things based off the domain of the knowledge you can now capture.”
Eric is applying the open-source spirit as ICON’s technical lead. He explains this is only natural — ICON is a decentralized project, rendering it immune from authoritarian means of control.
“I don’t tell people what to do. I advise people on what to do based on my skill set and what I think are good ideas, and then we participate and collaborate on what we agree is the next thing to do,” he says.
Later in the conversation, he elaborates on this approach. “I feel like if I were to try to manage this entire system from a task basis myself, we’d end up with something entirely reflective of my ideas,” he says. “And in the grand scheme of things, I have a pretty small domain of knowledge of how stuff works. A benefit is that I get to use the knowledge, the creativity, the passion, the motivation, the actual effort of other people who can similarly benefit from these projects and endeavors to whatever ends they are motivated to do so.”
Developing ICON’s Development Portal
Eric has had a huge impact on the ICON Development Portal, the ICON network’s critical collection of documentation. While he did not initially develop the documentation set, he has worked hard to organize and improve it. “I made a substantial amount of changes from what was here initially. In terms of Git-style revisions, I made about 2,000 changes,” he says.
The development portal is an open-source project, though. It is aimed to be reflective of feedback from the community so that it can best represent and communicate useful ideas and specifications. It is available at docs.icon.community, and the code repository is available at github.com/icon-project/devportal.
The development portal begins by answering the most obvious question: “What is ICON?” After that, the documents dive into how to actually use the network, including a couple of easy tutorials on deploying smart contracts, accessing API endpoints, running a node and other tasks.
From there, the documentation set fans out a bit. The “Concepts” section explores the big ideas behind ICON, including its economic and governance structures. Eric explains, “Blockchain is a more holistic system than a typical technical system in that it includes systems for not only computational utilities, but also economics, governance and decentralized applications.”
After the Concepts section comes the ICON Stack, the most “developer heavy” part of the documentation set. As the name suggests, you’ll find how the stack is designed and how to work with it. You’ll learn which programming language you should be using, common practices for developing in ICON, how to store things and how to set up a developer environment.
Next is a section on Interoperability, where you’ll find information about ICON’s innovative upcoming interoperability solution Blockchain Transmission Protocol (BTP) and its “lite” version, ICON Bridge. There’s also a page on Nexus, a recently launched frontend for ICON Bridge that facilitates token transfers between ICON and BNB Smart Chain.
Lastly comes the section on Support, which instructs you on how to receive help from the community and how to report security issues, as well as provides a few tutorials and FAQs.
The ICON ecosystem consists of three main “sub-ecosystems” — the ICON main network, the BTP ecosystem and the ICE/SNOW network — the development portal is primarily geared to the ICON main network. While BTP gets a mention, Eric says it may get its own documentation set in the course of developing the project.
Eric welcomes users of the portal to contribute: even if they feel called to “bomb it on Github or Discord” with complaints “as long as you’re making larger or smaller contributions.”
He says, “Interacting with it is a key point for a decentralized project. If different people with different motivations and different skill sets are able to provide some feedback into what is here, what should be changed and what should be added or removed, then it’s going to grow into something that services the community the best.”
He also encourages developers to write documentation themselves. When he was learning about complicated technologies, he noticed a lot of open source communities encourage people to write documentation as a first step. “It gives you a contribution — now you’re a recognized part of the community, and it helps you interact with the other people who work on this thing, and learn about the thing without an overwhelming amount of responsibility or effort.”
Working in the ICON Ecosystem
Eric explains that the ICON ecosystem is composed of three sub-ecosystems:
- The ICON mainnet
- BTP Ecosystem: partner blockchains connected through the upcoming BTP interoperability solution
- ICE/SNOW ecosystem: ICON’s Substrate-based expansion network, associated with the Polkadot ecosystem.
If you’re keen to develop on ICON, he recommends that you pursue a project you’re explicitly interested in. If you’re more of an explorer, however, you can look through the tutorial sets or search for educational resources on the ICON network, including:
- ICON.community website or Discord server
- The documentation set at the ICON Dev Portal
- ICON.community’s “Learning” section
- The “ecosystem” tag at ICON.community
- Awesome ICON, a list of popular, well-used things from within the ICON ecosystem at the ICON community Github.
Eric says, “What you should do is look for either a project that you have an idea of what it is, and then develop the technology that would allow you to accomplish that project — for instance, to create a Dapp or publish a smart contract with a specific service that is being offered. Or to do some form of exploration.”
He also encourages you to find collaborators. To find them, he points to the Discord server in particular, with a heavy number of regular participants in the developer and support channels. He also suggests the community on ICON’s Telegram channel, too.
He says, “Just put your message out there that you want to collaborate, because there are a lot of people who will do that with you.“
Participating in ICON’s Open Source Projects
The ICON Foundation facilitates two major organizations on Github in support of open source projects:
- icon-project, where core development work occurs
- icon-community, where you can contribute to projects in the ICON ecosystem or add your project and collaborate with other developers.
Eric encourages would-be open source developers to not only check out the projects underway, but also to check out who is collaborating on those projects and which organizations those collaborators below to.
“If you wanted to be in the ICON ecosystem, and you wanted to do it kind of outside those organizations, there are a couple of other open source options as well, just look at who has contributed to the projects and that will get you started on the path to finding which group or set of individuals you best fit with.”
ICON Builder Program
Like any growing network, ICON wants to draw more outside developers into its ecosystem.
Eric says for this to happen, three conditions should be met.
Firstly, the developer experience should be as simple and enjoyable as possible. This is where projects like Drogon, a project bootstrapping tool currently under development at the icon-community Github, make a difference.
“When people are approaching technical development, they want to see that it’s straightforward and enjoyable for them,” says Eric. “It’s mentally challenging in some ways, but the right ways, so they feel like they are doing something worthwhile on the path they feel like pursuing.”
Secondly, people should feel like they can develop practical business or technical use case applications from the tools ICON provides.
Eric says, “The API endpoints should be very simple to use, which they currently are, the network should be stable and able to conduct transactions on a reliable basis, which it can, and then the developer tools should be laid out very simply and with a good set of instructions, which is the goal of the documentation set.”
The third thing — and a commonly overlooked one — is the community of people that organizes the resources, as well as the connections that are available. Eric says it’s not only important to help people do something they already have some idea about, but also help people do things they had no idea they even wanted to do.
“(For example), If you were a person with a skillset and you wanted to develop an idea to make money as a business, you shouldn’t have to be responsible for that entire pipeline,” he says. “You should be able to look to the community to get advice on business practices or see if there is somebody who wants to partner up with me or invest in my project.”
The upcoming ICON Builder Program seeks to address all three of these points. Eric particularly points to the need to better connect and define the three major components of the ICON ecosystem: the mainnet, BTP and ICE/SNOW. The program will help people find their optimal role in the ecosystem and discover the options and resources available to them.
Those options and resources include economic incentives such as the ICON Foundation’s own grant program, the community-funded CPS, ICE/SNOW’s ICED Developer Grant program and the ICON Foundation’s Interoperability Incentive Fund, as well as other funding sources from within the community.
Eric says, “Cryptocurrency is quite good at collecting people around an idea that is potentially very new or not super-well funded or marketed.”
ICON: An Ocean of Developer Opportunity
Financial inducements aside, there are plenty of good reasons for developers to take a hard look at ICON. First and foremost is the wealth of opportunities that await the motivated developer.
Eric says that ICON is “pretty close to par with a lot of the more major networks” in terms of robustness and tools provided.
“You’ve got something that is pretty well shown to work, consistently and without major issues, and you’ve got a pretty solidly developed ecosystem and set of tools and products that are associated specifically with it,” he says.
“But what isn’t as difficult (as on other networks) is that there isn’t as much competition to develop a decentralized finance product or a cross-chain application product. So if you wanted to do something related to that, I think you have a good inroad with the ICON network to do that for the time being.”