Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/input-output-hk/marlowe-ts-sdk

Marlowe TypeScript SDK
https://github.com/input-output-hk/marlowe-ts-sdk

cardano fp-ts input-output marlowe marlowe-contracts smart-contract

Last synced: 3 months ago
JSON representation

Marlowe TypeScript SDK

Awesome Lists containing this project

README

        



Logo



Lightweight and typesafe SDK for writing Marlowe Contracts






Beta


> [!IMPORTANT]
> This Marlowe repository will soon be moved to https://github.com/marlowe-lang. The new repositories will be administered by an independent vehicle, a not-for-profit organization currently being set up by the transition team.

> This will allow us to ensure community representation and stewardship. Future developments and support for Marlowe are transitioning to a community-driven model initially led by [Simon Thompson](https://github.com/simonjohnthompson), [Nicolas Henin](https://github.com/nhenin) and [Tomasz Rybarczyk](https://github.com/paluh).

> See [here](https://github.com/marlowe-lang/.github/blob/main/profile/transition.md) for details.

The **Marlowe TS-SDK** is a suite of _TypeScript/JavaScript_ libraries for developing Web-Dapp in the Cardano Blockchain using Marlowe Technologies.

It is composed of several npm packages documented in the [API reference](https://input-output-hk.github.io/marlowe-ts-sdk/) page.

## Runtime

In order to interact with Marlowe contracts, the **TS-SDK** needs a Runtime instance. The following table shows the compatibility between the SDK and the Runtime versions:

| | runtime v0.0.5 | runtime v0.0.6 | runtime v1.0.0 |
| ------------------------------------------------------------------------------------------- | :------------: | :------------: | :------------: |
| [SDK 0.2.0-beta](https://github.com/input-output-hk/marlowe-ts-sdk/releases/tag/0.2.0-beta) | ✓ | x | x |
| [SDK 0.3.0-beta](https://github.com/input-output-hk/marlowe-ts-sdk/releases/tag/0.3.0-beta) | ✓ | ✓ | x |
| [SDK 0.4.0-beta](https://github.com/input-output-hk/marlowe-ts-sdk/releases/tag/0.4.0-beta) | ✓ | ✓ | ✓ |

To get a running instance of the Runtime, it is recommended to check out the instructions on the [Marlowe Starter Kit](https://github.com/input-output-hk/marlowe-starter-kit)

## Wallets

### CIP-30 and Browser

The **TS-SDK** has a [CIP-30](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md) abstraction that works with
the following wallets:

| Wallets | Compatible | Not Compatible | Not Tested |
| ------- | :--------: | :------------: | :--------: |
| Nami | ✓ | | |
| Eternl | ✓ | | |
| Lace | ✓ | | |
| Yoroi | | | ? |
| Typhon | | | ? |

### Lucid and NodeJS

The **SDK** also provides a wrapper around the [Lucid](https://github.com/spacebudz/lucid) Library. This allows you to use the SDK in a NodeJS environment.

## Examples & Contract Use Cases

Inside the [examples folder](./examples/Readme.md) you can find a set of minimal examples on how to use different packages of the SDK.

Prototypes have been also built on top of this sdk:

- Payouts
- [Github Repository](https://github.com/input-output-hk/marlowe-payouts)
- [Deployed DApp](https://payouts-preprod.prod.scdev.aws.iohkdev.io/)
- Token Plans
- [Github Repository](https://github.com/input-output-hk/marlowe-vesting)
- Vesting Contract
- [Implementation](https://github.com/input-output-hk/marlowe-ts-sdk/blob/main/packages/language/examples/src/vesting.ts)
- [Documentation](https://input-output-hk.github.io/marlowe-ts-sdk/modules/_marlowe_io_language_examples.vesting.html)
- [Deployed DApp](https://token-plans-preprod.prod.scdev.aws.iohkdev.io/)

## Community & Support

- Website : marlowe.iohk.io
- Documentation : docs.marlowe.iohk.io
- Playground : play.marlowe.iohk.io
- Blog : marlowe.iohk.io/blog
- Support : iohk.zendesk.com

## Contributing

To report a bug or request a new feature, please look through existing [Github Issues](https://github.com/input-output-hk/marlowe-ts-sdk/issues) before opening a new one.

To help in the development of this SDK, please refer to [this document](./doc/howToDevelop.md).