Atoshi is a privacy-preserving EVM-compatible blockchain designed to enable confidential transactions while maintaining full compatibility with existing Ethereum tooling, wallets, and smart contracts.
- π Privacy Transactions: Hide transaction amounts, sender/receiver identities using Zero-Knowledge Proofs
- β‘ EVM Compatible: Full compatibility with Ethereum smart contracts, wallets (MetaMask), and development tools
- π‘οΈ Shield Contracts: Deposit-withdraw privacy pools for confidential asset transfers
- π Multi-Asset Privacy: Support for native tokens, ERC-20, NFTs, and SBTs
- π IBC Enabled: Cross-chain communication with Cosmos ecosystem
| Property | Value |
|---|---|
| Chain Name | Atoshi |
| Native Token | ATOSHI (ATOS) |
| Base Denom | aatos |
| Display Denom | atos |
| Decimals | 18 |
| Total Supply | 10,000,000,000,000 ATOS (10 Trillion) |
| Pre-mine | 70,000,000,000 ATOS (70 Billion) |
| Network | Chain ID | EIP-155 ID |
|---|---|---|
| Mainnet | atoshi_88188-1 |
88188 |
| Testnet | atoshi_88288-1 |
88288 |
| Devnet | atoshi_88388-1 |
88388 |
| Type | Prefix |
|---|---|
| Account Address | atoshi |
| Validator Operator | atoshivaloper |
| Consensus Node | atoshivalcons |
Atoshi implements a comprehensive privacy layer using Zero-Knowledge Proofs (ZK-SNARKs/STARKs) to enable confidential transactions on the EVM.
βββββββββββββββββββ βββββββββββββββββββββββββββ βββββββββββββββββββββββ
β User Layer β β L2 Privacy Layer β β L1 Settlement β
βββββββββββββββββββ€ βββββββββββββββββββββββββββ€ βββββββββββββββββββββββ€
β β β β β β
β User Wallet β β Sequencer/Relayer β β Rollup Contract β
β β β β β β β β β
β βΌ β β βΌ β β βΌ β
β Generate β β Transaction Pool β β Verifier Contract β
β Stealth Addr ββββββΆβ β ββββββΆβ β β
β β β β βΌ β β βΌ β
β βΌ β β Batch Builder β β State Storage β
β Create Note β β β β β β
β Commitment β β βΌ β βββββββββββββββββββββββ
β β β β Prover Service β
β βΌ β β β β
β User Wallet β β βΌ β
β β β Batch Proof β
βββββββββββββββββββ β β β
β βΌ β
β State Tree Manager β
β β
βββββββββββββββββββββββββββ
- Receives deposit commitments
- Verifies withdrawal ZK proofs
- Manages nullifier registry
- Executes asset transfers
- Off-chain generation of secret data (amount, recipient pubkey, randomness)
- Hash commitment submitted to Shield contract
- Acts as a "receipt" for deposited funds
- Off-chain tree structure for all deposits
- Tree root stored on-chain
- Membership proofs required for withdrawals
- Prevents double-spending
- One-time "seal" computed in ZK circuit
- Recorded on-chain after successful withdrawal
- Generated off-chain by Prover
- Verified on-chain by Shield contract
- Supports Plonky2/Halo2 proving systems
1. User generates commitment (hash of secret data) locally
2. User submits commitment to Shield contract
3. Contract adds commitment to pending queue
4. Commitment is added to off-chain Merkle tree
5. Tree root is updated on-chain
1. User runs Prover locally with:
- Secret data (amount, randomness, etc.)
- Merkle proof of membership
2. Prover generates ZK Proof + Nullifier
3. User submits to Shield contract:
- ZK Proof
- Nullifier
- Recipient address
4. Contract verifies:
- Proof validity
- Nullifier not used
5. Contract executes transfer and records nullifier
- Go 1.22+
- Make
- jq
# Clone the repository
git clone https://github.com/ATOSHI-ORG/Atoshi-chain.git
cd atoshi
# Build and install
make install
# Verify installation
atoshid version# Start a local single-node chain (development/testing)
./local_node.sh
# Options:
# -y Overwrite existing data without prompting
# -n Keep existing data and start node
# --no-install Skip the build step
# -h, --help Show help messageAfter starting the local node:
| Service | Endpoint |
|---|---|
| Tendermint RPC | http://localhost:26657 |
| EVM JSON-RPC | http://localhost:8545 |
| WebSocket | ws://localhost:8546 |
| REST API | http://localhost:1317 |
| gRPC | localhost:9090 |
- Open MetaMask β Settings β Networks β Add Network
- Configure:
- Network Name: Atoshi Devnet
- RPC URL: http://localhost:8545
- Chain ID: 88388
- Currency Symbol: ATOS
- Block Explorer: (leave empty for local)
atoshi/
βββ app/ # Application configuration
β βββ app.go # Main application setup
β βββ config.go # Chain configuration
β βββ ante/ # Transaction ante handlers
βββ cmd/
β βββ atoshid/ # CLI binary
β βββ main.go
β βββ root.go
βββ contracts/ # Solidity contracts
βββ crypto/ # Cryptographic utilities
βββ precompiles/ # EVM precompiled contracts
βββ proto/ # Protobuf definitions
βββ rpc/ # JSON-RPC implementation
βββ scripts/ # Utility scripts
β βββ init_genesis.sh # Genesis initialization
βββ server/ # Server configuration
βββ types/ # Core types
βββ utils/ # Utility functions
βββ x/ # Cosmos SDK modules
β βββ erc20/ # ERC20 module
β βββ evm/ # EVM module
β βββ feemarket/ # Fee market (EIP-1559)
β βββ inflation/ # Token inflation
β βββ vesting/ # Vesting accounts
βββ local_node.sh # Local development script
βββ Makefile # Build commands
βββ README.md
Initialize a new chain with pre-mined tokens:
# Using the initialization script
./scripts/init_genesis.sh
# Or manually:
atoshid init my-node --chain-id atoshi_88188-1
atoshid keys add preminer
atoshid genesis add-genesis-account <address> 70000000000000000000000000000aatos| Variable | Description | Default |
|---|---|---|
CHAIN_ID |
Chain identifier | atoshi_88388-1 |
MONIKER |
Node moniker | atoshi-node |
KEYRING_BACKEND |
Keyring backend | test |
HOME_DIR |
Data directory | ~/.atoshid |
# Build binary
make build
# Install to GOPATH
make install
# Run tests
make test
# Generate protobuf
make proto-gen
# Lint code
make lint# Run all tests
make test
# Run specific package tests
go test ./x/evm/...
# Run with coverage
go test -cover ./...- Proving System: Plonky2 / Halo2
- Hash Function: Poseidon (ZK-friendly)
- Commitment Scheme: Pedersen commitments
| Feature | Status |
|---|---|
| Amount Hiding | β Planned |
| Sender/Receiver Hiding | β Planned |
| Multi-Asset Privacy | β Planned |
| ERC-20 Privacy | β Planned |
| NFT Privacy | π In Progress |
| SBT Privacy | π In Progress |
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the ENCL-1.0 License.
Built with β€οΈ by the Atoshi Team
