I'm doing week 3 of the Plutus Pioneer Program. The CLI portion was especially interesting to me. If I understand correctly, the cardano-cli can interact with the real mainnet, which presents the following opportunity: Use the CLI to execute transactions, but have everything else (all the business logic) controlled by a non-Plutus programming construct (eg. PHP, MySQL, Python, even Applescript).

Writing dynamically created shell scripts to execute individual transactions appears to be fairly straightforward. What obstacles/problems/unintended consequences might I encounter creating such a thing? Much of what Plutus smart contracts allow does not apply to the business project I am envisioning.

2 Answers 2


You are correct - there were many scripts created by the community for mainnet use long before Plutus Contracts launched in September 2021. A good example of this are the Guild Operator's Wrapper Scripts. - an excellent toolkit mostly written for shell use.

If Plutus is not/minimally necessary for your business logic, then bon voyage!

  • Both answers offered are excellent. I wish I could vote for both.
    – XiTouch
    Feb 11 at 8:22

I have some example python code that does pretty much what you ask called adawallet. https://github.com/input-output-hk/adawallet

It works by shelling out to the CLI from a python library to cardano-cli, cardano-address and cardano-hw-cli. It gets chain state from cardano-rosetta so the user creating the transactions doesn't need a full node, and user signing transactions can do so fully offline with no internet access to keep the keys secure. It keeps local state in a SQLite database.

The downside of developing an application for others to use without plutus scripts is it requires trust on the user using your service that your code will do what they asked it to. Plutus on the other hand gives you on-chain code that if the user knows what the code is supposed to do, they don't need to trust a central authority to do what they've asked. This is essentially for example the difference between a centralized exchange and a decentralized exchange. The decentralized one uses on-chain code to deliver some guarantee to the user.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.