Product Docs
Product DocsTechnical DocsLearning & GovernanceUseful Links
  • Product Docs
  • Node Docs
  • Learning Docs
  • ℹ️Getting Started
    • Product Overview
    • ➑️Get Started with cheqd Studio
      • πŸ‘‰Set Up Your Account
      • πŸ—οΈCreate API Keys
      • πŸͺ™Token Top Up
      • πŸ”„Advanced Configuration Options
    • β˜‘οΈUse Trust Registries for AI Agents
      • πŸ—οΈBuild an AI Agent Trust Registry
        • Setup AI Agent Trust Registry
          • Issue Verifiable Credentials to AI Agent
        • Setup and Configure MCP Server
          • Create AI Agent DID
          • Import Credential to AI Agent
          • Advanced functionality
            • Issue a Verifiable Credential
            • Verify a Credential
      • 🀝Validate AI Agent Trust Chain
  • 🟒Start using cheqd
    • πŸ†”Create DIDs and Identity Keys
      • Create Issuer DID
      • Create Identity Keys and Subject DIDs
      • Resolve a DID
      • Update a DID
      • Deactivate a DID
    • βœ…Issue Credentials and Presentations
      • Issue Credential
      • Setup Verida Wallet
      • Verify Credential
      • Verify Presentation
      • Revoke Credential
      • Suspend or Unsuspend Credential
    • ♻️Charge for Verifiable Credentials
      • Understanding Credential Payments
        • Access Control Conditions
        • Privacy Considerations
      • Charge for Status List
      • Issue Credential with Encrypted Status List
      • Create Verifier Pays Issuer flow
      • Bulk Update or Rotate Encryption Keys
    • 🀝Build Trust Registries
      • Decentralized Trust Chains (DTCs)
        • Root Authorisations
        • RTAO -> TAO
        • TAO -> SubTAO
        • TAO -> Trusted Issuer (TI)
        • Referencing Trust Registry within a Verifiable Credential
      • Set up Trust Chain
        • Issue Verifiable Accreditation
        • Verify Verifiable Accreditation
      • Get Started with TRAIN
        • Deploy TRAIN and Anchor rTAO in DNS
        • Validate Trust Chain
    • πŸŽ‹Create Status Lists
      • Bitstring Status List
        • Create Bitstring Status List
        • Update Bitstring Status List
        • Check Bitstring Status List
        • Search Bitstring Status List
      • Token Status List
        • Create Token Status List
        • Update Token Status List
    • ↕️Create DID-Linked Resources
      • Understanding DID-Linked Resources
        • Context for developing DID-Linked Resources
        • Technical composition of DID-Linked Resources
        • Referencing DID-Linked Resources in VCs
      • Create DID-Linked Resource
      • Search DID-Linked Resource
  • πŸ› οΈIntegrate an SDK
    • Choosing the right SDK
    • 🍏Credo
      • Setup Credo Agent
      • Decentralized Identifiers (DIDs)
        • Create a DID
        • Update a DID
        • Deactivate a DID
      • DID-Linked Resources
        • Create DID-Linked Resource
        • Resolve DID-Linked Resource
        • Create AnonCreds Schema
        • Create AnonCreds Credential Definition
      • Verifiable Credentials and Presentations
        • Issue a Verifiable Credential (AnonCreds)
        • Present a Verifiable Credential (AnonCreds)
    • 🍊ACA-Py
      • Setup ACA-Py Agent
      • Decentralized Identifiers (DIDs)
        • Create a DID
        • Update a DID
        • Deactivate a DID
      • DID-Linked Resources
        • Create AnonCreds Schema
        • Create AnonCreds Credential Definition
      • Verifiable Credentials and Presentations
        • AnonCreds
          • Issue a Verifiable Credential
          • Present a Verifiable Credential
          • Revoke a Verifiable Credential
        • JSON-LD
          • Issue a Verifiable Credential
          • Present a Verifiable Credential
    • 🍈Veramo
      • Setup Veramo CLI for cheqd
        • Troubleshooting Veramo CLI setup
      • Decentralised Identifiers (DIDs)
        • Create a DID
        • Querying a DID
        • Update an existing DID
        • Deactivate a DID
        • Create an off-ledger holder DID
        • Managing Identity Keys
        • Troubleshooting
      • Verifiable Credentials and Presentations
        • Issue a Verifiable Credential
        • Verify a Verifiable Credential
        • Create a Verifiable Presentation
        • Verify a Verifiable Presentation
      • Credential Payments
        • Charge for Status List
        • Issue Credential with Encrypted Status List
        • Verifier pays Issuer
      • Bitstring Status List
        • Create Status List
        • Issuing a Verifiable Credential referencing Status List
      • DID-Linked Resources
        • Create a DID-Linked Resource
        • Create a new Resource version within existing Collection
    • 🫐Walt.id Community Stack
  • πŸ—οΈArchitecture
    • Architecture Decision Record (ADR) Process
    • List of ADRs
      • πŸ”΅ADR 001: cheqd DID Method
      • 🟒ADR 002: DID-Linked Resources
      • 🟑ADR 003: DID Resolver
      • 🟠ADR 004: DID Registrar
      • 🟣ADR 005: DID Resolution & DID URL Dereferencing
  • πŸ’«Advanced features and alternatives
    • ➑️DID Registrar
      • Setup DID Registrar
      • Create a DID
      • Create a DID-Linked Resource
    • ⬅️DID Resolver
      • Setup DID Resolver
    • ⚑AnonCreds Object Method
      • Schemas
      • Credential Definitions
      • Revocation Registry Definitions
      • Revocation Status Lists
    • 🌠Advanced Tooling
      • cheqd Cosmos CLI for identity
        • Create a DID
        • Update a DID
        • Deactivate a DID
        • Query a DID
        • Create a DID-Linked Resource
        • Update a DID-Linked Resource
      • Direct interaction with ledger code
      • VDR Tools CLI with cheqd (deprecated)
      • Demo Wallet for Identity Setup
  • βš›οΈNetwork
    • Get started with cheqd Network
      • Identity Write Pricing
      • Comparison to Hyperledger Indy
    • ⏩Setup your Wallet
      • Setup Leap Wallet
        • Congifure cheqd testnet for Leap
      • Setup Keplr Wallet
      • Migrate from Keplr to Leap Wallet
    • β†ͺ️Useful Tools and APIs
      • Block Explorer
      • Testnet Faucet
      • Validator Status API
      • Cheqd x Cosmos Data APIs
      • Cosmos Airdrop Helpers
      • Cosmos Address Convertor
      • Ethereum Bridge
    • ⬆️Network Upgrades
      • 2021
        • 0.1.x
        • 0.2.x
        • 0.3.x
      • 2022
        • 0.4.x
        • 0.5.x
        • 0.6.x
      • 2023
        • 1.x
      • 2024
        • 2.x
        • 3.x
      • Root Cause Analysis of Outages
        • v1.x upgrade RCA
  • βš–οΈLegal
    • License
    • Code of Conduct
    • Security Policy
  • πŸ†˜Support
    • System Status
    • Discord
    • Bugs & Feature Requests
