Astar Network (previously known as Plasm Network) is a dapp hub in the Polkadot ecosystem, supporting EVM, WebAssembly, and Layer2 solutions like Rollups.
What challenges did the project face and what problems is it trying to solve?
Polkadot’s Relay Chain doesn’t support smart contract functionalities by design. Therefore, a parachain that supports smart contract functionalities well would be a great benefit to the Polkadot ecosystem.
How did the specific features of Substrate solve the challenges faced?
When it comes to smart contracts, multi virtual machines and scalability are the key properties of the next-generation smart contract platform. Substrate is a customizable blockchain framework that natively supports WebAssembly smart contracts and has an EVM pallet. This allows Astar to support both of these virtual machines (VMs), allowing them to co-exist and be interoperable with one another.
Additionally, Substrate is upgradable without hard forks. This allows Astar to add their layer 2 (L2) and basic income pallet accordingly.
What was the concrete solution or implementation that couldn’t be done without Substrate and is heavily reliant on one or more of the key features of Substrate?
Astar has developed a very innovative concept called “Dapps Staking”, which allows an account to stake tokens to a smart contract. This pallet utilizes Substrate’s pallet hooks to set staking rewards for each block. Another feature in Astar’s runtime is the Custom Signature Call. This pallet allows accounts to execute Substrate extrinsic calls using an external ECDSA signature (eg: signing a call with Ledger Ethereum account). Substrate’s extrinsics modularity made it possible to wrap native calls with external signatures for expandability. Finally, a key component of Astar is the Multi Virtual Machine. Both the contract pallet and EVM pallet that are part of the Substrate ecosystem allow the project to provide multiple contract execution environments. This usability was further improved by allowing interoperability between the two different VMs through precompiled contract calls.