# 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.