Powered by GitBook
LogoLogo

General

  • Website
  • Blog
  • Get $CHEQ

Product Docs

  • Product Docs
  • cheqd Studio
  • Creds.xyz
  • Bug/Feature Requests

Technical Docs

  • Node Docs
  • GitHub
  • Block Explorer

Learning Docs

  • Learning Docs
  • Governance Docs
  • Governance Forum
  • Governance Explorer
On this page
  • v1.4.0: Fix interactive installer [March 2023]
  • v1.3.0: Fix pruning settings [February 2023]
  • v1.2.5: Fix pruning settings [February 2023]
  • v1.2.2: Custom identity transaction pricing, improvements to DIDs and DID-Linked Resources, Cosmos SDK v0.46.x [January 2022]
  • Summary
  • 1. Identity transaction pricing
  • 2. Enhancements to DIDs and DID-Linked Resource functionality
  • 3. Changes to protobuf definitions required for enhancements to DID and DID-Linked Resource functionality
  • 4. Cosmos SDK version bumps
  • 5. Miscellaneous fixes
  • 6. Behaviour Driven Development
  • Full changelog

Was this helpful?

Edit on GitHub
Export as PDF
  1. Network
  2. Network Upgrades
  3. 2023

1.x

Last updated 13 days ago

Was this helpful?

This list contains all stable releases in the v1.x.x family, and skips pre-release versions.

: Fix interactive installer [March 2023]

