Contracts & Addresses
Levant is a single EIP-2535 Diamond on Robinhood Chain mainnet. Every trade, position change, and liquidation goes to one address; the vault, the USDG collateral token, and the individual facets sit behind or beside it. This page is the canonical address reference — verify against it before you approve a token or sign a transaction.
Network
Levant is deployed only on Robinhood Chain mainnet — chainId 4663, with ETH (Sepolia ETH) as the gas token because the parent chain is Ethereum Sepolia. There is no mainnet deployment. Levant's token, $LVNT, launched on Virtuals and is not required to trade. The explorer is a Blockscout instance. Always configure more than one RPC: at least one ISP is known to hijack the primary RPC hostname, so keep the mirror as a fallback.
| Parameter | Value |
|---|---|
| Chain | Robinhood Chain mainnet |
| chainId | 4663 |
| Gas token | ETH (Sepolia ETH; parent chain is Ethereum Sepolia) |
| Explorer | https://robinhoodchain.blockscout.com (Blockscout) |
| RPC | https://rpc.testnet.chain.robinhood.com/rpc |
| RPC mirror | https://4663.rpc.thirdweb.com |
| Gas faucet | https://faucet.testnet.chain.robinhood.com |
One entrypoint: the Diamond
Levant is built as an EIP-2535 Diamond — one proxy address that routes each function call to a facet that implements it. For everything a trader does — submitting an intent, executing a fill, closing, adding or removing margin, and liquidations — the address you interact with is the Diamond. The facets are code, not places you send funds or transactions; they hold the logic, while all state lives in the Diamond's append-only storage.
In practice two contracts take your transactions directly: the Diamond for all trading and position actions, and the LevantVault (a separate ERC-4626 contract) for liquidity — LPs deposit and withdraw against the vault. USDG is the ERC-20 you approve to whichever of the two you are using. You never transact with a facet address.
Deployed addresses
The full set of live contracts and accounts, all on chainId 4663. The Diamond was deployed at block 88997025. The same Diamond serves all 20 crypto markets — each quoted against USD (BTC, ETH, SOL, and 17 more) — which share one risk config today: 100x max leverage, 0.08% open and close fees, a 0.02% base spread, and 10–500,000 USDG per-position collateral bounds. The keeper and owner are externally owned accounts (EOAs), not contracts, so the explorer shows them as plain addresses with no verified code.
| Name | Address | Role |
|---|---|---|
| Diamond (EIP-2535 proxy) | 0xE07098bc29Ebe50E6203606bc2eA0e1E189cb7e2 | The single entrypoint. All trading, intents, fills, closes, margin, funding and liquidation calls go here. Deployed at block 88997025. |
| LevantVault (ERC-4626) | 0xC90D98cFeE95F481aDE30d95AD88f01B6C65ad5C | The liquidity vault. LPs deposit USDG here and receive lvUSDG shares; it is the counterparty to every trade and locks reserved liquidity for open positions. |
| USDG (MockStable ERC-20) | 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 | Testnet collateral. 6 decimals, open mint (anyone can mint). No monetary value; not a real stablecoin. |
| DiamondCutFacet | 0xC330b9C4Ad5Af1329d8b2652A8376780900fc09A | Upgrade logic — diamondCut adds, replaces, or removes facets. Owner-only. |
| DiamondLoupeFacet | 0xa2D8745fCD86Df2A2e40D24d54c379D9F87e0E8c | Introspection — enumerates facets and the selectors each one serves. |
| TradingFacet | 0xf56dad949472A67b222462C6B0Db128DB4Feb06b | The engine: submit/execute intents, close and partial-close, add/remove margin, funding, and liquidations. |
| SignedPriceOracleFacet | 0x7BCa681C11ac4dc822095457662dCcD3004349F5 | Verifies EIP-712 m-of-n signed price reports (max price age 60s). 1-of-1 signer today. |
| OwnershipFacet | 0xe50A7E73e73Cc96b976CfBfA8b93770688019Af0 | ERC-173 two-step ownership (transfer, accept, cancel). |
| Keeper / price signer | 0x5040b3387F450Af658f8E7C93ca3F0D44b07E7e4 | Off-chain service (EOA). Fills intents, closes triggers, liquidates, and signs prices. Non-custodial — it never holds trader funds. |
| Owner / deployer | 0x520F136b72Cc7A24FDB1C073189704442e9945F6 | The Diamond owner (EOA). Can diamondCut facets, add price signers, and rewrite market risk parameters. A hot key today. |
Open any of these on the explorer by appending the address to the Blockscout address path. The pattern is the same for every contract and account:
https://robinhoodchain.blockscout.com/address/<addr>
# e.g. the Diamond:
https://robinhoodchain.blockscout.com/address/0xE07098bc29Ebe50E6203606bc2eA0e1E189cb7e2Facets: code behind the Diamond
Each facet is its own verified contract on the explorer, with source you can read — but a facet holds no state and no funds. Every call to a facet's functions is served through the Diamond, against the Diamond's storage. That is why you never send a transaction to a facet address directly. Facets are swapped with diamondCut, which preserves the vault, LP shares, and every open position because the storage layout is append-only.
- DiamondCutFacet — the upgrade path.
diamondCutadds, replaces, or removes function selectors; owner-only. - DiamondLoupeFacet — introspection required by EIP-2535:
facets(),facetAddresses(),facetFunctionSelectors(address), andfacetAddress(bytes4). - TradingFacet — the perp engine:
submitOpenIntent/submitLimitIntent,executeOpen,closePosition/closePartial/executeClose, margin changes, funding, and permissionless liquidation. - SignedPriceOracleFacet — verifies EIP-712 signed price reports whose domain binds this chainId and the Diamond address; rejects reports older than the 60s max price age or dated in the future. 1-of-1 signer (the keeper) today; m-of-n is the roadmap.
- OwnershipFacet — ERC-173 two-step ownership:
owner(),pendingOwner(),transferOwnership,acceptOwnership,cancelOwnershipTransfer. There is deliberately norenounceOwnership, so the diamond can always be upgraded.
USDG — the testnet collateral
USDG is a MockStable ERC-20 with 6 decimals. Its mint is intentionally unguarded on testnet so anyone can hand themselves collateral to trade with — that is the whole point of the deployment. It is not a real stablecoin, it is not pegged to anything, it holds no value, and it does not exist on any mainnet. To mint yourself test funds, call mint(address to, uint256 amount) (remember the 6 decimals — 1 USDG is 1,000,000 base units):
# Mint 1,000 test USDG to yourself (1,000 x 10^6 = 1,000,000,000 base units):
cast send 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 \
"mint(address,uint256)" <your-address> 1000000000 \
--rpc-url https://rpc.testnet.chain.robinhood.com/rpc --private-key 0x...The vault and lvUSDG
The LevantVault is an ERC-4626 vault over USDG whose share token is lvUSDG. LPs deposit USDG into the vault address and receive lvUSDG; the vault is the counterparty to every trade, so it collects all fees and trader losses and pays trader profits. For each open position it locks margin x 9 as reserved liquidity to guarantee the capped max-profit payout; LPs can withdraw only the unlocked amount. Note that the vault takes deposits and withdrawals directly, but during a trade it is the Diamond that moves USDG in and out of the vault — a trader never calls the vault to open or close a position.
Reading the contracts on Blockscout
Every contract here is source-verified, so you can inspect and read it directly from the explorer without a wallet.
- 1Open the address on the explorer (append it to the /address/ path shown above) and select the Contract tab. Verified source is displayed.
- 2Use Read Contract to call view functions — for example the Diamond's
owner(), or the loupe'sfacets()— with no wallet and no gas. - 3Use Write Contract and connect a wallet to send a transaction. In normal use the Levant app builds these for you; the raw tab is for verification and recovery.
- 4To inspect a single facet, open that facet's own address page. You will see its source, but it holds no state or funds — every call is served through the Diamond.
facets() and facetAddress(selector) — to see the full routing, or load a facet's ABI against the Diamond address to call its functions.Verify it yourself
Do not trust this page — confirm it against the chain. These read-only calls prove the deployment is what it claims: the Diamond's owner is the deployer, the loupe lists the five facets, and the vault reports live assets.
RPC=https://rpc.testnet.chain.robinhood.com/rpc
# Diamond owner (ERC-173) — should equal the owner/deployer address:
cast call 0xE07098bc29Ebe50E6203606bc2eA0e1E189cb7e2 "owner()(address)" --rpc-url $RPC
# Every facet address behind the Diamond (EIP-2535 loupe):
cast call 0xE07098bc29Ebe50E6203606bc2eA0e1E189cb7e2 "facetAddresses()(address[])" --rpc-url $RPC
# Vault assets under management, in USDG (6 decimals):
cast call 0xC90D98cFeE95F481aDE30d95AD88f01B6C65ad5C "totalAssets()(uint256)" --rpc-url $RPCHonesty & caveats
- Unaudited. The contracts have not been audited. Bugs, economic flaws, or vulnerabilities may exist.
- Testnet only. Every token here — USDG, lvUSDG, and the ETH used for gas — has no monetary value.
- USDG is a mock. Its mint is open so anyone can try the exchange; it is not a real or canonical stablecoin and exists nowhere but this testnet.
- The oracle is 1-of-1 today. The keeper is the sole price signer. Running m-of-n signers on independent machines is the roadmap, not the current state.
- Ownership is still on the deployer key. That hot key can diamondCut any facet, add price signers, and rewrite market risk parameters. Moving it to a hardware wallet or multisig is pending.
- Not investment advice. Leverage can lose your entire margin, and access to leveraged derivatives is restricted in some jurisdictions.
