# Networks & Contracts

All documentation on this site targets **Monad mainnet**.

## Network

| Field | Value |
| :--- | :--- |
| Network | Monad Mainnet |
| Chain ID | `143` |
| Native currency | `MON` (18 decimals) |
| Block explorer | `https://monadvision.com` |

### RPC

LeverUp does not operate a public RPC. Use any Monad mainnet RPC endpoint — the public endpoint
published by the Monad Foundation works for development, and a dedicated provider is strongly
recommended for production, since opening a position involves several reads plus a write and
public endpoints are rate limited.

`viem` does not ship a built-in Monad mainnet chain object, so define one:

```ts
import { defineChain } from 'viem'

export const monad = defineChain({
  id: 143,
  name: 'Monad',
  nativeCurrency: { name: 'MON', symbol: 'MON', decimals: 18 },
  rpcUrls: {
    default: { http: ['https://rpc.monad.xyz'] }, // replace with your provider
  },
  blockExplorers: {
    default: { name: 'MonadVision', url: 'https://monadvision.com' },
  },
  contracts: {
    multicall3: { address: '0xcA11bde05977b3631167028862bE2a173976CA11' },
  },
})
```

Every code sample on this site imports `monad` from this snippet.

## Contracts

LeverUp uses the Diamond pattern (EIP-2535). **One address serves every trading facet** — trading,
limit orders, TP/SL orders, one-click trading, pair configuration, and all read functions. There is
no separate address to look up per trading feature. Standalone helper contracts are listed below
when an integration calls them directly.

| Contract | Address |
| :--- | :--- |
| **LeverUp Diamond** | `0xea1b8E4aB7f14F7dCA68c5B214303B13078FC5ec` |
| [LVMONMinter](/onchain/minting-lvmon) | `0x6FbEa6986F38aA85D09a8e9d8E5c71499ef70909` |
| Multicall3 | `0xcA11bde05977b3631167028862bE2a173976CA11` |

::: tip
The Diamond address is also the EIP-712 `verifyingContract` for [gasless trading](/gasless/signing#domain).
There is no separate agent contract.
:::

## Tokens

| Token | Address | Decimals |
| :--- | :--- | :--- |
| USDC | `0x754704Bc059F8C67012fEd69BC8A327a5aafb603` | 6 |
| WMON | `0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A` | 18 |
| LVUSD | `0xFD44B35139Ae53FFF7d8F2A9869c503D987f00d1` | 18 |
| LVMON | `0x91b81bfbe3A747230F0529Aa28d8b2Bc898E6D56` | 18 |

Native `MON` is represented as the zero address `0x0000000000000000000000000000000000000000` where a
token address is expected.

`LVUSD` and `LVMON` are the protocol's settlement tokens. You do not need to hold them to trade — see
[Collateral and lvToken](/introduction/concepts#collateral-and-lvtoken) for when each is required.

## Service endpoints

| Service | Base URL |
| :--- | :--- |
| REST API | `https://service.leverup.xyz` |
| One-Click Trading | `https://oneclick-01-keeper.leverup.xyz` |

## Trading pairs

Pair addresses change as markets are listed. Do not hardcode them — fetch the live list from
[`GET /v1/pairs`](/api/pairs#list-pairs).
