> For the complete documentation index, see [llms.txt](https://docs.gravity.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gravity.xyz/developer-resources/deployed-contracts-testnet.md).

# Deployed Contracts (Testnet)

The Gravity Longevity Testnet (L1, Chain ID `7771625`) ships the same standard EVM ecosystem contracts as mainnet, at their **universal cross-chain addresses** — the same addresses they occupy on Ethereum, Base, Arbitrum, Gravity Mainnet, and most other EVM chains. Because tooling (viem, ethers, wagmi, Foundry, wallet SDKs, ERC-4337 bundlers, Safe UI, …) hardcodes these addresses, any dapp that relies on them works on the testnet with **zero per-chain configuration**.

{% hint style="warning" %}
**Deployment in progress.** These preinstalls are deterministic, so their testnet addresses are identical to [mainnet](/developer-resources/deployed-contracts.md) and are known ahead of deployment. Rollout to the Longevity Testnet is ongoing — **verify each address has code before relying on it** (see [Verify before you hardcode](#verify-before-you-hardcode)).
{% endhint %}

{% hint style="info" %}
These are the standard, audited ecosystem deployments — distinct from Gravity's own **system runtime contracts** in the `0x1625Fxxxx` range.
{% endhint %}

## Deployer factories (L1, chain ID `7771625`)

| Contract                                | Address                                      | Role                                                |
| --------------------------------------- | -------------------------------------------- | --------------------------------------------------- |
| Arachnid Deterministic Deployment Proxy | `0x4e59b44847b379578588920cA78FbF26c0B4956C` | `CREATE2` deployer factory                          |
| CreateX                                 | `0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed` | `CREATE2` / `CREATE3` deployer factory              |
| Safe Singleton Factory                  | `0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7` | `CREATE2` deployer factory (used by the Safe suite) |

## Core infrastructure

| Contract       | Address                                      | Role                                    |
| -------------- | -------------------------------------------- | --------------------------------------- |
| Multicall3     | `0xcA11bde05977b3631167028862bE2a173976CA11` | Batched reads/writes in a single call   |
| Permit2        | `0x000000000022D473030F116dDEE9F6B43aC78BA3` | Uniswap signature-based token approvals |
| Wrapped G (wG) | `0xBB859E225ac8Fb6BE1C7e38D87b767e95Fef0EbD` | ERC-20 wrapper for native G             |

## ERC-4337 account abstraction

| Contract           | Address                                      | Role                                          |
| ------------------ | -------------------------------------------- | --------------------------------------------- |
| EntryPoint v0.6    | `0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789` | Account-abstraction entrypoint                |
| SenderCreator v0.6 | `0x7fc98430eAEdbb6070B35B39D798725049088348` | EntryPoint v0.6 account-deployment helper     |
| EntryPoint v0.7    | `0x0000000071727De22E5E9d8BAf0edAc6f37da032` | Account-abstraction entrypoint                |
| SenderCreator v0.7 | `0xEFC2c1444eBCC4Db75e7613d20C6a62fF67A167C` | EntryPoint v0.7 account-deployment helper     |
| EntryPoint v0.8    | `0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108` | Account-abstraction entrypoint (EIP-7702 era) |

## Safe{Wallet} smart-account suite (v1.4.1)

{% hint style="warning" %}
**Not deployed on the Longevity Testnet.** `cast code` returns `0x` for every address in this section, including the Safe Singleton Factory (`0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7`) that the canonical `CREATE2` deployment depends on. The addresses below are the universal Safe addresses, listed for reference only.

For Safe-based testing today, use [Gravity Mainnet (L1)](/developer-resources/deployed-contracts.md#safe-wallet-smart-account-suite-v1-4-1), where the full suite **is** deployed.
{% endhint %}

The canonical [Safe](https://safe.global) contract suite would deploy at these universal addresses:

| Contract                     | Address                                      | Role                                                 |
| ---------------------------- | -------------------------------------------- | ---------------------------------------------------- |
| Safe (L1 singleton)          | `0x41675C099F32341bf84BFc5382aF534df5C7461a` | Safe master copy (mainnet-style)                     |
| SafeL2 (L2 singleton)        | `0x29fcB43b46531BcA003ddC8FCB67FFE91900C762` | Safe master copy emitting events for indexers        |
| SafeProxyFactory             | `0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67` | Deploys Safe proxies (`createProxyWithNonce`)        |
| CompatibilityFallbackHandler | `0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99` | Default fallback handler (EIP-1271, token receivers) |
| MultiSend                    | `0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526` | Batch multiple calls in one Safe tx                  |
| MultiSendCallOnly            | `0x9641d764fc13c8B624c04430C7356C1C7C8102e2` | Batch `CALL`-only txs (no delegatecall)              |
| CreateCall                   | `0x9b35Af71d77eaf8d7e40252370304687390A1A52` | Deploy contracts from within a Safe                  |
| SignMessageLib               | `0xd53cd0aB83D845Ac265BE939c57F53AD838012c9` | On-chain EIP-1271 message signing                    |
| SimulateTxAccessor           | `0x3d4BA2E0884aa488718476ca2FB8Efc291A46199` | `staticcall` tx simulation                           |

{% hint style="info" %}
On Gravity, point Safe proxies at the **SafeL2** singleton (`0x29fc…0C762`) rather than the L1 `Safe` — the L2 variant emits the events the Safe Transaction Service and indexers rely on.
{% endhint %}

## Bridged asset tokens

Deployed 2026-08-11 at the **same addresses as mainnet** (deterministic CREATE2 via CreateX). Like on mainnet, supply is 0 and no mint/burn roles are configured until the bridge wire-up completes — on testnet these exist for bridge-partner integration testing.

| Token                           | Address                                      | Decimals | Standard                      |
| ------------------------------- | -------------------------------------------- | -------- | ----------------------------- |
| USDC.e — Bridged USDC (Gravity) | `0x979c024b381E25a093b8B4CEb06e74B8140664ff` | 6        | Circle FiatToken v2.2 (proxy) |
| USDT.e — Bridged USDT (Gravity) | `0x06Fd3e67231baea179676c490482372F7Fb4A3f2` | 6        | Chainlink BurnMintERC20       |
| WETH.e — Bridged WETH (Gravity) | `0x9Da9C5b2CBf7dcC773071338A6480e0E5FDee177` | 18       | Chainlink BurnMintERC20       |

## Verify before you hardcode

Confirm an address has code before relying on it:

```bash
cast code 0xcA11bde05977b3631167028862bE2a173976CA11 --rpc-url https://testnet-rpc.gravity.xyz
```

A non-empty result means the contract is live; an empty `0x` means it is not deployed yet.

## See also

* [Deployed Contracts (Mainnet L1)](/developer-resources/deployed-contracts.md) — the same preinstalls on Gravity Mainnet (`127001`).
* [Gravity Longevity Testnet (L1)](/gravity-networks/l1-longevity-testnet.md) — network connection parameters and faucet.
* [Token Contracts on Gravity](/the-g-token/token-contracts.md) — canonical ERC-20 list (G, wG, …).


---

# 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://docs.gravity.xyz/developer-resources/deployed-contracts-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.