This version primarily fixes the , an off-ledger helper software for carrying out cheqd-node installations and upgrades. The installer now:

  1. Attempts to create a backup of the user's configuration folder and private validator state files, when carrying out upgrades or downloading snapshots.

  2. Frees up spaces by deleting the data folder when requesting a snapshot restore (only if the backup has been made).

  3. Bumps Cosmovisor if necessary.

  4. Set as well as .

  5. Separates out warning, error, info etc level messages based on success status of the action.

To enable debug level logs in case the installer fails, set an environment variable called PYTHONDEVMODE to the value 1 on your system. This will provide additional diagnostic logging that can help pinpoint errors if the installer fails.

Read Full changelog on GitHub:

: Fix pruning settings [February 2023]

This version creates a standalone Golang package called github.com/cheqd/cheqd-node/api which is generated using the Pulsar generation file. This allows non-ledger applications such as the to consume a standalone package with just the API interaction elements, without needing to import the entire cheqd-node Golang package.

This version also bumps Cosmos SDK to v0.46.10.

Read Full changelog on GitHub:

: Fix pruning settings [February 2023]

The previous version of our node software had to be run in pruning="nothing" setting due to an upstream issue with the Cosmos SDK iavl package. This release fixes and restores support for setting pruning settings.

This release is a state-breaking update that brings fundamental changes to the cheqd-node testnet and mainnet. The release notes below pertain to the cheqd-node changes only. Changes to identity applications and tooling is summarised in a separate change log.

Summary

The release can be broken down into 6 primary areas of development:

  1. Identity transaction pricing and burn

  2. Enhancements to DIDs and DID-Linked Resource functionality

  3. Changes to protobuf definitions required for enhancements to DID and DID-Linked Resource functionality

  4. CosmosSDK version bumps

  5. Miscellaneous fixes

  6. Introduction of Behavioural Driven Development

1. Identity transaction pricing

In this release we’ve introduced new mechanisms to the cheqd’s tokenomics. Currently (prior to this release), writing a DID to cheqd mainnet only cost the gas fee, which was approximately 0.004 $CHEQ. This is extremely cheap when compared to networks such as Sovrin, where writing a DID costs $10, especially taking into account the value we are bringing as a network, protocol and team. Alongside this, $CHEQ is currently inflationary (where staking rewards come from), with only slashing, tombstoning or no-with-veto slashing providing any deflationary pressure.

Going forward, any changes required to periodically maintain these, especially before we implement pricing oracles to programmatically maintain stable dollar pricing for our partners, will require further votes.

Architectural decisions, diagrams and in-depth explanations of the scope and relationships will be shared shortly in a follow-up blog-post and document.

Mechanism 1: Identity transaction pricing

Mechanism 2: Burns

As mentioned above, the network is currently inflationary only aside from slashing, tombstoning and no-with-veto having deflationary effects. Implementing a burn mechanism will bring the system into equilibrium. The volume of tokens burnt will increase in the same way as distributions will, with the aim of bringing total supply back to one billion.

2. Enhancements to DIDs and DID-Linked Resource functionality

A number of core changes have been implemented to enable continued interoperability with products and applications across the decentralised identity ecosystem. These include:

Introduction of a DID deactivation transaction

Historical version of DIDDocs can be stored and retrieved

Fetching historical versions of DIDDocs easily and without friction is an incredibly important feature for DIDDoc indexing in decentralised identity applications.

We have used the same versioning techniques for DIDDocs as was implemented for DID-Linked Resource versioning. This required an on-ledger change as previously we were using the β€˜transaction hash’ of the on-ledger block as the DIDDoc β€˜version’, which presents a problem as in the event a user has multiple DID operations in the same transaction, it becomes impossible to distinguish between the various versions of the DIDDocs. This has now been replaced with a UUID.

A number of other networks lack this feature and don’t provide the functionality to fetch historical DIDDocs, which can be a limiting factor for those building decentralised identity applications.

Enforce UUIDs to be in lower case by default for DIDs & DID-Linked Resources

Previously when users created a UUID for a DID-Linked Resource they could use both lower and upper case in the UUID. The cheqd network, however, is only able to handle lower case characters. As such, we introduced a converter that would convert all UUID DIDs to lower case UUIDs.

As a result of this change, existing DIDs and Resources that were created prior to this upgrade, will be altered to lowercase if they previously contained uppercase characters.

Bringing Indy-style DID identifiers in line with specification

The style for the unique identifier of a DID was initially based on the legacy Hyperledger Indy algorithm. We’ve brought it in line with the updated DID Indy specification requirements instead.

