> For the complete documentation index, see [llms.txt](https://stonkmarket.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stonkmarket.gitbook.io/docs/stonk-v3/deployments-testnet.md).

# Testnet Deployment

Stonk v3 on the **Robinhood testnet**, chain ID **46630**.

{% hint style="warning" %}
**Testnet only — this is not live money.** The backing assets here are test tokens, not the real WETH or USDG, and none of these addresses exist on any mainnet. For the live v3 stack see [Mainnet Deployment](/docs/stonk-v3/deployments-mainnet.md); Base mainnet runs [v2](/docs/reference/deployments.md) only.
{% endhint %}

|                |                                                                                      |
| -------------- | ------------------------------------------------------------------------------------ |
| Network        | Robinhood testnet                                                                    |
| Chain ID       | 46630                                                                                |
| Deployed       | 11 September 2026                                                                    |
| Explorer       | [explorer.testnet.chain.robinhood.com](https://explorer.testnet.chain.robinhood.com) |
| Backing assets | test WETH, test USDG                                                                 |

## Contracts

| Contract                      | Address                                                                                                                                         | What it does                                                                          |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| StonkFactoryV3                | [`0x8FBaa21900e435B865CAfe5E5a6bBCc897B949a9`](https://explorer.testnet.chain.robinhood.com/address/0x8FBaa21900e435B865CAfe5E5a6bBCc897B949a9) | Launches tokens and seeds each one's Uniswap v4 pool                                  |
| StonkHookV3                   | [`0xbE80282FBca2Be248B815A0fD314cAd8E3011AcC`](https://explorer.testnet.chain.robinhood.com/address/0xbE80282FBca2Be248B815A0fD314cAd8E3011AcC) | The v4 hook: market hours, the fee and its decay, permanent liquidity, the wallet cap |
| StonkTokenV3 (implementation) | [`0x5D33a3d769e05C40233f44f29DD119Ea5e794385`](https://explorer.testnet.chain.robinhood.com/address/0x5D33a3d769e05C40233f44f29DD119Ea5e794385) | Token logic, cloned per launch (EIP-1167)                                             |
| StonkFeeLocker                | [`0x9ECEDb07f321155Ee3223E7d74662C92418cd781`](https://explorer.testnet.chain.robinhood.com/address/0x9ECEDb07f321155Ee3223E7d74662C92418cd781) | Holds accrued fees; beneficiaries claim from here                                     |
| NyseWindowOracle              | [`0x618a3CBCa70342CD6b3343b2c340b70d663FEA48`](https://explorer.testnet.chain.robinhood.com/address/0x618a3CBCa70342CD6b3343b2c340b70d663FEA48) | Presents the NYSE calendar as a trading-window oracle                                 |
| StonkOracleRegistry           | [`0xE0CEaC3145aE596B142399814bF1235c673dD0ae`](https://explorer.testnet.chain.robinhood.com/address/0xE0CEaC3145aE596B142399814bF1235c673dD0ae) | Which trading-window schedules a launch may choose                                    |
| StonkNameRegistry             | [`0x717aEf13344cC4dD49053Ce9938b2142db8DC3F1`](https://explorer.testnet.chain.robinhood.com/address/0x717aEf13344cC4dD49053Ce9938b2142db8DC3F1) | Ticker ownership and the 24-hour exclusivity window                                   |
| StonkLens                     | [`0x92CE1C2B9E7bc33f52c4B56354483eA763867BB6`](https://explorer.testnet.chain.robinhood.com/address/0x92CE1C2B9E7bc33f52c4B56354483eA763867BB6) | Read-only helpers for frontends. Holds no state, owns nothing                         |

## The protocol token and its sinks

{% hint style="warning" %}
**This testnet token's ticker is `STONK`, not `market`.** The live token on [mainnet](/docs/stonk-v3/deployments-mainnet.md#market-and-its-sinks) is **$market** — the rename landed after this testnet stack went up, and `symbol` is written once at initialize and can never change. So the two networks genuinely carry different tickers, and testnet screenshots showing $STONK are not stale renderings of $market.
{% endhint %}

| Contract             | Address                                                                                                                                         | What it does                                                             |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| $STONK (test)        | [`0xc393E63211Bf67A86E33a29558b9C909828652ff`](https://explorer.testnet.chain.robinhood.com/address/0xc393E63211Bf67A86E33a29558b9C909828652ff) | The protocol token. 3% fee, backed by test USDG                          |
| StonkBuyback         | [`0x88622727C61a0f87919C13FDaC38deb6444b4Da4`](https://explorer.testnet.chain.robinhood.com/address/0x88622727C61a0f87919C13FDaC38deb6444b4Da4) | Buys the protocol token and burns it, on an hourly drip                  |
| StonkLiquidityRouter | [`0xD9F62F1aEd1e4c069148c5b514A99acb450f7926`](https://explorer.testnet.chain.robinhood.com/address/0xD9F62F1aEd1e4c069148c5b514A99acb450f7926) | Deepens the protocol token's own pool, permanently                       |
| StonkFeeRouter       | [`0x735bbFeeD7441d0B5CA4822Ed9c830d5cFE7dc4D`](https://explorer.testnet.chain.robinhood.com/address/0x735bbFeeD7441d0B5CA4822Ed9c830d5cFE7dc4D) | Converts each asset's protocol share and splits it between the two above |

{% hint style="info" %}
**The buyback's clock is not started.** `start()` arms the drip, and starting it before $STONK's pool is deep enough to buy into would make the first slice claim every second since deployment.
{% endhint %}

## External contracts

These are not ours. The PoolManager is the live Uniswap v4 singleton; the rest are testnet stand-ins for assets that only exist on mainnet.

| Contract               | Address                                                                                                                                         |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Uniswap v4 PoolManager | [`0x8366a39CC670B4001A1121B8F6A443A643e40951`](https://explorer.testnet.chain.robinhood.com/address/0x8366a39CC670B4001A1121B8F6A443A643e40951) |
| test WETH              | [`0x8770958b132536511d330db3d7921463f9316FFA`](https://explorer.testnet.chain.robinhood.com/address/0x8770958b132536511d330db3d7921463f9316FFA) |
| test USDG              | [`0xdcD7399ffb672Bc267a7bD70224F35374Fe93112`](https://explorer.testnet.chain.robinhood.com/address/0xdcD7399ffb672Bc267a7bD70224F35374Fe93112) |
| NYSE calendar          | [`0x0F2a21d12B0D3B14869Be45221c20760e1C78904`](https://explorer.testnet.chain.robinhood.com/address/0x0F2a21d12B0D3B14869Be45221c20760e1C78904) |

## Configuration

Read back off the chain after deployment, not copied from the deploy script.

| Parameter                  | Value         | Meaning                                                                     |
| -------------------------- | ------------- | --------------------------------------------------------------------------- |
| `immediateLaunch`          | `true`        | A launch during market hours trades at once; outside, it waits for the bell |
| `launchFeeStart`           | `990000` pips | 99% — the rate in the launch second                                         |
| `launchFeeSeconds`         | `3`           | How long the decay down to the ordinary rate takes                          |
| `maxWalletBasisPoints`     | `500`         | 5% of supply per address                                                    |
| `devAllocationBasisPoints` | `50`          | 0.5% of supply minted to the creator at launch                              |
| `liquidityBps`             | `1000`        | 10% of every fee becomes permanent liquidity                                |
| `creatorShareBps`          | `1000`        | 10% of every fee to the creator                                             |
| `protocolShareBps`         | `3000`        | 30% of every fee to buy-and-burn and $STONK depth                           |
| treasury share             | `5000`        | The remaining 50%                                                           |
| `MAX_LAUNCH_FEE`           | `990000`      | Hard ceiling on any opening rate, so a buyer always keeps ≥1%               |
| `MAX_TRADE_FEE`            | `50000`       | Hard ceiling on any steady-state rate: 5%                                   |
| ticker exclusivity         | `24 hours`    | How long a ticker is reserved to its launch                                 |

### Backing assets

| Asset     | Opening tick | Trade fee | Max creator buy |
| --------- | ------------ | --------- | --------------- |
| test WETH | `-200880`    | 1%        | 0.06 WETH       |
| test USDG | `-399060`    | 1%        | 160 USDG        |

Both open at roughly the same valuation despite being priced differently — the opening tick is chosen per asset so that the launch price doesn't depend on which asset backs it.

### Roles

| Role     | Address                                                                                                                                         |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Owner    | [`0xeb3b769e24F003Af0A1B869aeCfeD87154758868`](https://explorer.testnet.chain.robinhood.com/address/0xeb3b769e24F003Af0A1B869aeCfeD87154758868) |
| Treasury | same                                                                                                                                            |

{% hint style="warning" %}
Owner and treasury are the **deploying key** on this testnet deployment, which is fine for a testnet and is not how mainnet is configured — there, both are a hardware wallet or a multisig, and the deploy script refuses a self-owned launch unless explicitly overridden.
{% endhint %}

## Source verification

Eight of the twelve contracts are verified on the testnet explorer, including the token implementation, the fee locker, both registries, the window oracle, the lens and the liquidity router.

**Not verified:** StonkFactoryV3, StonkHookV3, StonkBuyback and StonkFeeRouter. Both verification routes have a limitation on this chain:

* **Sourcify** cannot verify anything on 46630 — it reports `Cannot fetch bytecode for chain #46630`, so it cannot read the deployed code at all. It does support Robinhood **mainnet** (4663), which is the route production verification uses.
* **The testnet Blockscout** verified eight and returns `Fail - Unable to verify` for the four largest, with the full solc input and correct constructor arguments.

The $STONK token is a **clone**, so it has no source of its own to verify — its logic is the verified StonkTokenV3 implementation above.

Nothing about this suggests the deployed code differs from the source; the deployed size matches the locally compiled artifact exactly for all four. But it is not independently provable from the explorer today, so treat those four as unverified and read them from [the repository](https://github.com/stonk-exchange/nyse-evm-hardhat) until the explorer catches up.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://stonkmarket.gitbook.io/docs/stonk-v3/deployments-testnet.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
