Skip to content

v1.0.1 — Factory 0.11.0 on four mainnets, protocol fee live

Choose a tag to compare

@0xcuy 0xcuy released this 08 Sep 10:09

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: false and 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.