Ability to specify alternative URLs for DID-Linked Resources

By default DID-Linked resources have a DID URL auto generated. For example, a DID URL for a DID-Linked Resource looks like this:

did:cheqd:testnet:z6jKUJA5YcZsNxZgsrQPKPipL2FRTf4s/resources/8140ec3a-d8bb-4f59-9784-a1cbf91a4a35

However, as part of our mission to drive the wider adoption of DID-Linked Resources beyond cheqd, and create the β€œweb of trust”, we have enabled the ability to add an alternative URI for where that same resource can be found.

Checksums for DID-Linked Resources now stored correctly

A checksum is a value that represents the number of bits in a transmission message, used to detect high-level errors within data transmissions. They provide a party on the receiving end information about the date to make sure that the full range of data is fully delivered. The checksum value itself is typically a long string of letters and numbers that act as a sort of fingerprint for a file or set of files to indicate the number of bits included in the transmission.

For example, if a user created a DID-Linked Resource, and 1 month later wanted to retrieve this, it would be possible to calculate the sha256 locally and then compare it with the β€œchecksum” field from the resource in order to check whether this resource was changed or not.

Prior to this release, it was calculated in a less usable way, using β€œsum256 + data_bytes” where it only needed sum256 (which is what is used from v1.0.0 going forward).

3. Changes to protobuf definitions required for enhancements to DID and DID-Linked Resource functionality

To accommodate for the ledger enhancements, fundamental changes are required to the underlying code base which the ledger uses known as protobuf definitions.

Protobuf definitions can be seen as a template for variables in the ledger code-base; the existing release up to this point uses protobuf definitions v1, whilst this upgrade replaces these with v2 protobuf definitions. For example identity transaction pricing and the ability to provide an alternative URI for a DID did not exist in the previous version, meaning this feature would not be possible to implement.

To inspect the source of protobuf definitions, follow the links below. These are simply contained within the overall v1.0.0 upgrade so don’t require any additional steps for developers.

Previous protobuf definitions:

  • cheqdid.cheqdnode.cheqd.v1

  • cheqdid.cheqdnode.resource.v1

Updated:

  • cheqd.did.v2

  • cheqd.resource.v2

Another aspect of this change is based on best practices. When we launched the cheqd network we identified certain best-practices and designed an implementation approach which would allow us to roll out these conventions in a phased approach. This enabled us to move quickly, whilst not compromising anything on ledger in the initial stages. With this release the cheqd ledger is in line with overall style guides making it more flexible and robust for both our team and other developers to build on.

4. Cosmos SDK version bumps

As is customary with the use of the underlying CosmosSDK and associated libraries, regular version bumps are required to keep the cheqd ledger in line with the wider ecosystem's changes, for example updates to IBC. In this release we’ve bumped the Cosmos SDK version to 46.6, crucially bringing key security patches as well as a bump to IBC to ibc-go v5.1.

5. Miscellaneous fixes

cheqd-noded configure command removed

As part of the overall ledger changes, the cheqd-noded configure command has become an outdated and deprecated command. The command has been removed and documentation has been updated accordingly. This changes the manual installation of cheqd-node, and the Interactive Installer which previously relied on this.

Interactive Installer fixes

The Interactive installer was using the legacy configure cmd β€˜cheqd-noded’ to do the configuration for app.toml and config.toml files. As this is no longer used, the interactive installer no longer requires the configure command.

The following changes are now made by default when installing a node:

  • RPC port by default listens to world i.e from tcp://127.0.0.1: to tcp://0.0.0.0:

  • The default minimum gas price is set to 50ncheq, increased from 25ncheq

  • An option introduced for a user to enter persistent peers, log level and log format when doing interactive installation

Ledger Nano support fix

A bug was identified where the Ledger nano hardware wallet was not working with cheqd transactions. This has been resolved in this release.

6. Behaviour Driven Development

To date our testing approach has been focused around unit testing and more manual approaches to application testing. In this release we’ve introduced Behaviour Driven Development (BDD) at scale across the entirety of the cheqd node. BDD, is a framework which uses human-readable descriptions of product requirements as the basis for testing. Developers implement a well known vocabulary that can be understood by a regular user, to help identify the issues that arise.

We see this as an integral to building strong foundations that will enable developers to more easily build with cheqd, and streamline the overall development process for our core team as we progress further with ledger development centred on the implementation of cheqd payment rails.

