How to start learning to develop smart contacts


Smart contacts are a super interesting concept but I find it hard to learn how to develop them.
I am a Java backed developer and find it too hard to understand the papers. Cardanodocs is good for learning proof of steak, Cardano SL, tools, broader concepts and Plutus as a language. But I couldn’t find an actual smart contact example. Also on YouTube I couldn’t find something.
Should I start with Solidity first and then move on to Cardano?



(Moved from Beginners to Developers)

In the new KEVM testnet release announcement a few hours ago, it is recommended to start with Solidity, but in the future when IELE mainnet is released ( approx. at the end of the year), you will be able to develop your smart contract in your language, Java.

The IELE testnet will be released in July. IOHK clearly says that it’s preferable to start with Solidity on both tesnets in the meantime. Best of luck!


Here’s all you need to start: :slight_smile:

P.S. Additionally may be considered:


You guys rock, thanks for your quick feedback! I’ve actually already had a look at the YouTube tutorials you’ve posted @vantuz-subhuman after my post as they are even the first one that come up when searching for Solidity tutorials. Your second link looks also very interesting!
Thanks for the clarification @CosmosX it’s good to know I’m on the preferred track then!
I don’t necessarily need to develop in Java as I’m a quite curious kind of a guy :-). I’ll look into Marlow as well. Maybe I can bring some of my DSL knowledge to the table.


Don’t forget, tho, that Marlowe will be a very domain-specific language for financial contracts only. So it’s not a general purpose language, from what I know. And this simplicity allows to build some tools around it, like Blockly:


Yea, I understand that. Thanks for the reminder.

Thanks, that looks like a helpful and extensive list!

1 Like

I’ve had a look into a small end to end Solidity tutorial [1] and wanted to apply that to Cardano now but got stuck.
It would be really great if someone could support me!
I’ve created the testnet wallet according to the website [2] and added some test tokens as described [3]. They are showing up on getBalance() but I don’t know how to deploy a smart contract and interact with it as in [1].
I tried adding a custom node in my local MEW as in [1] with but that failed with (error_33) Could not connect to the node. Refresh your page, try a different node (top-right corner), check your firewall settings. If custom node, check your configs.
Any help on how to deploy smart contracts is much appreciated!

[1] -
[2] -
[3] -

I could progress on that now thanks to the developers Telegram group and especially Marc there. But there is still one problem I’m stuck with. I’ve created a separate forum entry for that. See: Where to see the state of the smart contact?

I have installed ‘java’ and when I go to run on the windows cdm I get an error, you could or could do the steps to start the ‘testnet’, thanks

Thanks for all the links here, guys.

They are very helpful.

Hi all,

It’s a bit more than a year since this topic was active, but I can’t find any new resources, other than the ones mentioned here.

We have an existing dapp, which we may want to deploy to Cardano; complete with smart contracts, UI, ERC20 and ERC271 tokens, etc…

So, the questions are:

  1. Is it possible to deploy our Solidity contracts to one of the Cardano testnets without changes?
  2. Are there Cardano wallets that actually support smart contract interactions? (Ideally we’d be able to tell users to just point their Ethereum wallets at a Cardano node (or proxy API), because there are so many Ethereum wallets now, and even integrated support in e.g. Opera browser, the HTC Exodus phone, and others. RSK supports this for example.)
  3. Where’s the documentation for dapp developers in general?

Any and all answers to these questions would be most appreciated. Thank you!

1 Like

Hi @raucao

I believe that due to the complexity of building a blockchain from scratch using formal methods and peer reviewed science has proved to be more difficult than IOHK originally expected. Charles certainly appeared to be aiming for as much as possible in his roadmap, but it was ultimately a little over-ambitious.

As a result, there have not only been delays in the core features (staking, smart contracts, etc.) of which Plutus (the native smart contract language) is one of, there was also a decision to drop some of the nice to haves, such as EVM support.

The 3 things you asked for are therefore not yet available (due to these delays) and in fact there are no plans to support Solidity contracts atm. This may change in the future of course.

Keep a look out on for updates and progress.

1 Like