Blog > Authors > Alan McSherry

Getting to grips with metadata on Cardano

Adding information about transactions is a powerful tool for companies and developers

3 November 2020 Alan McSherry 5 mins read

Getting to grips with metadata on Cardano

In a previous post, Bringing new value and utility to the Cardano blockchain, I discussed the notion of transaction metadata. I also explained why this is crucial to Cardano’s Goguen evolution as a utility platform for decentralized finance (DeFi) operations.

There are many potential uses for metadata. With that in mind, IOHK has been working to ensure that both developers and enterprise-focused clients can easily build metadata into their applications. Furthermore, we want to make certain that ada users have a convenient way to see information about their transactions.

How does metadata work on Cardano?

Metadata tells the story of a transaction and there are many ways to interact with this story. Developers can take advantage of metadata by embedding details directly into a transaction, and ada users can search for specific information in the Cardano Explorer. The data can be added directly, or, for larger amounts, it is possible to create a Merkle tree of the data and put the root hash of the Merkle tree on the blockchain. Once this is done, it can be proved that the data existed at a specific point of time and that it remains permanently on the chain for future reference.

It is also important to note that transaction metadata is stored on the blockchain and is carried along with each transaction. The fact that it is stored on-chain, rather than being recorded in the ledger state, is beneficial because it does not influence transaction validation or compromise ledger performance.

Metadata service from IOHK

IOHK’s Professional Services Group (PSG) provides business consulting and technological services. In particular, our PSG is developing services to help companies build and implement blockchain solutions by integrating their systems in a seamless and convenient way with distributed ledger technology.

The metadata service has been developed with a variety of applications in mind, but for commercial applications in particular.

This interface handles the wallet interaction, provides users with low balance alarms, and rolls it all up into a Docker container. This eliminates the complexity associated with submitting metadata directly in the wallet’s backend API. Thus, the metadata service only requires the specified metadata and the number of blocks under which the transaction should be stored before it is considered as final.

In the metadata request, one can include:

  • The actual metadata: sender and receiver identities, comments, tags.
  • The depth: the number of blocks under which the transaction containing the metadata should be stored before it is considered as final.
  • The client identity: indicates the wallet to be used.
  • Transaction identity: this feature is useful in case of failures and restarts. It allows clients to re-examine previously submitted metadata.

After including all the details, the metadata service records a transaction on the blockchain, which then allows transaction information to be retrieved using the Cardano Explorer. For this, one would just have to indicate a transaction identity.

Another feature is that PSG metadata service can be specified using language-neutral protocol buffers. This expands the number of potential uses because client generators support many programming languages, including Python, Java, and Scala. Such extended opportunities make the process of integration with the Cardano blockchain more straightforward.

Accessibility is key

We have also developed a Scala and Java client for the Cardano wallet API, which bundles together calls to the API and makes them easily accessible to more developers. As well as a Java and Scala API, we can provide an executable jar file to give rudimentary access from the command line. You can find details of the PSG Cardano wallet API on GitHub and see how it allows clients to perform tasks such as submitting and listing a transaction, wallet maintenance, and node monitoring.

Working with wallets and Cardano-CLI

Another way of working with metadata is by submitting it directly from a wallet or the Cardano command-line interface (CLI).

These processes require basic coding experience and familiarity with running the Cardano node and CLI. Direct interaction with metadata opens powerful capabilities for building decentralized applications on Cardano because developers can authenticate valuable data in their preferred way.

In the Cardano wallet and the CLI, the structure of the metadata is defined by a mapping from keys to values (key-value pairs) that combine details for multiple purposes into the same transaction.

  • Metadata keys act as a schema identifier showing the metadata value. Keys are unsigned integers limited in size up to 64 bits.
  • Metadata values are simple terms, consisting of integers, text strings, byte strings, lists, and maps. Values have to be structured, which makes it easier for them to be inspected and managed, particularly by scripts.

The only extra cost involved is that the metadata adds to the size, in bytes, of the transaction and the processing fee is based on transaction size.

Metadata can be constructed using the Concise Binary Object Representation (CBOR) and Concise Data Definition Language (CDDL) notations. For more detailed information, please refer to transaction metadata in the Cardano wallet and see how to use transaction metadata schemes in Cardano CLI.

