Deployments
This page lists every contract of the live Zenex deployment on Stellar mainnet and the values those contracts run with. Check an address here before you approve a transaction that names it. Anyone can deploy a market through the factory, so a contract that carries a familiar name proves nothing on its own. The addresses below are the ones the Zenex app uses.
A script writes this page from the chain. It read every value at ledger 64,737,253 on 2 October 2026, and it checked that the contracts report the same addresses about each other. An owner can change a value at any moment, so the contracts hold the value in force.
Markets
| Market | XLM-USD |
|---|---|
| Status | Active |
| Market contract | CAOZCITWHWAXH5FRU4EULQ5EN2HMTCHICRNC4R5ZAOVD7XHCCQSJ42IB |
| Vault | CB2MX4WXJHOHCTDTN5DCFC7G3TLFLOYLCRCINPK7G2A3EUVW2AYVA56N |
| Price stream | Chainlink Data Streams, 0x000358cb12b1f5bbeca8b5b4666025a40b15520af1f82516ee2fb9a335055e9a |
| Vault shares | Zenex XLM USDC Vault, shown in a wallet as xvXLMUSDC |
Every market settles in USDC, the stablecoin Circle issues on Stellar. Its contract is CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75.
Protocol contracts
| Contract | Address | What it does |
|---|---|---|
| Factory | CDFEZPO7ZMXMZUMOIT2CZF5FUEIGD3CC5VOROUKF4KZEQQEDZBGSQYPQ | Deployed every market and its vault. It answers whether it deployed a given market. |
| Oracle | CBQP3O5NW6S4ZRE4SZAUO3VDOR32OMO22FLLMP3DJMO3TXJEPNW65XXU | Checks every price report before a market uses it. |
| Treasury | CDDEOTFOD5O2GOVMANJUIKLLQ5UDJCU3XFBXGTUWQYOUV5HF4OV6AU7U | Receives the protocol's share of the fees. |
| Price report verifier | CAKA3NBYPC6OBEUEGNIYGNYG3ES2GPQK736B5SR7ASGUXRDAKXI2JCQI | Chainlink's contract that checks the signatures on each price report. The oracle is fixed to it. |
Each vault belongs to one market, so the vaults appear with their markets above.
App contracts
The Zenex app sends your transactions through these contracts. They sit outside the core protocol.
| Contract | Address | What it does |
|---|---|---|
| Market router | CDOF5KRURJ7RRBPORHYSSKT727X3IBNF3LGOFHZND4HBTS5FRUZRJEZT | Lets the app create an order and fill it in one transaction, or bundle several calls into one. |
| Fee forwarder | CDOAKNTCQZSBQJY7FFQI7RUURJKY37KYI6GV464H2YHTDJ7DBI27F4J5 | Takes the network fee in USDC when the app sends a transaction for you. |
| Wallet factory | CBOKFCC24264FHSAK2PZ5U6VYMDMJWU55FORXE7ZT6EWBOLVK3TBLAOI | Creates the smart wallet the app sets up for you. |
| Session policy | CDIFOB7JFHWKIWDTMCFWTV2EMYPSLT77KPSXESMZT5W7OSLDAMCAEOTV | Holds the limits of one-click trading: the contracts a session key may call and the spending limit you choose. |
| Passkey verifier | CB7HENHJ7NF34I5FFXQK7D5I3WWQRGB5O5XO77D3NXMT7LM7LOKRQ5YR | Checks a passkey signature for a smart wallet. It comes with the smart-account kit the wallets are built on. |
| Ed25519 verifier | CBOOZV2BK5OETGL4Q4KGEBESPRLJFN7DOFWDT7OZGLD7EQEZUVOWUEMC | Checks a key signature for a smart wallet. It comes with the same kit. |
The fee forwarder pays the fees it takes to the account GA3E5GCBNYXFC4PEOVC5KAR5OH43ZRBOZDYFGTCFFEYIL3JONTRFCYNL.
Who controls the contracts
The account GBDCXZDDDJWW2OOZ7LDS7AECDFJXUAXXW6U3YM2QJPRIAXONV5SOQNDX owns the factory, the oracle, the treasury, and the XLM-USD market. It is one account and not a timelock, so a change it makes applies at once, with no wait.
The vault, the market router, the fee forwarder, the wallet factory, and the session policy have no owner. Governance covers what an owner can change.
XLM-USD parameters
The owner of the market can change any of these values at any moment, but only inside the protocol limit in the last column. The limits are part of the contract code, so no owner can move them. Market parameters says what each value does to your money.
| Parameter | Value | Protocol limit |
|---|---|---|
| Maximum leverage | 20x, from a 5% initial margin | 2x to 1000x, from an initial margin of 50% down to 0.1% |
| Maintenance margin | 2% of the position size | Above the liquidation fee. The initial margin must exceed it by more than the lower trade fee plus 0.1%. |
| Liquidation fee | 0.5% of the size that closes | Up to 25%, and below the maintenance margin |
| Position size | 1 USDC to 500 USDC | The smallest above zero and the largest above the smallest. No ceiling. |
| Total size per side | 50,000 USDC | At least the largest position size. No ceiling. |
| Minimum per order | 1 USDC of size and 1 USDC of collateral | Both above zero, and the size at most the smallest position size |
| Trade fee | 0.06% on the part of a fill that pushes the sides apart and 0.04% on the part that brings them together | Each up to 1%, and the first never below the second |
| Impact fee | 0.005% of the fill at the largest position size of 500 USDC. The rate doubles when the size doubles. | Never more than 10% of the fill. A fill of the smallest position size pays at most 0.1%. |
| Execution fee | 0.01 USDC per order | At most the minimum collateral per order |
| Keeper share | 10% of the trade fee, the impact fee, the liquidation fee, and the vault fee | Up to 50% |
| Utilization cap | 80% of half the vault balance for an increase and 90% for a redeem | The increase cap above 0% and up to 1,000%. The redeem cap from the increase cap to 1,000%. |
| Borrowing curve bend | 80% utilization | Below 100% |
| Borrowing rate | One straight line from nothing on an unused side to about 40% a year at the bend and about 50% a year at full utilization | Up to 1,000% a year at full utilization |
| Funding cap | About 20% a year in either direction | Up to 1,000% a year |
| Minimum funding charge | About 1% a year whenever a side pays at all | At most the funding cap |
| Funding build-up level | A 4% imbalance | Up to 100% |
| Funding wind-down level | A 0% imbalance | At most the build-up level |
| Funding build-up speed | At full imbalance, from nothing to the cap in about 2 hours | At most 1,000% a year added each second |
| Funding wind-down speed | From the cap to nothing in about 2 days. No imbalance falls under a 0% level, so this speed never applies on this market. | At most 1,000% a year removed each second |
| Auto-deleveraging | Flags a side at 55% of half the vault balance and clears the flag at 40% | The flag from 45% to below 100%. The clear level from 40% up to the flag. |
| Profit cap | Starts at 90% of half the vault balance | From the flag level to below 100% |
| Redeem block | Refuses a redeem while a side's pending profit sits above 15% of half the vault balance the redeem would leave | Above 0%, and at most the clear level |
| Vault fee | 0.1% of the assets a deposit fill moves and 0.25% of the assets a redeem fill moves | Each up to 1% |
| Minimum deposit | 10 USDC | Above zero, and at most 1/100 of the vault balance cap |
| Vault balance cap | 100,000 USDC | Above zero. No ceiling. |
| Redeem cooldown | 1 hour | Up to 30 days |
| Lock on new size | 30 seconds | 15 seconds to 1 day |
Price and treasury settings
The oracle and the treasury serve every market, so their settings sit apart from each market's own set. The oracle owner and the treasury owner change them. Prices covers the two age limits and the spread narrowing.
| Setting | Value | Protocol limit |
|---|---|---|
| Price age for a fill | 15 seconds | 3 seconds to 15 seconds |
| Price age for a liquidation, an auto-deleveraging step, or an accrual | 1 minute | From the limit for a fill to 2 minutes |
| Spread narrowing | Each side of the quote moves half the way to the middle of the spread | From none of the way to all of it |
| Treasury share | 30% of the trade fee, the impact fee, the liquidation fee, the vault fee, and the borrowing charge | 0% to 50% |
The code at each address
The core contracts run the release build of the Zenex contracts at commit 644a4c4, deployed on 2026-09-29. The app contracts run zenex-util-contracts v0.0.2, deployed on 2026-10-02. Each hash below is the hash of the code the chain holds at that address, and the script checked it against the build it names.
| Contract | Code hash |
|---|---|
| Market (XLM-USD) | 02aa342f5e6e084c8e5728b74aee77864f77ea720896e61a689da8252f95943c |
| Vault (XLM-USD) | 464026c214f8700408715b370fcc26e1eb8b688d3ff468bfc6ade751e0aab20e |
| Oracle | 90e0f43192ac14389c7721b67b5f5a3ca92b24f0a5c677241e303084b9c38f55 |
| Treasury | 555210f70b30010aec58c08382a95ecf2c584db1e793ea2e9f43bf9fc028faa3 |
| Factory | cfb3489b1b5f975efd763a75c42656903d0bbaafa548e3d1c603d7e1d2fdc19f |
| Market router | 19032576681e48afab44bde4560c156a69fe5c94037f48cc7ceb418f3719b125 |
| Fee forwarder | d501d20cfea6676b51ff341b408bbe4e406a17e4a21516064d8ea9663994088e |
| Wallet factory | a7f32705c1ceeda07496520a3b16a1c6a64f1d68e4425752e892633d6009f035 |
| Session policy | 7c25590eb09bcf93065840df7d59dbeafbfc0648731068d5b0fad3b12603dfad |
The factory installs the same market and vault code, and wires the same treasury, into every market it deploys from now on.