# Writing Smart Contracts

- [RUST Contracts](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts.md)
- [Phron smart contracts basics](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/phron-smart-contracts-basics.md): Join us on the Phron Testnet to explore smart contract functionalities—this guide will walk you through setting up, deploying, testing, and accessing tools to build secure and scalable dApps.
- [Setting up a Testnet account](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/phron-smart-contracts-basics/setting-up-a-testnet-account.md): All you need to know about navigating the Testnet can be found here as we go over the two crucial components necessary to take advantage of this test environment.
- [Installing required tools](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/phron-smart-contracts-basics/installing-required-tools.md): Before running your first smart contract on Phron, you will first need to prepare your computer for development in Rust and ink!. Here's a handy guide to get you started.
- [Creating your first contract](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/phron-smart-contracts-basics/creating-your-first-contract.md): As now your machine is ready for development, it's time we build our first smart contract. The example contract we are going to develop in this tutorial is a simplified version of the ERC20 token.
- [Deploying your contract to Phron Testnet](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/phron-smart-contracts-basics/deploying-your-contract-to-phron-testnet.md): In this tutorial, we will go over the some of the ways of interacting with the smart contract environments on the Phron blockchain.
- [Extending your contract](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/phron-smart-contracts-basics/extending-your-contract.md): Here you will find a collection of "how to" on various topics related to writing smart contracts in ink!
- [Cross contract calls](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/cross-contract-calls.md): This section covers the more advanced topic of calling another contract from your code.
- [Using references](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/cross-contract-calls/using-references.md): The Bulletin Board example uses a reference to the HighlightedPosts contract to delete highlights. In this section, we will take a look at three basic building blocks of cross-contract calls.
- [Using dynamic calls](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/rust-contracts/cross-contract-calls/using-dynamic-calls.md): If you find yourself needing more expressive power than the references have to offer, you can use the dynamically constructed calls.
- [Solidity Contracts](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts.md)
- [Phron API](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-api.md)
- [Get Started with Smart Contracts](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-api/get-started-with-smart-contracts.md)
- [Using GPT-4 to Write and Debug Solidity Smart Contracts](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-api/get-started-with-smart-contracts/using-gpt-4-to-write-and-debug-solidity-smart-contracts.md)
- [How to Build a DApp: Complete DApp Architecture](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-api/get-started-with-smart-contracts/how-to-build-a-dapp-complete-dapp-architecture.md)
- [Using Foundry Start to End with Phron](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-api/get-started-with-smart-contracts/using-foundry-start-to-end-with-phron.md)
- [Hardhat Developer Workflow](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-api/get-started-with-smart-contracts/hardhat-developer-workflow.md)
- [Smart Contracts: WASM vs Solidity](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-api/get-started-with-smart-contracts/smart-contracts-wasm-vs-solidity.md)
- [Phron Toolkit](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-toolkit.md)
- [Libraries](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-toolkit/libraries.md)
- [viem](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-toolkit/libraries/viem.md)
- [Dev Environments](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-toolkit/dev-environments.md)
- [Verify Contracts](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-toolkit/verify-contracts.md)
- [JSON-RPC APIs](https://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts/solidity-contracts/phron-toolkit/json-rpc-apis.md)


---

# 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://docs.phron.ai/developers/copy/smart-contracts/writing-smart-contracts.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.
