Repository navigation
v1.0.1 — Factory 0.11.0 on four mainnets, protocol fee live
Contract generation 0.11.0 — the number in package.json tracks the contract generation, while release tags are a separate human-facing sequence.
Every address and figure below was read from chain immediately before publishing. Nothing here is a projection.
AdextoFactory 0.11.0 — live on four mainnets
Identical runtime bytecode on all four, 21,281 bytes, VERSION 0.11.0, PROTOCOL_FEE_BPS 10, and the same immutable protocolTreasury 0x24268Fffc119ec5550F68e80D94476fD64daE967.
| Chain | AdextoFactory |
|---|---|
| 0G Mainnet 16661 | 0x51c4168226463F7e5A141e1c6D30520734BC840a |
| Base 8453 | 0x216E7880D64D94335B583c539802d3e61958d4A2 |
| Arbitrum One 42161 | 0xE17f1027FC5f294327D701829baeD9d6519e922C |
| Monad 143 | 0x5800e9715a47a598fce9bc3B65a95FD6BeBf76A3 |
Live markets
Both on 0G Mainnet, both with 100.00% of supply held by the curve.
| Market | Token | Curve |
|---|---|---|
| $ADEXTO | 0xA1358C17004469C7CA5365AbafD294F9b2c11DF7 |
0xc80e0659D2Fc29e62605C9DF6182a85372652B60 |
| $ADT | 0x27F3117679680e0a85951BF4a1ca44Bd67D1E5a5 |
0x75148E905a31F7f5dD2f3Fe8fea4588a08ebF966 |
What changed since v1.0.0
A protocol fee exists. 0.10% of swap volume, added on top of the creator's configured rate rather than taken from it, so a market configured at 0.30% costs a trader 0.40%. The live split is 0.15% retained depth, 0.10% creator, 0.05% buyback, 0.10% protocol. The destination is immutable and there is no setter, so it cannot be redirected. Markets created by the earlier 0.10.0 factory can never pay it — their rates are immutable too, which is permanent rather than a pending migration.
Both markets were relaunched at new addresses so they run on the 0.11.0 curve. The 0.10.0 markets remain tradable directly against their curves and still hold their reserves; nothing can be withdrawn from a curve. They are only no longer listed.
Governance was removed, not repaired. AdextoGovernor is still deployed on all four chains and controls nothing: governanceToken is the zero address on Base and Monad and points at a contract with no balanceOf on 0G and Arbitrum, so castVote reverts everywhere. Its thresholds are denominated in a token that never existed. The launch path contains no reference to a governor and no setters, so a working vote would decide nothing. The page is gone; the addresses stay listed as inert, because hiding a deployed contract is worse than explaining it.
Claims removed: Uniswap v4 hooks, World ID, cross-chain CCIP execution, and "ERC-8004 compliance". The last one is now partly true and stated precisely — since 0.10.0 a launch can bind a token to a real agent id in the ERC-8004 Identity Registry and the factory reverts unless the caller owns that agent. One registry of three, no supportsInterface, so the accurate description is identity registry only.
Hardware corrected from AMD SEV-SNP to Intel TDX, and marked router-reported, because we do not verify the attestation ourselves.
What is not built
- x402 settlement. The 402 challenge and its EIP-712 quote are live and the worker does real verification, but it returns
settlementImplemented: falseand answers 501 for a valid voucher, so no payment can be collected. - MCP tooling. Signet, Sentinel and Helm are names in a registry record. There is no MCP server in this repo.
- Compute subscriptions. No billing, plan gating or subscription exists.
Security
Eight analysers run on every scan: compiler warnings, Foundry fuzzing and invariants, Slither, Aderyn, Solhint, Semgrep and Echidna. The solvency invariant includes protocolOwed as a term and held across every random action sequence tried. No human audit has been performed, and the triage of static findings is our own, not an independent review.
The curve has no withdraw, rescue, sweep, drain, emergency, skim, migrate, selfdestruct or fallback. Exactly three functions send native out: sell pays the seller, claimCreatorFees pays the immutable creator, claimProtocolFees pays the immutable treasury. Both claims are permissionless, which is safe precisely because both destinations are immutable — a caller can pay the gas but cannot change where the money goes.