> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kuru.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Testnet Deployments

> Contract addresses, tokens, market parameters, and price feeds for Monad testnet.

Use these addresses for the current Kuru Spot testnet deployment. For a first integration, follow [Testnet Setup](/deployments/setup) and [First Trade](/sdk/quickstart).

## Network

| Setting | Value |
| - | - |
| Network | Monad testnet |
| Chain ID | `10143` |
| RPC | `https://testnet-rpc.monad.xyz` |
| Explorer | [https://testnet.monadvision.com](https://testnet.monadvision.com) |
| Gas token | MON, 18 decimals |

## Contract addresses

| Component | Address | Purpose |
| - | - | - |
| AccountCore proxy | `0xe08573a1Ecc4aa507c9626071fA0c4513caf7906` | ERC-20 spender; custody, deposits, withdrawals, accounts, signers, internal transfers |
| WithdrawalLimiter proxy | `0x8cF002a44CeD91Ab93A5E4E6F893F1f7b5a9c0e5` | Global withdrawal budget, per-token oracle bindings, capacity previews |
| SpotRouter proxy | `0x008200AD02fCb7020B019D11Cbabd32FecE1De78` | Market deployment/registration and market administration |
| KuruTradingWallet implementation | `0xC400874c327eD8f2d6933d77e98b3a358D79ab96` | EIP-7702 delegated trading logic |
| AccountCore implementation | `0x53ef3c1749a7f966Bf6Be2ed84f854A878b34522` | Implementation behind AccountCore proxy |

Approve and deposit tokens into **AccountCore**. Send trading calls to the **market address** below. The KuruTradingWallet address is the EIP-7702 delegation target; signed wallet actions execute through the delegated EOA.

## Markets

All markets quote USDC (`0xb01DC575a7ef75e58A05D2bde73ab79f8e7dd0Be`, 6 decimals).

| Market | OrderBook address |
| - | - |
| MON/USDC | `0xD2F64EaF7E85688802d24C18ea268C365533b344` |
| WETH/USDC | `0x0A082280e4eA3D822E23Ec1186685477241A039d` |
| cbBTC/USDC | `0x87A177348710BE5cc1B025ce20CABAB267C90Bf6` |
| USDT/USDC | `0xF72dD31A8a73629860Cbbb78a58BcA3C6462FC2f` |
| XAUT/USDC | `0xC251fb72974a178f58F68cD7Ef7A510FA469feA9` |
| NVDAx/USDC | `0xE9C2B9E0F296dbeC9dcc3C8F0F64928F2F8bC081` |
| SPYx/USDC | `0x185Af307dAfd968033337A0180E66B920B4b05Ca` |
| QQQx/USDC | `0x6679386F98437f02f5Cad51E6835e93C002213d9` |
| TSLAx/USDC | `0x7A53BB8d8A8765418FfE331A02BF5984264922AA` |
| EWYx/USDC | `0xB353E3bAe839a125EcDF482d3149231E91c7040c` |

### Market parameters

| Market | sizePrecision | pricePrecision | tickSize | passiveSpreadTicks | Passive spread (\$) |
| - | - | - | - | - | - |
| MON/USDC | 10000000000 | 100000000 | 100 | 100 | \$0.0001 |
| WETH/USDC | 10000000000 | 10000 | 100 | 100 | \$1 |
| cbBTC/USDC | 100000000 | 1000 | 100 | 100 | \$10 |
| USDT/USDC | 1000000 | 100000000 | 100 | 100 | \$0.0001 |
| XAUT/USDC | 1000000 | 10000 | 100 | 100 | \$1 |
| NVDAx/USDC | 10000000000 | 10000 | 100 | 10 | \$0.10 |
| SPYx/USDC | 10000000000 | 10000 | 100 | 10 | \$0.10 |
| QQQx/USDC | 10000000000 | 10000 | 100 | 10 | \$0.10 |
| TSLAx/USDC | 10000000000 | 10000 | 100 | 10 | \$0.10 |
| EWYx/USDC | 10000000000 | 10000 | 100 | 10 | \$0.10 |

Dollar spreads assume USDC = \$1. Passive spread is a configured market parameter, not the live bid/ask spread. Order quantity uses `sizePrecision`; order price uses `pricePrecision` and must align to `tickSize`. Deposits and withdrawals use token decimals.

### Fees and order limits

| Parameter | Value | Contract value |
| - | - | - |
| Maker fee | 0 bps | `makerFeePps = 0` |
| Taker fee | 2 bps | `takerFeePps = 2000` |
| Minimum quote notional | 10 USDC | `minQuoteNotional = 10000000` |
| Maximum quote notional | 5,000,000 USDC | `maxQuoteNotional = 5000000000000` |

Fee rates use a denominator of `10000000`. The 10-USDC minimum is inclusive and applies to order admission before fees, not to each partial fill. Account-specific fee tiers and builder fees can affect the final charge; see [OrderBook](/contracts/order-book).

## Tokens

These ERC-20s are mintable test tokens with no underlying backing. Request them from your Kuru integration contact.

| Token | Address | Decimals |
| - | - | - |
| USDC | `0xb01DC575a7ef75e58A05D2bde73ab79f8e7dd0Be` | 6 |
| MON | `0x0000000000000000000000000000000000000000` | 18 |
| WETH | `0xB711D972876AE19481fFD1AB2047B8e5E31BEe5F` | 18 |
| cbBTC | `0x7bC3a5FCEB95bE797D57eE762B881596B3cfA992` | 8 |
| USDT | `0x4BAF98Bf7a70725e73B20ea61b00271878115A4c` | 6 |
| XAUT | `0xc48194f3d9C9f6B461eB3a6aCd3bFe09882dc662` | 6 |
| NVDAx | `0x1cA0772B36E70ff54525afee1DAEe846Cd914D02` | 18 |
| SPYx | `0x8BF70Ce58A038f741b4e187ADea126c8cAB867c2` | 18 |
| QQQx | `0x251f5e6e1F4fe6E55BA285EfA6518B2707C9EFE0` | 18 |
| TSLAx | `0x7DA7742FCdFD472697A52B0Aaff818CAe3139656` | 18 |
| EWYx | `0x184659b7968Bd56f0243523183c923459e757548` | 18 |

MON is native: use `address(0)` as the token identifier and send `msg.value` with an AccountCore deposit. Do not transfer MON to the zero address. All five xStocks test tokens have **18 decimals** and use **10^10 size precision** for orders.

## Price sources

All assets use Kraken-backed USD price feeds with a **5-minute maximum age**. These feeds value deposits and withdrawals; trade prices come from the orderbook. USDC is priced independently rather than fixed at \$1.

| Token | Price source address | Kraken pair |
| - | - | - |
| USDC | `0x29064f22175DBD7394aC7a61e3CC42Fb377175B7` | USDC/USD |
| MON | `0xC04Eb468d897bb1b543316DdD891D6988Bd7a9f2` | MON/USD |
| WETH | `0x31ed90038A9Dd392E722644b5D6ca579F6adD4CB` | ETH/USD |
| cbBTC | `0x14F3BC859ee8186cFc8eAb3FA265EdFF372688cD` | BTC/USD |
| USDT | `0xbC78aE7F2af29508C73f2c5e399A35cF675A2B2B` | USDT/USD |
| XAUT | `0xD004a407B74774F6af8C33756bF0d77C0AA366Db` | XAUT/USD |
| NVDAx | `0x8d57Ed0dB408dD9070B64A7f3E342918759a5706` | NVDAx/USD |
| SPYx | `0x46dc38474332E6A90a4d4De992f44E5A184C677e` | SPYx/USD |
| QQQx | `0xaAF16f6f23a913bbE6DaA5f3658FBd53Cc62f09D` | QQQx/USD |
| TSLAx | `0xa79d18CA2aE83D9Ff574Cfdca39aFB99965cfc08` | TSLAx/USD |
| EWYx | `0x30dC3DBed2aA61D7aEd85484F855E33bDf76aC9E` | EWYx/USD |

WETH uses ETH/USD and cbBTC uses BTC/USD at 1:1. XAUT uses the Kraken XAUT token price. Stale prices can prevent deposits or withdrawals until fresh prices become available.

<Accordion title="Implementation and authority addresses">
  | Component | Address | Purpose |
  | - | - | - |
  | ProtocolAuthority | `0xb8EF6b8C854524E4253AE37CbD8Cae11cA401d7e` | Governance, ops and emergency role registry |
  | KeeperAuthority | `0x39175d4e1F80d6D9fA2806c16B1117aa64757E02` | Trading-wallet keeper authorization |
  | WithdrawalLimiter implementation | `0xaDaE49FA31Cc63378581C3975ddBc2AbE2e61022` | Implementation behind limiter proxy |
  | SpotRouter implementation | `0xb62B28815C0c7f0F97fe6a17D4C582dF2Ee48B8d` | Implementation behind router proxy |
  | Shared OrderBook implementation | `0x7Ab73d63365C660dD7cd72b51c49C6e709b1527F` | Implementation behind all ten market proxies |

  Use the AccountCore, WithdrawalLimiter and SpotRouter proxies above for contract calls. Their implementation addresses identify the code behind those proxies.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.