Full changelog

Features

Bug fixes, patches & version bumps

Build

Security

Testing

Read Full changelog on GitHub:

: Custom identity transaction pricing, improvements to DIDs and DID-Linked Resources, Cosmos SDK v0.46.x [January 2022]

Identity transactions such as and (e.g. visual representations of Verifiable Credentials; trust & revocation registries; schemas; documents; logos) writes will have a cost greater than gas which will increase rewards from the network as identity utility increases. At current price levels ($0.03-$0.04), writing a DID will equate to 66.6–50 $CHEQ, which leads us to where these tokens will be distributed upon writes. See detailed .

As can be seen in the showing the genesis parameters which define the costs in $CHEQ, there is also a β€œburn_factor” variable which sets the percentage of the tokens charged for identity transactions which will be directly burnt. This can be adjusted through on-ledger governance votes according to the cheqd community preferences.

Previously it was not possible to mark DIDs as deactivated on the cheqd network. This is now possible. This enables cheqd to support each of the required transactions for integrating with the .

UUIDs are . This means that UUIDs with both upper and lower case characters are semantically identical

As part of our interoperability efforts and support for AnonCreds with AFJ ( we needed to expand the supported identifiers on-ledger. The main barrier preventing full support for AnonCreds on cheqd using Aries SDKs is that AnonCreds is still dependent on the Indy SDK. When you call any function in the Indy SDK, you need to use the legacy Indy-style identifier format to carry out a transaction. Supporting Indy-style identifiers is therefore a stepping-stone in the wider AFJ support for cheqd.

When resolved ) you’ll find that this shows the IIW logo, used in our .

This is in the DID Core specification.

feat(installer): Get installer to handle multi-platform binaries DEV-1667 by in

feat: DeactivateDid transaction to mark DIDs as deactivated DEV-1774 by in

feat(proto): Proto API v2 DEV-1786 by in

feat(proto): Refactor app to support proto v2 by in

feat: DidDoc versioning DEV-1892 by in

fix(installer): Fixed binary permissions DEV-1826 by in

fix: Add resourceType for versioning functionality DEV-1703 by @anikitinDSR in

fix: Checksum calculation DEV-1649 by @anikitinDSR in

test: Fix installer by @anikitinDSR in

fix: Ability to write spaces in the moniker by in

fix(release): Bump semantic release package by in

fix(installer): Fixed binary permissions DEV-1826 by in

fix: Error handling by in

fix: Use proto marshaller instead of amino to derive sign bytes DEV-1694 by in

fix: Convert UUID DIDs to lower case UUID DEV-1705 by in

fix: Support Indy-style identifiers DEV-1750 by in

fix: Add support for Ledger nano by in

build(buf): Change buf.build package name by in

build: Buf.build config for generating proto DEV-1545 by in

build(docker): Move to Alpine images for Dockerfile by @anikitinDSR in

build: Backport workflow and other fixes to release/0.6.x branch DEV-1822 by in

build: Release with v-tags by in #424

security(tendermint): Bump github.com/tendermint/tendermint from 0.34.19 to 0.34.20 by in

test: Move unit testing to Gingko DEV-1652 by @anikitinDSR in

test: Integration tests merging state by in

test: Add interactive installer to workflow and get rid of deb by @anikitinDSR in .

βš›οΈ
⬆️
cheqd-node
v1.4.0
interactive installer
environment variables for cheqd-node
for Cosmovisor
cheqd-node v1.4.0 release notes
v1.3.0
did:cheqd Resolver
cheqd-node v1.3.0 release notes
v1.2.5
cheqd-node v1.2.5 release notes
v1.2.2
DIDs
DID-Linked Resources
pricing and comparison to Sovrin here
image available here
Universal Registrar
not case sensitive
documented here
(see here
wallet demo
similar to the β€˜alsoKnownAs’ property
@ankurdotb
#376
@khornonzon
#332
@askolesov
#398
@askolesov
#436
@askolesov
#443
@Eengineer1
#414
#397
#396
#348
@Big0ak
#354
@ankurdotb
#377
@Eengineer1
#414
@askolesov
#425
@askolesov
#430
@Toktar
#394
@Toktar
#399
@ankurdotb
#442
@ankurdotb
#453
@jay-dee7
#339
#356
@ankurdotb
#410
@ankurdotb
@dependabot
#367
#373
@Eengineer1
#419
#347