Publishing your binaries and keeping track of all the releases can be a real headache at times, especially in today’s tech scene, where web3 has flourished and fantastic decentralized protocols are developing on a daily basis. This can be a significant problem if not handled efficiently. This article is meant to help with this specific issue by demonstrating how simple it is to publish your binaries using Valist.
Valist is a web3-native software distribution system that brings together web3 protocols like Ethereum/Polygon, IPFS, and Filecoin into a single interface. Despite progress in decentralization and web3, all of the binaries that power decentralized protocols are still distributed over centralized platforms! Valist is specifically designed to bridge this gap.
Methods
Valist offers three amazing methods for publishing binaries.
- Web — Using the “Drag & Drop” approach on the website.
- CLI — Using Valist’s super clean command-line interface.
- Github Actions — Directly publishing a release, using Valist Github Action.
All of the methods are super easy to use and can help you publish in no time.
Prerequisites: Setting up the account & project
Before you begin publishing, there are a few things you need to configure on your dashboard.
- Head over to https://app.valist.io/
- Click on the “Connect Wallet” button and make sure your wallet is connected.

3. Before you can begin publishing, you must first create an account. Fill out the form data, including username and some metadata.

5. You will then be prompted to add team member addresses. After you’ve added all of your team members, click “Create Account.”

Once you are done, you’ll be prompted to create a project within the account!
1. Fill in all of the project’s required details, and feel free to add screenshots! You can also add project-level members that only have access to this project.

2. When you’re finished, you’ll be able to see your most recent project on the dashboard.

Sweet! All that remains is to publish some great stuff!
Now for the exciting part! Let’s get this thing going.🚀
Option 1: Publishing On Web
Publishing on the web is super easy — it’s a really familiar drag-and-drop interface, too.
- Navigate to the project and press the “Publish” button.
- You’ll be greeted with something like this. Fill out all of the required information, primarily the version and descriptions.

3. Drag and drop the project file or upload it by clicking the box. When you’re finished, click “Publish Release.”
You have successfully published your binaries! 🥳
Option 2: Publish Using CLI
Another way to publish your releases is via CLI; this is for all CLI aficionados! Using the Valist CLI, you can easily publish releases from the command line! It’s an excellent way to work with releases without having to navigate via a UI.
Let’s go into the specifics.
- To install the CLI, you must have Node.js v16+ installed. To install, use the following command in your terminal.

2. Now we need to generate a fresh key for your CLI wallet.
The most recommended configuration is to generate a fresh key in the CLI, then add that address to the designated account or project you wish to publish to. To generate a new key and store it directly into your secure Keystore (this works cross-platform!), run the following:

This will print out an address like so:

Alternatively, you can run valist import to import an existing encrypted JSON wallet, mnemonic, or private key into your Keystore.
Next, you will need to add this key to your desired project or account members to give it access to publish. Navigate to your project or account settings in the web dashboard, and add the key like so:

3. You must also give an account/project/tag path — this is where your release will be published.
- account — This is the account that you’ve created for your project on Valist.
- project — This is the project associated with your account.
- tag — This is the name or tag of the version.
You’ll also need to submit a list of files that must be included in the release.

Example:

Here,
acme-co is the account name.
go-binary is the project.
0.0.1 specifies the current version.
dist includes all the files that need to be published (or distributed).
Multiple directories and files can also be included. The file paths also allow glob patterns:

Side Quest: Multi-Platform Projects
Valist can also help you if you have a Multi-Platform project that you wish to distribute.
To instruct Valist clients on how to install your binaries, they must first grasp the mapping between binaries and their assigned platform and architecture.
To configure this, you need to set up the mapping in the valist.yml file at the root of your project directory. It should look something like this.

Once you’ve carefully defined and configured the valist.yml file, you can publish it.
Run the following commands to publish:

Boom! It’s published. 🚀
Option 3: Publish Using GitHub Actions
Valist offers a GitHub Action that allows you to publish everything from source code snapshots to arbitrary binaries, Docker images, NPM packages, or anything else that you’re creating in your existing CI/CD pipeline!
You can check it out here:
Valist Action — GitHub Marketplace
The release may look something like this.

Here,
- The private-key parameter corresponds to your GitHub Repository secret, which holds a key with access to the Valist Project. We highly advise that you use a new key with just access to the related Valist Project, rather than an Account-level admin key.
- The account field maps to your Valist Account
- The project field corresponds to the Valist Project where you want to publish your work.
- The release parameter corresponds to the version/tag that you want to publish.
- The files field contains a list of the files you want to include in the release. The ./value, in this example, will publish all files in the repository, resulting in a source code snapshot.
Publishing Releases Automatically to Valist
It is super simple and clean to use this to automatically publish your GitHub Releases to Valist. It looks like this:

The on section specifies when your Action should be executed. In this scenario, it will occur when a GitHub Release is published.
First, using robinraju/release-downloader@v1.3, all of the files connected with the most recent release are pulled.
Then the publishing of these artifacts, labeled with the current timestamp is done using the Valist Action.
Conclusion
And we’re done! Yes, publishing binaries with Valist is that simple.
We hope you found this article to be interesting. Remember to share and tag us on Twitter @Valist_io
If you have any comments or questions, please email contact@valist.io.
Thanks for reading, have an amazing day/evening! WAGMI🚀