Please describe your proposed solution.
We have developed and open-sourced the Stellar Contracts library during 2023. We will continue to do development on the project and we're seeking Catalyst sponsorship for already-delivered code supporting smart-contract developers on Cardano.
Stellar Contracts is a Typescript library that developers can use to construct constellations of collaborating smart contracts, in a design pattern that has not yet gained broad attention in the Cardano development community.
Stellar works by enabling smaller, simpler, more-focused contracts to be combined for powerful results, including the ability to update an on-chain contract's behavior without changing its address; to better reuse on-chain and off-chain code; and to plug in policy variants for customization and flexibility in reuse.
Stellar Contracts provides a framework for dApp developers to represent the internal capabilities of their on-chain code (+off-chain txn-building code) using higher-level interfaces that directly fit the problem/solution space of their application.
As a result, you can present a dAPI for your application - a decentralized API or dAPI providing application-level concepts, activities, data structures, and transaction-building helper-functions that match your app.
Being able to publish a pure javascript package with the dAPI for your application creates benefits including:
- UI developers can integrate with blockchain code through Javascript/Typescript, with type-safety built into their editor, so more Cardano-using applications can be built more easily
- A dApp developer can choose to provide their on-chain capabilities in a library that can be used by other projects, so other projects can include chain-connected / on-chain behaviors into other application UI's, and magnify the impact of the smart-contract code.
- dApp developers can publish their dAPIs as open-source, advancing transparency and auditability while integrating them into advanced UI's that create richer experiences and sustainable business value.
The essential library for Stellar Contracts has already been created, and can benefit from funding support for further development. The scope of work already completed includes:
- Use-case analysis (user-level and developer level) and functional requirements development
- Project architecture design
- Integration-test-driven development for a simple coin-minter (SampleTreasury in the repo)
- Technical content development providing guidance for developers using the platform
- Beta / testnet-ready code complete
- Scenario-driven test-automation helper classes
The remaining scope of work being proposed includes:
- Create and publish detailed reference material for test helpers, contract-helper functions, and a few classes and types.
- Continue testnet validation, refinements to packaging, publishing to NPM
- Continue low-level unit testing for code-coverage redundancy
The essential results of this proposal are already available on Github. Support open-source development for Cardano.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
Stellar Contracts addresses the "Plutus tools and software" segment of the challenge, as it is a development tool that helps developers more easily write and deploy smart contracts onto the Cardano blockchain.
Because Stellar (and Helios) are javascript-based, they can run within the browser, so that application developers can get started simply by using their normal build environment (node.js on developer machines) and a one-line installation command. It also means that static web applications will be deployable e.g. to Github Pages with built-in smart contracts, forming self-sovereign static web apps. Easier smart contract development ✅
Stellar provides architectural patterns through its APIs and its documentation which developers can apply in their projects. By plugging together various scripts, unique-utility-tokens (or UUT's) and contract delegates, designers and developers get the chance to work at a higher level and create more advanced product value from smaller, more-reliable components that are more easily audited. ✅
Stellar's requirements API will provide product teams and developers with a bridge between planning and development, supporting iterative development as well as clear mappings between requirements, tests, and code.
When developers arrive to Cardano and find an accessible pathway to create meaningful application logic that integrates easily with their web application, Cardano will get more productive developers ✅, more useful applications ✅, more end-users ✅ and better economic health ✅.
How do you intend to measure the success of your project?
When we see chain-connected serverless applications built in weeks, not months, we'll know we have succeeded. We'll also be interested to see engagement in our discord server, stars on Github, and signups for our learning program.
We'll hope for issue-reports in our Github repo - but not too many.
Please describe your plans to share the outputs and results of your project?
We have already provided the open-source repository and CC website. We look forward to continuing refinements to Stellar Contracts, including an additional F10 proposal to support a learning program to teach these new patterns and practices of JS/TS-based test-driven contract development.
We will also be using Stellar Contracts to develop tokenomics models, utility contracts such as vesting and revenue-sharing, and for cooperative stake-sharing.
Our aspiration is to multiply by 1000x the number of software developers who can build value-centric applications on Cardano.