# Welcome

**Seismic is an EVM blockchain with native on-chain privacy.** Write Solidity. Deploy with Foundry. Interact with Viem. The only difference: your users' data stays private.

***

### One letter changes everything

The difference between a public ERC20 and a private SRC20 is one letter:

```solidity
// Standard ERC20 — balances visible to everyone
mapping(address => uint256) public balanceOf;

function transfer(address to, uint256 amount) public {
    balanceOf[msg.sender] -= amount;
    balanceOf[to] += amount;
}
```

```solidity
// Seismic SRC20 — balances shielded by default
mapping(address => suint256) balanceOf;    // uint256 → suint256

function transfer(address to, suint256 amount) public {  // uint256 → suint256
    balanceOf[msg.sender] -= amount;
    balanceOf[to] += amount;
}
```

The `s` prefix tells the Seismic compiler to shield the underlying value. Observers see `0x00...0` instead of actual balances and amounts. Everything else — the Solidity syntax, the EVM execution model, the deployment flow — stays exactly the same.

***

### What you can build

* **Shielded tokens** — ERC20s where balances and transfer amounts are hidden from observers
* **Confidential DeFi** — AMMs and lending protocols where positions, prices, and liquidation thresholds are shielded
* **Compliant finance** — Privacy with built-in access control so regulators can verify without exposing user data
* **Private voting** — On-chain governance where votes are secret until tallied

***

### 3-minute quickstart

Already have Rust and the [Seismic tools installed](https://docs.seismic.systems/getting-started/installation)?

```bash
git clone "https://github.com/SeismicSystems/seismic-starter.git"
cd seismic-starter/packages/contracts
sforge test -vv
```

You just ran shielded contract tests locally. See the [full quickstart](https://docs.seismic.systems/getting-started/quickstart) for next steps.

***

### Find what you need

| I want to...                         | Go to                                                                                                       |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| Understand why Seismic exists        | [Why Seismic](https://docs.seismic.systems/overview/why-seismic)                                            |
| See how it works under the hood      | [How Seismic Works](https://docs.seismic.systems/overview/how-seismic-works)                                |
| Set up my dev environment            | [Installation](https://docs.seismic.systems/getting-started/installation)                                   |
| Run my first shielded contract       | [Quickstart](https://docs.seismic.systems/getting-started/quickstart)                                       |
| Build a complete app step by step    | [Clown Beatdown Tutorial](https://docs.seismic.systems/tutorials/understanding-the-clown-beatdown-contract) |
| Build a shielded ERC20 token         | [SRC20 Tutorial](https://docs.seismic.systems/tutorials/src20)                                              |
| Learn about shielded types           | [Shielded Types](https://docs.seismic.systems/seismic-solidity/shielded-types)                              |
| Integrate a frontend                 | [Client Libraries](https://docs.seismic.systems/clients/clients)                                            |
| Deploy to testnet                    | [Migrating from Ethereum](https://docs.seismic.systems/reference/migrating-from-ethereum)                   |
| Understand the transaction lifecycle | [Seismic Transaction](https://docs.seismic.systems/reference/seismic-transaction)                           |
| Run a node                           | [Node Operator FAQ](https://docs.seismic.systems/reference/node-operator-faq)                               |

***

### Pre-requisite knowledge

Our documentation assumes some familiarity with blockchain app development. Before getting started, it'll help if you're comfortable with:

* [Solidity](https://www.soliditylang.org/)
* [Foundry](https://getfoundry.sh/)
* [Viem](https://viem.sh/)

If you're new to blockchain app development or need a refresher, we recommend starting out with the [CryptoZombies](https://cryptozombies.io/en/course) tutorial.

***

### Need help?

If at any point in your journey through the documentation you hit a blocker, think something might be incorrect, or need any kind of help reach out to Matt on [Discord](https://discord.com/users/1412438177200869538) or email him directly at <kbd><mh@seismic.systems></kbd> and he will assist you.&#x20;

You can also check out our [X account](https://x.com/SeismicSys) for the latest updates, or join our [Discord](https://discord.gg/XSPNseXCvW) community.


---

# 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.seismic.systems/overview/readme.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.
