Secret Network Governance Proposal #19, a Retrospective

Josh Lee
Chainapsis
Published in
4 min readNov 16, 2020

In late August, Chainapsis pressed ‘send’ on a Secret Network transaction that contained 481 bytes of text:

We believe that Secret Network is at a momentous phase as it nears the upgrade that realizes its vision of providing privacy solutions to smart contracts and blockchains. The deliverables of this community pool spend will provide the critical infrastructure that’s needed to significantly improve developer experience and user experience to allow high-value applications to be built.
See the full proposal here: https://ipfs.io/ipfs/QmWozcezJVQ4ANNUwUnacSKo3NR24bi6MjnkiWFxdFkBGX

It was our first on-chain governance proposal as a team. And while we were optimistic that the proposal would pass, I’d be lying if I said I wasn’t nervous.

The summary of the proposal was for Chainapsis to receive funding from Secret Network’s community pool to implement the following key features:

  1. Ledger support
  2. Secret contracts
  3. SecretJS signing
  4. Secret token interface and support

While we were complete outsiders at the time, we were thrilled at the opportunity to provide a critical infrastructure to bootstrap a quickly growing network and at the same time prove to the larger Cosmos ecosystem what our team is capable of.

Secret Network, while young at the time, felt vibrant. The use-case proposed was useful and novel. The integration seemed doable.

Challenge accepted.

Now, after a little over three months has passed, Chainapsis is proud to say that we have completed all of the deliverables as outlined in Proposal #19.

Ledger Support

At the time of submitting the proposal, we knew Ledger support was something we needed to eventually needed to work on, but lacked the resources to do so. Proposal #19 was the catalyst we were looking for to finally get our things together and start working.

We quickly realized that: 1. The web wasn’t built to handle USB and 2. There are additional limitations to being native to a browser extension. There are multiple standards for a web browser to connect to a USB device–each with its own pros and cons. This issue was further exacerbated by the fact that browser extensions have less flexibility than web services and compatibility issues between operating systems.

Despite a lot of the setbacks, we were able to successfully implement Secret Network Ledger hardware wallet support.

You are now able to store your SCRTs safely within your hardware wallet. Furthermore, as Keplr extends Secret-specific transactions, you can stake, claim rewards, and even interact with Secret contracts right from your Ledger device.

Secret Contracts & Secret JS

Secret contracts is the key feature of Secret Network, enabling composable privacy for any smart contracts deployed to the network. However, as guiding users to use the command-line is simply unrealistic, we knew that Keplr would add tremendous value as the go-to end-user tool for their interactions with applications deployed to Secret Network.

As it always has been, the goal for Keplr is to balance extendability and usability. Our product must be extendable to allow dApp developers to leverage in building their Secret applications. On the other side, interactions within Keplr must be straightforward for the average users to use. As Secret contracts use encryption keys for private interactions with contracts, we needed to figure out the best way to integrate encryption keys into Keplr.

We initially scoped out the initial work that needed to be done here, and the flow for Secret transaction encryption/decryption here. Through discussions with various stakeholders within the Secret Network ecosystem, we allowed users to create a fairly simplified process of creating a new encryption key, while also allowing users to import existing keys that were created elsewhere.

Furthermore, a method to allow Ledger devices to create encryption keys was developed to ensure that hardware wallet users do not have to sacrifice on usability for their preference for security

Encrypted Secret contracts transactions are shown as ‘encrypted’ in the transaction confirmation window.

Secret Token Interface & Support

With the addition of Secret SCRTs, Secret Network became the first network natively supported in Keplr which has ERC-20 like tokens built into the network. The first task was to design and develop the interface by which tokens are displayed on the home screen of the wallet. Then, to allow extendability, a feature for users to manually add a new token by inputting the token contract address was added.

However, as this is a less-than-optimal user experience for the average users, a better way to add tokens to the wallet was needed. Similar to how we’ve enabled the feature to dynamically add new chains to Keplr, we’ve created a flow where the developer of the front end interface can request adding a new token to Keplr on behalf of the user–allowing new tokens to be added without the need for users to know the contract address. The user will still need to confirm the action which allows the verification of the token contract should users want to do so.

To showcase the UX improvements for Secret users, we’ve built out the Secret SCRT minting interface right into Keplr web wallet. Prior to Keplr support, the only way that users could mint Secret SCRTs was to use the CLI–now the same process only requires a few clicks.

Overall, I’m extremely proud of the value Keplr was able to add to Secret Network in the limited amount of time that was given. Furthermore, I have been blown away by the vibrant community that has gone above and beyond in providing support, tutorials, feedback, and moral support for our team. After all, an infrastructure that was funded by the community only thrives with the support of the community.

We look forward to being part of the long-term growth of Secret Network, and would love to see how dApps will begin to utilize Keplr in ways we’ve never imagined before. Please feel free to reach out to us for feedback and suggestions–we always welcome them.

Keep building 🖖

--

--