尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Smart contracts for Conductors — invest in AI agents that run real businesses. Fair-launch bonding curves, AMM graduation and a one-way, KYC-gated conversion into revenue pools. Solidity · Base · Arbitrum.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗[!WARNING] Pre-audit. These contracts run on testnet and have not been professionally audited. Do not deploy them to mainnet with real funds.
On Conductors, an AI agent operates a real business (EV chargers, data centers or an API behind an x402 paywall), and its revenue flows into a DobProtocol pool. Each agent offers two separate products:
| A — agent token | B — revenue participation | |
|---|---|---|
| Nature | Perpetual market token | Finite, amortizing claim on future revenue |
| Access | Permissionless trading | KYC required |
| Issued by | This repo (AgentShareToken) | DobProtocol pool |
| Pays out | Nothing directly. Its value is the right to convert | 100% of the revenue that reaches the pool |
| Market | Bonding curve → locked-liquidity AMM, quoted in DOBX | DobProtocol |
Holders can convert A → B once, and the conversion can't be reversed. It burns the A, releases the curve reserve that backed it to fund the business's capex, and hands back B at a pro-rata ratio fixed at activation. B can never be turned back into A.
flowchart LR
L["AgentLaunchpad<br/><code>launch()</code>"] --> T["AgentShareToken (A)<br/>fixed supply"]
L --> C["AgentBondingCurve<br/>buy / sell in DOBX"]
C -- "raised ≥ graduationRaise" --> M["AgentAMM<br/>x·y = k, LP locked"]
C -- "trading fees" --> F["AgentFeeSplitter<br/>65% agent · 35% platform"]
L -- "<code>deployController()</code>" --> K["AgentController<br/>immutable, ownerless"]
H(("Holder")) -- "convert(A)" --> K
K -- "burn A + release reserve" --> C
K -- "DOBX" --> X["capexSink"]
K -- "B" --> H
K -. "KYC check" .-> R["KycRegistry"]
P[("DobProtocol pool<br/>revenue → B holders")] -. "B tokens" .-> K
AgentLaunchpad deploys the agent's A token and its bonding curve. The full supply sits in the curve.base + sold · slope.AgentAMM at its terminal price and locks the LP forever.AgentController lets KYC'd holders convert A into B.| Contract | Responsibility |
|---|---|
DOBX | Platform token and quote asset of every curve. Fixed 1e9 supply minted to the treasury, no mint function, burnable. |
AgentLaunchpad | Factory and registry. launch() deploys an agent's A token and curve; deployController() attaches the A→B crossing. Gated and pausable. |
AgentShareToken | Fixed-supply ERC-20 for one agent's A. No owner, no mint after launch; holder-burnable. |
AgentBondingCurve | Linear curve priced per whole share in DOBX. Graduates into the AMM at graduationRaise; redeemForConversion() is callable only by the bound controller. |
AgentAMM | Constant-product AMM for A ↔ DOBX with explicit reserves (donation-proof). |
AgentController | The crossing. Immutable and ownerless: snapshots supply at activate(), enforces a grace period and KYC, converts A → B, routes released reserve to the capex sink, vests the creator's retained B. |
AgentControllerFactory | Holds the controller's creation code so the launchpad stays under the 24 KB limit. Stateless. |
AgentController has no owner, proxy, setter or sweep. bindController can only be called once, so a live crossing can't be redirected.balanceOf, which also rules out a first-depositor attack. addLiquidity only takes a matched pair, and every state-changing trade has a deadline.The key and role model, the threat analysis and the plan to separate keys before mainnet are in docs/OPERATIONS.md. To report a vulnerability, see SECURITY.md.
| Contract | Address |
|---|---|
| DOBX | 0x7E18D1DE113C7F0D02998f61F2715bA5acE5E3c5 |
| AgentLaunchpad | 0xA16C303E28F5220196f84fEAa7A1E376f29bd6CA |
| AgentControllerFactory | 0x8aA347f079B34fD189bD72B5AfeF604F59dDcC3b |
| KycRegistry | 0x8c75969aF053a4b4203685b441EDCe9372B077d2 |
Configured networks: Base (base, 8453) · Base Sepolia (baseSepolia, 84532) ·
Arbitrum One (arbitrumOne, 42161) · Arbitrum Sepolia (arbitrumSepolia, 421614) ·
Robinhood Chain (robinhood, 4663)
You need Node.js 20+. The fuzz suite also needs Foundry.
git clone --recurse-submodules https://github.com/opcastil11/conductors-contracts.git
cd conductors-contracts
npm install
npm run compile
npm test # Hardhat: lifecycle, graduation, AMM, fee split and the full A→B crossing
forge test # Foundry: curve fuzzing, AMM and stake invariants
The scripts in scripts/e2e-*.js run end to end against a live testnet deployment. They are
described in docs/STATUS.md.
cp .env.example .env # PRIVATE_KEY, PLATFORM_TREASURY, RPC URLs, explorer API keys
npm run deploy:baseSepolia # or deploy:arbitrumSepolia, deploy:base, deploy:arbitrum
The first deploy on a network mints DOBX. On every later deploy, set DOBX_ADDRESS so all
curves share one quote token. Addresses are written to deployments/<network>.json, which is
gitignored. The full runbook is in docs/DEPLOY.md.
| Document | Contents |
|---|---|
| TOKENOMICS-V2 | Current economic model: the two products, one-way conversion, price floor and creator parameters |
| STATUS | What is deployed and verified on-chain, and what is not built yet |
| OPERATIONS | Roles and keys, threat model, key-separation plan, operational runbook |
| DEPLOY | Deployment runbook and per-agent wiring |
| TOKENOMICS (v1) | Superseded 2026-07-05 model, kept for history |
graduationRaiseOscar Castillo and Fernando Castillo, the founding team of DobProtocol. DobProtocol is backed by the Stellar Development Foundation and DraperU Ventures.
MIT © 2026 Conductors
AgentFeeSplitter| Fee recipient of a curve. Splits trading fees between the agent's wallet, which pays for its own compute, and the platform. Default 65 / 35; the agent's share is never below 50%. |
KycRegistry | On-chain mirror of DobProtocol's KYC. Consulted only at the crossing; trading A stays permissionless. |
OperatorStake | Operator bond with cooldown-delayed withdrawals, slashable on proven under-reporting of revenue. |