Transaction metadata is an integral step for Cardano’s evolution into a multi-functional smart contract platform. Further Goguen enhancements will add metadata to specify transaction conditions for smart contracts, opening more opportunities for commercial use and deal settlement. If you want to integrate metadata into your business processes, contact enterprise.solutions@iohk.io with any questions or support requests. And keep following this blog for updates as we continue to build out Goguen functionality.

Bringing new value and utility to the Cardano blockchain

Adding metadata to transactions prepares Cardano to become part of the DeFi revolution

29 October 2020 Alan McSherry 5 mins read

Bringing new value and utility to the Cardano blockchain

With the rollout of Goguen, Cardano is becoming a smart contract platform. Adding metadata – information about the data being processed – to transactions is key to this, and last month this capability was added to the blockchain. From a focus on transactions, Cardano is now becoming a utility platform open for partnerships, enterprises, and commercial applications that can be used for the complex operations that will define the era of decentralized finance (DeFi).

With an increasing volume of financial cryptocurrency operations, the ability to access immutable data that cannot be altered is crucial, especially when it comes to applications such as wealth management. The Cardano blockchain maintains permanent records of processed transactions, ensuring that the history of financial activity is transparent and auditable. However, to grant more accountability and visibility to financial processes, context has to be added to these transactions. Additional information can include facts such as sender and receiver details, conditions, and time of processing. This is done by adding transaction metadata.

What is metadata?

Metadata refers to ‘data about data’. In other words, it describes the context, content, and structure of records. As blockchain technology provides a transparent ledger for storing records immutably and securely, metadata generates trust with permanent data attestation.

All transactions happen for specific purposes, whether this is a payment for product or service, or a funds transfer to a family member. When a purchase is made online, for example, there is so much information that can follow along with the transaction. Metadata can tell the story of the product purchase reflecting its buyer and seller, the time of deal, product manufacturer, or the supply conditions. All of these records are important to maintain along with the transaction of wealth.

With the emergence of Bitcoin, developers started leveraging blockchain technology to put such little bits of additional data on the chain, knowing that the information would be available forever. Over time, adding metadata to the chain became commonplace.

Cardano is a third-generation distributed ledger. In terms of metadata, this means that Cardano is far more efficient in adding transactional information than earlier blockchains. While earlier blockchains supported 40-80 bytes of metadata, Cardano’s transaction size is currently around 16KB. Subtracting the size of the rest of the transaction (UTxOs, inputs, and outputs) still leaves the majority of 16KB for metadata.

Why transaction metadata matters

Metadata is a handy way of certification and validation. It allows cryptocurrency assets to hold historical ownership, transfer or value details. This is highly beneficial when working with non-fungible – unique – assets representing value such as property or intellectual rights, for example. Additionally, a range of documents can be signed and certified using a public key that proves the document’s legitimacy.

One of the most prominent uses for metadata is in a supply chain. Supply chain involves parties such as factories, customers, suppliers, and delivery services. To enable efficient data tracking, participants must provide confirmation of services that are interlinked, and these must be accessible by everyone for verification. In this case, metadata can provide a complete picture of supply chain processes with fixed recorded data on the blockchain ledger. This grants transparency, immutability, and trust for all stakeholders.

The Atala products

The deployment of metadata on Cardano will see early commercialization through the Atala product suite, which includes Atala Prism, Atala Trace, and Atala Scan solutions. To enhance the overall product functionality in terms of data feasibility, accountability, and traceability, the IOHK team is implementing metadata support while integrating with the Cardano ledger.

Atala Prism is a decentralized identity system that enables people to own their personal data and interact with organizations seamlessly, privately, and securely. The Atala Prism team is integrating metadata to certify and store DIDs and DID documents on Cardano. Also, it will be possible not only to create but also to revoke credentials such as university certificates.

Atala Trace and Atala Scan are being developed to enable brand owners to improve the visibility over supply chain processes and establish product provenance and auditability. In these cases, metadata integration will be used to record tamper-proof supply-chain records.

Working with metadata

