add smart contract