# Turing-Complete Smart Contract

Turing-complete smart contracts open the door to numerous use cases in video streaming and beyond, from token investments in streamers, to automated splits of SPAY rewards between platform/streamers/users, to non-fungible tokens (NFTs) representing top content creators. The Script Virtual Machine is compatible with the Ethereum Virtual Machine. Thus, porting over existing Ethereum-based contracts is simple and thousands of smart contract developers can easily jump to building on Script.

Script's release, along with the Script/Ethereum RPC adaptor project, provides support for the Ethereum RPC API similar to Binance Smart Chain and Polygon. The Script/Ethereum RPC adapter software translates the Script RPC endpoints into the Ethereum RPC APIs. With it, Script now supports the entire Etherum DApp dev stack including Metamask, Hardhat, Remix, Ethers.js, Web3.js, and Truffle Suite. Ethereum DApps that are ported over to Script can use the same API calls to interact with Script blockchain. This means Ethereum DApps can be deployed to Script with no or minor modifications and tap into the growing Script user and capital base.

Before diving into more detail, we note that on the Script Blockchain, SPAY takes the place of ETH in all contracts. Just as you need ETH to deploy or interact with smart contracts on Ethereum, you need SPAY to do so on Script blockchain. All SPAY used to deploy or interact with smart contracts would be completely burned.

In this guide, we will walk you through the following topics:

* Script support for the Ethereum RPC API suite.&#x20;
* Use Metamask with Script.&#x20;
* Support for smart contract development tools, including Truffle, Hardhat, and Remix.&#x20;
* Support for libraries such as Web3.js, and ethers.js (checkout our Hardhat demo with ethers.js).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.script.tv/smart-contract-and-app-development/turing-complete-smart-contract.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