There are different ways of working with metadata both for enterprises and the developer community. One such way is using the metadata service developed by IOHK’s Professional Services Group. We have been working with a number of partners on integrations and have many more in the pipeline. So if you’re running a business and also wish to ensure trust for your customers and partners while managing your transaction metadata securely, please contact us via enterprise.solutions@iohk.io to find out how to incorporate metadata services in your processes.

Transaction metadata is an important early feature of Goguen utility and smart contract functionality, which will be enhanced and developed by many other capabilities over the months ahead. Stay tuned to this blog for all the updates on native assets, ERC20 convertor, Marlowe, Plutus and other smart contract languages as we roll these out.

A Joint Statement on Ethereum Classic’s Monetary Policy

27 February 2017 Alan McSherry 3 mins read

A Joint Statement on Ethereum Classic’s Monetary Policy

I'd like to thank everyone from the Ethereum Classic community for their support. I'm really excited to present the following statement which is in reference to monetary policy for the ETC platform. The Ethereum Classic community has grown substantially since its inception in July of 2016. In order to further Ethereum Classic’s vision, the community needs to adopt a monetary policy that balances the long-term interests of investors, developers, and business operators.

This statement represents a collaborative show of support for the monetary policy proposed in ECIP 1017. As industry stakeholders, ETC community members, exchange operators, mining pool operators, miners, wallet providers, developers, the Distributed Autonomous Coalition Asia (DACA) and the China Ethereum Classic Consortium (ECC), and other industry participants; we are committed to jointly planning and implementing a road map to effect the future ETC monetary policy.

We have agreed on the following points:

  • We understand that a monetary policy has been proposed that establishes an upper bound on the total number of ETC that will ever be issued, and that this policy was the result of extensive discussions within the community. The policy also defines a method of reducing the block reward over time. It is available in English here and in Chinese here.

  • The new monetary policy sets a limit for the total ETC issuance. The block reward will be reduced by 20% at block number 5,000,000, and another 20% every 5,000,000 blocks thereafter. Uncle block rewards will also be reduced. Due to variations in the reward rate of ETC, we anticipate the total supply to be approximately 210 million ETC, not to exceed 230 million ETC.

  • We will continue to work with the Ethereum Classic protocol development community to develop, in public, a safe hard fork procedure based on the proposed monetary policy. ETCDEV Team will provide an implementation of the monetary policy for both the geth and parity clients after the hard fork procedure is agreed upon.

  • We will run consensus systems that are compatible with Ethereum Classic clients, which will eventually contain the ECIP 1017 monetary policy and the hard-fork, in production.

Based on the above points, the timeline will likely follow the below dates.

Development Estimates

  • Geth and Parity clients that include the updated monetary policy are expected to be released in June 2017.

  • If there is strong network-level support, the hard-fork activation will likely happen around Fall 2017.

  • If the hard fork is activated, the first reduction in block reward will happen around December 2017.

Our common goal is to make Ethereum Classic a success. We believe that the community can unite and work together to achieve a sustainable global platform.

Together, we are:

  • 白洪日, CEO, 币创网bichuang
  • 陈刚, CEO, ETCWin & 91pool
  • 顾颖(初夏虎) Eric Gu, CEO, ViewFin & szzc.com
  • 郭宏才 Chandler Guo, Miner & Investor
  • 韩锋博士, Chairman, DACA区块链协会
  • 黄天威, CEO, 比特时代BTC38
  • 胡洪杰, Vice Chairman, DACA区块链协会
  • 李大伟, CEO, CHBTC
  • 毛世行, CEO, F2Pool
  • 徐刚 博士, Developer
  • 许子敬 Ryan Xu, Miner & Investor
  • 张淞皓, CEO, BTC123
  • 赵千捷, Vice President, BTCC
  • 邹来辉Roy Zou, Chairman, 以太坊原链协会 (Ethereum Classic Consortium)
  • Igor Artamonov, CTO, ETCDEV Team
  • Charles Hoskinson, CEO, IOHK
  • Michael Moro, CEO, Genesis Global Trading
  • Yates Randall, CTO, epool.io
  • Barry Silbert, Founder & CEO, Digital Currency Group & Grayscale Investments
  • Cory Tselikis, Miner Investor and Pool Operator, etc.minerhub.io & bec.minerhub.io

