Convex is a decentralised network and execution engine for the Internet of Value. It can be seen as an implementation of a "Stateful Internet" where the network itself securely hosts and executes code and data.
It is designed as a full stack solution for decentralised applications and programmable economic systems that manage digital assets, where asset ownership is cryptographically secured and can be managed (optionally) with Smart Contracts.
Convex is based on Lattice Technology, exploiting the mathematical properties of lattices to achieve efficient consensus and verifiability. Lattice technology can be used to solve problems in a similar manner to blockchains, but offers some significant advantages:
This repository contains the core Convex distribution including:
The repository also contains core "on-chain" libraries providing key full-stack functionality and tools for decentralised applications, including:
convex.fungible
- Fungible Tokensasset.nft.simple
- Basic lightweight Non-fungible tokensconvex.asset
- library for managing arbitrary digital assets using a common abstractionconvex.trust
- library for access control and trusted operationstorus.exchange
- decentralised exchange for trading fungible tokens and currenciesName | Description | Maven | Javadoc |
---|---|---|---|
convex-core | CVM, data structures and consensus | ||
convex-peer | Peer implementation and networking | ||
convex-cli | Command Line Tools | ||
convex-gui | Convex Desktop GUI Interface |
For making use of Convex data structures, CVM execution etc. locally you probably just need convex-core
. If you want to run a Peer or talk to a Peer over the network, then you will need convex-peer
as a dependency. The other modules are mainly intended to run as standalone applications.
Recent development snapshot builds of convex.jar
are made available here:
To get a local development build of Convex you need git and Apache Maven. You will also need a recent version of Java (JDK 21+ recommended.
git
- you probably want the develop
branch (the default)mvn install
in the root directoryThis should download all necessary dependencies and perform a standard build.
Convex Desktop is a GUI application for power users and developers providing full access to the capabilities of Convex. To run, you will need a modern version of Java installed (21+) and the convex.jar
executable file (which can be found in the outputs of the Maven build above, or downloaded from trusted sources).
If Java is correctly installed, you should be able to double-click the executable convex.jar
file to run it. Depending on your security settings, you may need to grant approval for this to run.
Alternatively, run Convex Desktop using java
at the command line as follows:
java -jar convex.jar desktop
If you have an already built version of the Convex CLI convex.jar
file and installed a recent version of Java you can run it as follows:
java -jar convex.jar <optional args>
For convenience, there are shell scripts to automate this for common platforms in the root directory of this repo, e.g.
./convex --help
Using the CLI, you can start the Convex Desktop GUI for a local peer test network by using the local gui
command:
./convex local gui
Open Source contributions are welcome under the terms of the Convex Public License. Contributors retain copyright to their work, but must accept the terms of the license.
We have instituted a Contributors Agreement for all contributions to the core Convex repository.
The Convex Foundation may, at its sole discretion, award contributors with Convex Coins as recognition of value contributed to the Convex ecosystem. Convex coins are the native coin of the Convex network, and function as a utility token that provides the right to make use of the services of the network. Convex coins may be exchangeable for other digital assets and currencies.
We use Discord as for discussing Convex - you can join the public server at https://discord.gg/5j2mPsk
Alternatively, email: info(at)convex.world
Copyright 2017-2024 The Convex Foundation and Contributors
Unless otherwise specified, source code is available under the terms of the Convex Public License