Role of smart contracts in building Web3 applications