Introducing The Grothendieck Team

10 December 2016 Alan McSherry 4 mins read

Introducing The Grothendieck Team

The Grothendieck Team

Hi everyone, it's my pleasure to officially announce the new team known as The Grothendieck Team! The team has been named after Alexander Grothendieck, a German-born French mathematician who became a leading figure in the creation of modern algebraic geometry. They have been committed to Ethereum Classic by IOHK in order to build a Scala client for ETC based on IOHK's Scorex framework. Plans are in place to bring the team on "Let's Talk ETC!" to discuss the roadmap and development timeframe for ETC in 2017 (after they have properly reviewed the ETC documentation). Links to the IOHK website, Scorex page, Let's Talk ETC! youtube channel and ETC blog are posted below.

  • www.iohk.io
  • Github.com/ScorexFoundation
  • Let's Talk ETC! on youtube.com
  • Ethereumclassic.github.io/blog

Also, we would love to know more about how the community would like to get updates from the new ETC developers. Please let us know what you might like to see moving forward, post your thoughts in the brainstorming thread below or contact us on Slack, Twitter or Facebook.

  • www.reddit.com

Alan McSherry : Dublin, Ireland enter image description here

Ethereum Classic Developer Team Grothendieck Manager

Alan McSherry graduated with a degree in Computer Engineering from Limerick University In Ireland and has spent well over a decade at the cutting edge of technology as a developer, CTO, consultant, entrepreneur and everything in between. A strong interest in the nature of money and the positive disruption technology can bring means he is currently having a ball writing blockchain code in scala!

Alan Verbner : Buenos Aires, Argentina enter image description here

Ethereum Classic Developer Team Grothendieck/Atix

Alan Verbner is a computer engineer graduated from the Engineering University of Buenos Aires (Argentina). He has been developing software for about 10 years with special inerest in criptocurrency space. Four years ago he Co-Founded Atixlabs, a software lab that has been helping other companies to make their ideas come true as great high quality products. They are located in the Buenos Aires Bitcoin Embassy.

Nicolas Tallar : Buenos Aires, Argentina enter image description here

Ethereum Classic Developer Team Grothendieck/Atix

Nicolas Tallar has a background on Computer Science and he is about to get his degree from University Of Buenos Aires (Argentina). He is a passionate functional programmer with special interest in image processing and robot controlling algorithms.

Jan Ziniewicz : Warsaw, Poland enter image description here

Ethereum Classic Developer Team Grothendieck

I’ve been working in IT industry since 2004. Apart from being a functional programmer I also was a project manager, system designer and administrator. In free time I am rock climber, cyclist, RPG player, and of course Clojure / Scala coder.

Lukasz Gasior : Rumia, Poland enter image description here

Ethereum Classic Developer Team Grothendieck/ScalaC

I’m a passionate Scala developer and a big fan of Domain Driven Design. For the past 3 years I’ve been working on various sized commercial (and non-commercial) Scala projects. I’m a cryptocurrency and blockchain technology enthusiast. Privately I like to travel and taste craft beer.

Adam Smolarek : Warsaw, Poland enter image description here

Ethereum Classic Developer Team Grothendieck/ScalaC

I’ve been working as software developer since 2010, both fornt and back-end, I was also team leader and arhitect. Hobby: digital drawing, rock climbing, skateboarding, IoT (did master thesis in realated topic), cryptography (ECC).

Radek Tkaczyk : Warsaw, Poland enter image description here

Ethereum Classic Developer Team Grothendieck/ScalaC

I’ve been developing in Scala since 2012 for a number of commercial clients. Having started my adventure with programming at the age of 13 this was a natural choice of a career path. However I’ve always had a fondness for abstract and pure ideas which is why I’m especially keen on working in a field so heavily reliant on mathematics. Outside of work I actively enjoy various sports, especially cycling and fitness as well as those for the mind like chess and - my latest passion - cue sports.

Links To Our Community

ETC Website

ETC Reddit

ETC Twitter

ETC Facebook

ETC Slack

ETC-IOHK Team