Last updated 7 months ago
Writing Smart Contracts on Cardano in Plutus/Haskell is difficult. Alternatives like OpShin (Python) need well made educational content to onboard and enable new developers to start building.
A Plutus-Pioneer-Program style educational program spanning 10 weeks at 2 hours video material covering the OpShin programming language and getting started.
This is the total amount allocated to OpShin Education - Free Educational Videos about Python Smart Contracts. 1 out of 3 milestones are completed.
1/3
First batch of lectures
Cost: ₳ 5,775
Delivery: Month 1 - Nov 2023
2/3
Second Batch of lectures
Cost: ₳ 5,775
Delivery: Month 2 - Dec 2023
3/3
Third batch of lectures
Cost: ₳ 7,700
Delivery: Month 3 - Jan 2024
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
None
No dependencies.
Project will be fully open source.
This proposal suggests to create educational videos about the programming language OpShin which lead absolute beginners from the basics of Python to deploying their very own dApp on Cardano. But what is OpShin?
This is OpShin: a toolchain that lets developers construct Cardano smart contracts in Python. Why Python?
The problems of Haskell
Haskell is hard
As an exotic language, Haskell has very few people able to work on it, ranking only the 25th most used language on GitHub, with only 0.39% of the userbase actively using it. Very few people are proficient in Haskell, and even fewer can help you out with the peculiarities of PlutusTx: with how to implement smart contracts on Cardano.
Instead of building in the language you already know and use in everyday work and life, you have to learn a completely new language – and peer support for it is limited.
On-chain code doesn’t integrate smoothly with off-chain code
Whilst the on-chain part of a dApp handles the transactions on the blockchain, the off-chain part often handles the rest of the dApp. Developers are forced to use two completely separate tools, often in separate languages. This costs Focus - and introduces unnecessary friction at integration and potential security issues.
Instead of working on how to best solve a problem to serve your users’ needs, you’re pulling your hair trying to make the two halves of your dApp work together.
Smart Contract size is limited, and PlutusTx is hefty
Smart Contracts have tight constraints on size and execution steps. PlutusTx and other tools often translate type constraints to expensive and unnecessary on-chain transactions, limiting developers in the complexity of what they can build.
Instead of building the best solution possible, you’re hamstringing yourself just to make sure the most critical parts of your smart contract can be executed on the blockchain.
How OpShin frees you
The OpShin Toolchain comprises several projects that aim to facilitate the development of Smart Contracts and dApps on Cardano. They are largely based on Python, or integrate well with it for maximal accessibility.
Python has a wide and growing community
At the time of writing, Python is the second-most used language on GitHub, with 14.75% of the active userbase working with Python, and enjoys a 22.5% year-over-year increase in users; this is driven in part by its utility in data science and machine learning.
Everyone who knows Python can leverage the toolstack available for Python development to build on Cardano; and that is a lot of people, with a lot of tools.
OpShin natively integrates with Python Cardano tooling
Developers can build both off-chain and on-chain tooling in just Python, and are able to directly import definitions and functions that are defined in the on-chain contract, into their off-chain tooling. This reduces the friction that is naturally-induced by Cardano’s design when building combined tools.
Everyone who knows Python can develop fluently and without interruption, without the cost of constantly having to change gears and mindsets just to build dApps.
OpShin is light, fast, and maintains security
OpShin enforces strict typing on the high-level programming: it implements a type system on top of Python type hints. However, all traces of typing are erased during compilation, for a maximum efficiency program. OpShin beats many programming languages when taken to the test for real use-cases.
Everyone who knows Python can build a dApp that runs faster, costs their users less, and executes more.
How does OpShin perform?
How much does OpShin save?
Testimonials
“ImperatorLang makes smart contract development the easy part of dApp development. I have spent far longer on off-chain code than on implementing smart contracts.” - @while0x1, SPO
“My experience was very positive. As a python library, eopsin does well at performing as expected. It's clear when things don't work and the language is intuitive.” - Julius Frost, Full-time Python dev
The OpShin toolchain is and will always be fully open-source. This is a necessary property of a Smart Contract language that requires widespread trust and inspectability.
The impact on Cardano is already huge - within 5 months of the initial release, 3 dApps have been released built on OpShin. We are expecting that this will grow even more with additional funds to foster the development of documentation, developer experience improvements and educational content.
We want to make sure that community members and new developers can easily start building on Cardano. For this purpose a custom made introduction to Python programming and writing of smart contracts on Cardano will be created.
We will measure success by determining the number of launched Smart Contracts and dApps based on OpShin and in general on Cardano.
The created lessons will be uploaded weekly to the OpShin youtube channel. They will be linked directly from the opshin-pioneer-program github repository and replace existing, Plutus focused material.
The main proposer, Niels, has already bootstrapped the main part of the project. In its current form the tool is able to be used and already being used. The proposer is completely doxed and well-known in the Community. He has 5 years of experience in teaching at university and is renowed for his easy to follow and well comprehensible content.
The main goal is to provide simple-to-assess content for new and aspiring developers on Cardano. The Plutus Pioneer Program is a good estimate of the feasibility of such a project, and since it was already done even for something as complicated as Haskell, we consider the project feasible.
The project will cover 10 lectures in similar style and format as the Plutus Pioneer Program. The lectures are to be released weekly from the receival of the funds onwards. The Plutus Pioneer Program structure is provided as a point of reference below.
Lecture 1
Lecture 2
Lecture 3
Lecture 4
Lecture 5
Lecture 6
Lecture 7
Lecture 8
Lecture 9
Lecture 10
The deliverables of the lectures are each
The project will require 10 weeks of effort, each with 2-3h of content. The estimated amount of work to prepare each weeks content will likely amount to 10h per week.
Hence the total cost will be 10 x 10h x 192.5 ADA/h (~ $USD 64/h) = 19250 $ADA
High quality content for learning the extremely simple to use language Python is lacking in the ecosystem. It requires an expert in the field to properly explain the details and shed light on the different aspects of writing Smart Contracts. Niels and Julius are such highly experienced experts in the field of Cardano and able to create the required content using their academic background.
Niels Mündler aka nielstron is well-known in the Cardano Community. He has co-founded the MuesliSwap DEX and gave birth to the programming language OpShin. His background is computer science at ETH Zurich, Switzerland.
In the OpShin team, he is taking over the role of Founder, CTO and CEO, running the whole thing as a one-man show.
He is supported by Julius Frost, Boston U graduate and working in the ML field, who created the opshin pioneer program and is a highly experienced Python developer. He is a frequent contributer and maintainer and helps assessing the quality of submitted issues and PRs.