← Back to blog posts
Polymesh News
September 27, 2022

Smart Contracts are now on Polymesh

Polymesh has upgraded to 5.0.3, adding lots of exciting new features for security tokens on the blockchain such as smart contracts, asset metadata, removed limits on secondary keys, and more.

On September 26, 2022, Polymesh was upgraded to 5.0.3, adding lots of exciting new features to the blockchain. 

These new features enable additional use cases for security tokens and other assets issued on Polymesh while allowing developers greater flexibility in how they integrate with Polymesh and design bespoke new features themselves.

Let’s take a look at some of the larger features included in Polymesh 5.0.3

Smart contracts

Polymesh 5.0.3 brings a feature which has been long-anticipated since mainnet launch: the ability for users to deploy smart contracts! 

Polymesh embeds sophisticated features related to asset lifecycle, compliance, settlement, and identity directly into the base layer of the blockchain. In order to truly unlock innovation around these new classes and representations of assets, Polymesh now has the ability for users to write their own smart contracts.

With smart contracts, users can build whatever functionality they desire from within the base layer of the blockchain. A few examples of functionality smart contracts can represent related to regulated securities include decentralized exchanges, automated market makers, securities lending, new settlement approaches, and complex assets. However, smart contracts also unlock other exciting use cases for Polymesh, such as crypto tokens and non-fungible tokens (NFTs).

Smart contracts in Polymesh are written in Ink! Smart Contract language and compiled to WebAssembly. They can be deployed by any onboarded user in the Polymesh ecosystem and are always associated with a specific identity, in line with other Polymesh keys. Additionally, they can only be called by keys attached to an identity that has been successfully onboarded. 

Polymesh’s approach to smart contracts helps keep the blockchain safe for regulated assets whilst providing developers with the ability to innovate on top of the unique features and architecture that Polymesh provides, such as its unique identity system and sophisticated compliance engine.

Future Polymesh releases will continue to expand the functionality of smart contracts by adding the ability to interact with additional base-layer modules in a measured and safety-first approach to rolling out this exciting new aspect of Polymesh.

Asset metadata

Assets issued on Polymesh typically represent regulated securities such as equity, debt, real estate, and so on. One common request we’ve had from issuers and platforms integrating with Polymesh has been the ability to associate metadata with each individual asset. 

For example, a bond might have metadata that describes the maturity of the bond, its periodicity (how often coupons are paid), the day count conventions used in calculating payment periods and dates, the currency that the bond is denominated in, and the country in which it is issued.

By attaching this type of key value data to assets in Polymesh, issuers can more easily tie the asset back to their own books and records off-chain, as well as provide richer data throughout the whole lifecycle of the asset. This feature also allows smart contracts to drive behaviour based on this metadata, giving smart contract developers more information about any referenced assets that might require different business logic.

Removing limits on secondary keys

Polymesh has a sophisticated identity layer that allows users and organizations to manage granular access to their identity using primary and secondary keys

Every on-chain transaction on Polymesh is associated with a specific on-chain identity, but Polymesh allows the owner of an identity to allow multiple keys to sign and submit transactions for that identity by adding them as secondary keys. These secondary keys can have limited permissions to the identity, with specific permissioning on assets, extrinsics, or portfolios supported. 

Prior to the 5.0.3 release, users were limited to having at most 200 secondary keys on an identity. While this wasn’t an issue for many users, large entities integrating with Polymesh requested this change to continue their extensive development. Custodians for example may want to create a secondary key for each client account they onboard to allow granular access, while exchanges may want to create secondary keys to differentiate between different user deposits. 

With Polymesh 5.0.3 we’ve refactored our on-chain storage for secondary keys to remove limits on the number of keys that an identity can have attached to it–and more importantly, removing what was once a barrier for valuable ecosystem entities to integrate with Polymesh unless they found a work-around for this restriction. 

Asset statistics

Embedded into Polymesh is a highly sophisticated compliance engine that allows issuers to specify the rules by which investors can interact with their security tokens. These include rules such as whether investors must be accredited, which jurisdictions are or are not permitted to hold the tokens, and any buy or sell lock-up periods. 

Prior to Polymesh 5.0.3, compliance rules could only look at the details of a single token instruction to determine whether or not it was compliant–meaning rules could only depend on the token’s sender and receiver, and any attestations associated with those identities. Additionally, two specific transfer managers allow issuers to restrict the number of investors as well as the percentages of tokens held by any single investor. 

With Polymesh 5.0.3, Polymesh’s compliance engine becomes even more sophisticated and attuned to issuers’ needs. For starters, we’ve added additional asset-level statistics that can be used in compliance rules. For example, an issuer can now limit the number of investors allowed from a specific jurisdiction or with a particular characteristic (e.g. being accredited). This feature continues to expand the utility of Polymesh’s compliance engine and gives issuers full control over specifying how and when their tokens can be settled between investors. 

Additional improvements + updates

Complementing the larger features described above, Polymesh 5.0.3 implements numerous smaller updates to improve the token issuance process and facilitate easier integrations. 

Most noticeably, we’ve updated to a recent Substrate release to bring in improvements and optimizations from upstream, including the most recent approach to handling chain metadata (distinct from the asset metadata mentioned above). This new approach allows additional integrations with Substrate-based wallets and other chain-based tooling and is of major aid for several of our open Requests for Proposals.

Interested in building on Polymesh? We have two programs to help you out:

  • Our Grants Program for developers building open-source features and functionality on Polymesh
  • Our Ecosystem Development Fund for individuals and businesses integrating Polymesh with closed-source technology
Join Discord

Ready to use Polymesh?