# Solidity

{% hint style="info" %}
This page is a reduced version of the [Solidity docs site](https://solidity.readthedocs.io/en/v0.4.24/) that is adapted to JuncaChain to avoid overwhelming information.
{% endhint %}

Solidity is a contract-oriented, high-level language for implementing smart contracts. It was influenced by Python and JavaScript and is designed to target the Ethereum Virtual Machine (EVM) both Ethereum and JuncaChain.

Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features.

As you will see, it is possible to create contracts for voting, crowdfunding, blind auctions, multi-signature wallets and more.

{% hint style="info" %}
The best way to try out Solidity right now is using [Remix](https://remix.ethereum.org/) (it can take a while to load, please be patient). Remix is a web browser based IDE that allows you to write Solidity smart contracts, then deploy and run the smart contracts.
{% endhint %}

Once you're strong enough, on the next pages, we will first see a [simple smart contract](https://solidity.readthedocs.io/en/v0.4.24/introduction-to-smart-contracts.html#simple-smart-contract) written in Solidity followed by the basics about [blockchains](https://solidity.readthedocs.io/en/v0.4.24/introduction-to-smart-contracts.html#blockchain-basics) and the [Ethereum Virtual Machine](https://solidity.readthedocs.io/en/v0.4.24/introduction-to-smart-contracts.html#the-ethereum-virtual-machine).

The next section will explain several *features* of Solidity by giving useful [example contracts](https://solidity.readthedocs.io/en/v0.4.24/solidity-by-example.html#voting). Remember that you can always try out the contracts [in your browser](https://remix.ethereum.org/)!

The last and most extensive section will cover all aspects of Solidity in depth.

If you still have questions, you can try searching or asking on the [Ethereum Stackexchange](https://ethereum.stackexchange.com/) site, or come to our [Gitter channel](https://gitter.im/ethereum/solidity/). Ideas for improving Solidity or this documentation are always welcome! the world:

{% code title="hello.sh" %}

```bash
# Ain't no code for that yet, sorry
echo 'You got to trust me on this, I saved the world'
```

{% endcode %}


---

# 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://doc.juncachain.com/developer-guide/smart-contract-development/solidity.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.
