> For the complete documentation index, see [llms.txt](https://sodex.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sodex.com/documentation/for-developers/developers/valuechain-evm/contracts.md).

# Contracts

System contracts on ValueChain. Product contracts for deposits, withdrawals, and vaults are listed with those products.

## Core contracts

Native SOSO has no ERC-20 address; use the native balance. WSOSO is the wrapped native token. ClobGateway handles EVM-to-trading deposits and account operations — see [ValueChain to Spot or Perps](/documentation/for-developers/developers/mirror-protocol/lifecycle/valuechain-transfers.md).

| Contract    | Mainnet                                      | Testnet                                      |
| ----------- | -------------------------------------------- | -------------------------------------------- |
| WSOSO       | `0x5050505050505050505050505050505050505050` | `0x5050505050505050505050505050505050505050` |
| ClobGateway | `0x0101010101010101010101010101010101010101` | `0x0101010101010101010101010101010101010101` |

## Tokens

Identify a token by its network and address, not its name or symbol. ValueChain addresses are `valueChainMetadata.evmAddress` values; they are not the external-network addresses in `chains[].tokenAddress`. Presence of an address does not mean a deposit, withdrawal, or trading route is enabled.

Load current addresses, decimals, and route availability from [Asset Configuration](/documentation/for-developers/api-reference/mirror-api/asset-configuration.md):

```bash
curl -fsS 'https://mainnet-gw.sodex.dev/api/v1/asset/config' \
  -H 'Accept: application/json' |
  jq -e 'if .code != 0 then error(.error // "Asset config request failed") else
    [.data[] | {
      asset: .assetName,
      symbol: .valueChainMetadata.tokenSymbol,
      decimals: .valueChainMetadata.tokenDecimals,
      native: .valueChainMetadata.isNativeToken,
      contract: .valueChainMetadata.evmAddress,
      wrappedToken: .valueChainMetadata.wrappedToken
    }] end'
```

Do not reuse these addresses on Testnet or another chain.

## Mirror Protocol contracts

See [Mirror Protocol Contracts](/documentation/for-developers/developers/mirror-protocol/contracts.md).

## Wealth contracts

See [Wealth Contracts](/documentation/for-developers/developers/wealth/contracts.md).

## Commonly used contracts

### ERC-4337 contracts

| Contract                                         | Address                                      |
| ------------------------------------------------ | -------------------------------------------- |
| ERC-4337 Entrypoint v0.6.0                       | `0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789` |
| ERC-4337 SenderCreator v0.6.0                    | `0x7fc98430eAEdbb6070B35B39D798725049088348` |
| ERC-4337 Entrypoint v0.7.0                       | `0x0000000071727De22E5E9d8BAf0edAc6f37da032` |
| ERC-4337 SenderCreator v0.7.0                    | `0xEFC2c1444eBCC4Db75e7613d20C6a62fF67A167C` |
| ERC-4337 Entrypoint v0.8.0                       | `0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108` |
| ERC-4337 SenderCreator v0.8.0                    | `0x449ED7C3e6Fee6a97311d4b55475DF59C44AdD33` |
| Simple7702Account (supporting Entrypoint v0.8.0) | `0x4Cd241E8d1510e30b2076397afc7508Ae59C66c9` |
| ERC-4337 Entrypoint v0.9.0                       | `0x433709009B8330FDa32311DF1C2AFA402eD8D009` |
| ERC-4337 SenderCreator v0.9.0                    | `0x0A630a99Df908A81115A3022927Be82f9299987e` |
| Simple7702Account (supporting Entrypoint v0.9.0) | `0xa46cc63eBF4Bd77888AA327837d20b23A63a56B5` |

### Safe v1.4.1

| Contract                     | Address                                      |
| ---------------------------- | -------------------------------------------- |
| CompatibilityFallbackHandler | `0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99` |
| TokenCallbackHandler         | `0xeDCF620325E82e3B9836eaaeFdc4283E99Dd7562` |
| CreateCall                   | `0x9b35Af71d77eaf8d7e40252370304687390A1A52` |
| MultiSend                    | `0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526` |
| MultiSendCallOnly            | `0x9641d764fc13c8B624c04430C7356C1C7C8102e2` |
| Safe                         | `0x41675C099F32341bf84BFc5382aF534df5C7461a` |
| SafeL2                       | `0x29fcB43b46531BcA003ddC8FCB67FFE91900C762` |
| SafeProxyFactory             | `0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67` |
| SafeToL2Setup                | `0xBD89A1CE4DDe368FFAB0eC35506eEcE0b1fFdc54` |
| SignMessageLib               | `0xd53cd0aB83D845Ac265BE939c57F53AD838012c9` |
| SimulateTxAccessor           | `0x3d4BA2E0884aa488718476ca2FB8Efc291A46199` |

### Safe 4337 Module

| Contract                                                        | Address                                      |
| --------------------------------------------------------------- | -------------------------------------------- |
| ERC-4337 Safe Module Setup v0.3.0                               | `0x2dd68b007B46fBe91B9A7c3EDa5A7a1063cB5b47` |
| ERC-4337 Safe 4337 Module v0.3.0 (supporting Entrypoint v0.7.0) | `0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226` |

### Safe Passkey Module

| Contract                         | Address                                      |
| -------------------------------- | -------------------------------------------- |
| DaimoP256Verifier v0.2.1         | `0xc2b78104907F722DABAc4C69f826a522B2754De4` |
| FCLP256Verifier v0.2.1           | `0xA86e0054C51E4894D88762a017ECc5E5235f5DBA` |
| SafeWebAuthnSignerFactory v0.2.1 | `0x1d31F259eE307358a26dFb23EB365939E8641195` |
| SafeWebAuthnSharedSigner v0.2.1  | `0x94a4F6affBd8975951142c3999aEAB7ecee555c2` |

### Misc

| Contract   | Mainnet                                      | Testnet                                      |
| ---------- | -------------------------------------------- | -------------------------------------------- |
| Multicall3 | `0xcA11bde05977b3631167028862bE2a173976CA11` | `0xcA11bde05977b3631167028862bE2a173976CA11` |
