Environment Setup
🙌🏻 The "Use" section is Work in Progress! A Verana Frontend is under active development. In the meantime, it is required to use the command line in order to interact with the Verana Verifiable Trust Network.
Using the CLI
Use the CLI to query the ledger, and execute transactions that modify the ledger.
Prerequisite: Ensure the
veranadbinary is installed and up-to-date. See Install or Update Veranad Binary.
Set the following environment variables in order to target the correct network:
# --- Network ---
CHAIN_ID="vna-testnet-1"
NODE_RPC="https://rpc.testnet.verana.network" # local: http://localhost:26657
DENOM="uvna"
FEES="750000uvna"
GAS="auto"
KEYRING="test" # use "os" or "file" for real keys
# --- Your identities (see the Corporation & Delegation model below) ---
OPERATOR_ACC="my-operator-key" # the key you sign with (--from)
CORPORATION="verana1..." # the policy_address of your Corporation
Adjust NODE_RPC/CHAIN_ID for testnet, mainnet, or a local node.
The Corporation & Delegation model (read this first)
In spec v4, on-chain resources (Ecosystems, Credential Schemas, Participants, …) are not owned by a plain account. They are owned by a Corporation — an on-chain entity backed by a Cosmos SDK x/group policy. Almost every transaction is executed on behalf of a Corporation using a delegation pattern:
- A Corporation is created with
MsgCreateCorporationand is identified on-chain by itspolicy_address(a group policy address). This address is thecorporationargument passed to nearly every module command. - An Operator is an account that has been granted authorization by the Corporation to submit specific message types on its behalf. You sign transactions with the operator key (
--from). - A transaction therefore has two roles: the corporation (the resource owner, authenticated via its group policy) and the operator (the signer). Both are enforced on-chain by the Delegation module (AUTHZ-CHECK).
Before you can run any resource-creating command you must, once:
- Create a Corporation — this returns its
policy_address. - Fund the
policy_addresswithuvnaso it can pay fees. - Grant an operator authorization for the message types you intend to use.
A few messages are not delegable and can only be executed through an on-chain governance proposal — every module's update-params, plus td slash-trust-deposit, ec update-params, and the xr create/state/authorization messages. These are called out on their respective pages.
A note on the corporation argument
The way the Corporation is passed differs per module — always follow the exact form shown on each command's page:
| Modules | Form |
|---|---|
cs, de, pp | --corporation <policy_address> flag |
ec, gf, td | [corporation] positional argument |
di | [authority] positional argument |
Using the API
Use the API to query the ledger only.
An openapi.yml with a swagger-ui is available for every network environment. Example, for testnet: https://api.testnet.verana.network/
You cannot use the swagger-ui to execute transactions that modify the ledger. Those require signing messages with wallet software.
Using the Frontend
Use the frontend to query the ledger, and execute transactions that modify the ledger.
The frontend is experimental and, for the testnet, is available here: https://app.testnet.verana.network/.
You can also deploy your own instance — see the frontend deployment documentation.
This is pre-alpha software and not all features are implemented yet.