<p>You have many options for that:</p>
<ol>
<li>programmatically create a Plutus smart contract to mainnet</li>
</ol>
<p>Here the only option is <a href="https://pluts.harmoniclabs.tech/docs/Getting%20Started" rel="nofollow noreferrer"><code>plu-ts</code></a>; it allows you to write and compile a smart contract directly in typescript (or javascript if you prefer)</p>
<p>you can even store pieces of contracts inside typescript functions and then build your contracts programmatically.</p>
<p>the compilation happens in the js runtime so you can compile them in your application.</p>
<p>Alternatively, you could use Helios, which can also be compiled in the js runtime; but is not javascript, is a newly created language.</p>
<ol start="2">
<li>check what assets are currently locked at a given script address</li>
</ol>
<p>This can be done even without any library, what you need is something to query the blockchain.</p>
<p>many use <a href="https://docs.blockfrost.io/9" rel="nofollow noreferrer"><code>blockfrost</code></a>; I would also suggest you to have a look at <a href="https://api.koios.rest/#overview" rel="nofollow noreferrer"><code>koios</code></a></p>
<ol start="3">
<li>create and send a transaction</li>
</ol>
<p>here you have many options too.</p>
<p><a href="https://pluts.harmoniclabs.tech/docs/category/offchain" rel="nofollow noreferrer"><code>plu-ts</code> also has an offchain component</a> that allows you to build transactions.</p>
<p><a href="https://lucid.spacebudz.io/docs/overview/about-lucid/" rel="nofollow noreferrer"><code>Lucid</code></a> is also an option but is based on a customized version of the cardano-multiplatform-library; so you would have to allow for web assembly; which can be tricky.</p>
<p><a href="https://meshjs.dev/" rel="nofollow noreferrer"><code>Mesh SDK</code></a> is also currently based on web assembly (though are switching the backend to <code>plu-ts</code> in a future version) and it also <a href="https://meshjs.dev/react/ui-components" rel="nofollow noreferrer">provides you all the tools to build a user interface (UI)</a> for you applicaiton</p>

CC BY-SA 4.0
2023-06-13T09:23:59.803Z
2023-06-13T09:23:59.803Z
Michele Nuzzi
<p>Yes, there are multiple:</p>
<ul>
<li><a href="https://lucid.spacebudz.io/" rel="nofollow noreferrer">Lucid</a></li>
<li><a href="https://meshjs.dev/" rel="nofollow noreferrer">Mesh</a></li>
<li><a href="https://pluts.harmoniclabs.tech/docs/category/offchain" rel="nofollow noreferrer">plu-ts</a></li>
<li><a href="https://www.hyperion-bt.org/helios-book/api/building/index.html" rel="nofollow noreferrer">Helios</a></li>
<li>Slightly less on abstraction is <a href="https://github.com/dcSpark/cardano-multiplatform-lib" rel="nofollow noreferrer">Cardano Multiplatform Library</a> &amp; <a href="https://github.com/Emurgo/cardano-serialization-lib" rel="nofollow noreferrer">Cardano Serialization Library</a>.</li>
</ul>

CC BY-SA 4.0
2023-06-13T08:45:43.100Z
2023-06-13T08:45:43.100Z
Sourabh
<p>Are there any javascript SDKs which enable you to do the following:</p>
<ul>
<li>programmatically create and submit a Plutus smart contract to mainnet</li>
<li>check what assets are currently locked at a given script address</li>
<li>create and send a transaction inlcuding some ada and native tokens to a given script address</li>
</ul>

<plutus><plutus-pioneer-program><token><script-addresses><javascript>
Javascript SDK for working with Plutus smart contracts
# Javascript SDK for working with Plutus smart contracts

(Asked by: username_0 on 2023-06-13)

Are there any javascript SDKs which enable you to do the following:

* programmatically create and submit a Plutus smart contract to mainnet
* check what assets are currently locked at a given script address
* create and send a transaction inlcuding some ada and native tokens to a given script address

**Tags:** plutus, plutus-pioneer-program, token, script-addresses, javascript

---

## 2 answers

### Answer by username_1 on 2023-06-13. Score: 3 | Accepted answer

You have many options for that:

1. programmatically create a Plutus smart contract to mainnet

Here the only option is [`plu-ts`](https://pluts.harmoniclabs.tech/docs/Getting%20Started); it allows you to write and compile a smart contract directly in typescript (or javascript if you prefer)

you can even store pieces of contracts inside typescript functions and then build your contracts programmatically.

the compilation happens in the js runtime so you can compile them in your application.

Alternatively, you could use Helios, which can also be compiled in the js runtime; but is not javascript, is a newly created language.

2. check what assets are currently locked at a given script address

This can be done even without any library, what you need is something to query the blockchain.

many use [`blockfrost`](https://docs.blockfrost.io/9); I would also suggest you to have a look at [`koios`](https://api.koios.rest/#overview)

3. create and send a transaction

here you have many options too.

[`plu-ts` also has an offchain component](https://pluts.harmoniclabs.tech/docs/category/offchain) that allows you to build transactions.

[`Lucid`](https://lucid.spacebudz.io/docs/overview/about-lucid/) is also an option but is based on a customized version of the cardano-multiplatform-library; so you would have to allow for web assembly; which can be tricky.

[`Mesh SDK`](https://meshjs.dev/) is also currently based on web assembly (though are switching the backend to `plu-ts` in a future version) and it also [provides you all the tools to build a user interface (UI)](https://meshjs.dev/react/ui-components) for you applicaiton


---

### Answer by username_2 on 2023-06-13. Score: 0

Yes, there are multiple:

* [Lucid](https://lucid.spacebudz.io/)
* [Mesh](https://meshjs.dev/)
* [plu-ts](https://pluts.harmoniclabs.tech/docs/category/offchain)
* [Helios](https://www.hyperion-bt.org/helios-book/api/building/index.html)
* Slightly less on abstraction is [Cardano Multiplatform Library](https://github.com/dcSpark/cardano-multiplatform-lib) & [Cardano Serialization Library](https://github.com/Emurgo/cardano-serialization-lib).


---

