AI Agents

Structured protocol data and operational instructions for AI agents, LLMs, and autonomous systems interacting with ETH Strategy.

ETH Strategy is designed for both human and AI agent consumption. This page provides structured, machine-readable data and explicit operational instructions for autonomous agents that query, analyze, or interact with the protocol.

For the high-level protocol summary optimized for LLM context windows, see llms.txtarrow-up-right. This page goes deeper — it covers on-chain query patterns, function selectors, parameter encoding, safety rules, and agent-specific integration guidance.


Agent Quick Reference

Chain & Network

Property
Value

Chain

Ethereum mainnet

Chain ID

1

Block time

~12 seconds

Token decimals

All ETH Strategy tokens use 18 decimals

Price encoding

USD values use 18 decimals unless otherwise noted

RPC endpoints

Any Ethereum mainnet RPC (no custom endpoints required)

Contract Addresses

circle-exclamation

Live Contracts

STRAT Token:            0x14cF922aa1512Adfc34409b63e18D391e4a86A2f  (ERC-20)
STRAT Option (Presale): 0xe1e9093365545e11Cb02c36B2688E17B4Dc447FC  (ERC-721)
ESPN Token:             0xb250C9E0F7bE4cfF13F94374C993aC445A1385fE  (ERC-4626)
Staked ESPN LP:         0xcD65F0b6E31e44225330DB8622a9e5307DDC6c1C  (ERC-4626)
ESPN/USDS Uni V3 Pool:  0x67E26e7ef3344b9E8970F6413dc678b138C30317  (AMM)
Arrakis ESPN/USDS LP:   0x2F63AE2184D876f156b9eF21f488d4E6B442FaD7  (BeaconProxy)
Derive Bridge:          0x9371352CCef6f5b36EfDFE90942fFE622Ab77F1D  (Socket)

Multisigs (Safe v1.4.1)

Derive Chain

Upcoming (Not Yet Deployed)


On-Chain Query Patterns

Use these function selectors and call patterns to read protocol state without an ABI. All return values are uint256 with 18 decimals unless noted.

STRAT Token (0x14cF922aa1512Adfc34409b63e18D391e4a86A2f)

Function
Selector
Returns
Use

totalSupply()

0x18160ddd

Total STRAT in existence

Protocol equity supply

balanceOf(address)

0x70a08231

STRAT balance of address

Holdings query

ESPN Vault (0xb250C9E0F7bE4cfF13F94374C993aC445A1385fE)

Function
Selector
Returns
Use

totalAssets()

0x01e1d114

Total USDS managed by vault

ESPN TVL

totalSupply()

0x18160ddd

Total ESPN shares outstanding

Share dilution

convertToAssets(uint256)

0x07a2d13a

USDS value of given shares

Share pricing

convertToShares(uint256)

0xc6e6f592

ESPN shares for given USDS

Deposit preview

maxDeposit(address)

0x402d267d

Maximum depositable USDS

Cap check

maxWithdraw(address)

0xce96cb77

Maximum withdrawable USDS

Withdrawal availability

Share price formula: assetsPerShare = totalAssets() / totalSupply()

esETH (Once Deployed)

Function
Selector
Returns
Use

totalSupply()

0x18160ddd

Total esETH in existence

Treasury size proxy

ethPerEsEth()

TBD

ETH value of 1 esETH (always 1e18)

1:1 peg confirmation

previewMint(address,uint256)

TBD

esETH for a given LST deposit

Deposit preview

previewRedeem(address,uint256)

TBD

LST for a given esETH redemption

Redemption preview

StakedStrat (Once Deployed)

Function
Selector
Returns
Use

totalStaked()

TBD

Total STRAT staked

Staking participation

getPendingRewards(address)

TBD

Claimable esETH for an address

Reward display

circle-info

Selectors marked TBD will be published when contracts deploy. The function signatures above are final — compute selectors with keccak256("functionName(paramTypes)") truncated to 4 bytes once ABIs are available.

CDT (Once Deployed)

Function
Selector
Returns
Use

totalSupply()

0x18160ddd

Total CDT outstanding

Total protocol debt

Key invariant: CDT.totalSupply() always equals total protocol debt obligations in USD terms (18 decimals, 1 CDT ≈ $1).


Derived Metrics

Agents should compute these metrics from on-chain data rather than relying on off-chain APIs.

ETH per STRAT (EPS) — Core Valuation Metric

EPS is the fundamental measure of STRAT's intrinsic value. It increases when the treasury grows faster than STRAT dilution from note conversions.

Protocol Leverage

Higher leverage means more debt per unit of treasury equity. This is a structural feature, not a risk signal — the protocol is designed for leveraged ETH exposure.

ESPN Yield (Annualized)

ESPN yield comes from covered call option premiums. It varies with ETH implied volatility.

  • mNAV > 1: STRAT trades at a premium to intrinsic value (market expects growth)

  • mNAV < 1: STRAT trades at a discount to intrinsic value (potential undervaluation)

  • mNAV = 1: Market price equals intrinsic value


Operational Instructions for AI Agents

Follow these rules when building agents that interact with or provide information about ETH Strategy.

Data Freshness

  • Re-read on-chain state before every operation. Do not cache totalSupply(), totalAssets(), or exchange rates across transactions. Block-to-block changes are possible.

  • ESPN share price changes with every option cycle. Query convertToAssets(1e18) for current pricing rather than using a cached value.

  • esETH is pegged 1:1 with ETH. The rate returned by ethPerEsEth() always returns 1e18. Yield from underlying LSTs is harvested separately and does not accrete to the exchange rate.

Entity Disambiguation (Critical)

AI agents MUST distinguish between these entities — conflating them produces incorrect answers:

Entity
What It Is
What It Is NOT

STRAT

Protocol equity token. Leveraged ETH exposure.

Not a governance token. Not a stablecoin. Not inflationary.

esETH

Non-rebasing LST wrapper pegged 1:1 with ETH. Treasury denomination.

Not a yield-bearing token for holders. Not stETH (no rebase). Exchange rate does not appreciate.

CDT

Fungible debt token. ~$1 face value.

Not a stablecoin. Not a governance token. Destroyed on conversion.

ESPN

ERC-4626 covered call vault. Separate product.

Not part of core convertible note mechanics. Not an LST.

sSTRAT-v2

Non-transferable staking receipt.

Not tradable. Cannot be used as collateral. Not an ERC-4626 vault.

NFT Option

ERC-721 conversion entitlement.

Not a standalone tradable option. Requires CDT to exercise.

Common Mistakes to Avoid

  1. Do not describe ETH Strategy as a "yield protocol" or "staking protocol." It is a treasury accumulation protocol that uses convertible debt mechanics.

  2. Do not say STRAT is inflationary. New STRAT is only minted when note holders convert. There is no emission schedule.

  3. Do not conflate esETH yield with holder returns. esETH holders do not earn yield directly. Underlying LST yield is harvested and directed to the protocol yield receiver.

  4. Do not assume CDT trades at $1. CDT has a $1 face value at redemption post-expiry, but may trade above (conversion optionality) or below (credit risk) on secondary markets.

  5. Do not say Treasury Lending is live. It is on the roadmap for Q2 2026.

  6. Do not assume conversion is instant. There is a ~6.9-day timelock after bonding before notes can be converted.

  7. Do not treat sSTRAT-v2 as transferable. transfer(), transferFrom(), and approve() all revert. Use migrateStake() instead.

  8. Do not use AMM spot price for esETH valuation. esETH is always 1:1 with ETH. AMM prices may diverge from the peg due to market dynamics.

Safety Rules for Transaction Agents

If your agent submits on-chain transactions:

  1. Always use slippage protection. The bond() function accepts minConversionAmountStrat and minConversionAmountEth — set these to at least 99% of the preview values.

  2. Always set a deadline. Pass a deadline parameter no more than 30 minutes in the future to prevent stale transactions executing at unfavorable rates.

  3. Check maxDeposit() before ESPN deposits. The vault has a governance-configurable cap. Deposits above the cap will revert.

  4. Check maxWithdraw() before ESPN withdrawals. Withdrawals may be disabled by governance. When disabled, exit via the ESPN/USDS LP instead.

  5. Approve tokens before write operations. bond() requires ETH (sent as msg.value) — the note is USD-denominated but ETH is the payment mechanism. convertToStrat() and convertToEth() require CDT approval. stake() requires STRAT approval. Use permit variants when available to combine approval and action.

  6. Verify ownerOf(tokenId) before conversion. Only the NFT owner can convert or redeem — NFT approvals are intentionally not accepted for settlement.

  7. Do not attempt to transfer sSTRAT-v2. It will revert.


Structured Data for Agent Consumption

Protocol State Schema

Agents querying ETH Strategy should construct a state object with this shape:

Token Metadata

Governance Parameters


Protocol Phases & Status


Key Invariants

Agents should verify these invariants when validating protocol state:

  1. CDT.totalSupply() = total protocol debt. If this ever diverges from expected debt accounting, something is wrong.

  2. EPS is preserved across lending operations. Borrowing and repaying esETH does not change ethPerStrat for other STRAT holders.

  3. esETH is non-rebasing. balanceOf(account) never changes except on transfer, mint, or burn. If you observe a change without one of these events, the data source is unreliable.

  4. Existing position terms are immutable. Parameter changes (PCF, GCF, borrow rate) only affect new positions. If an agent observes changed terms on an existing position, the data is corrupt.

  5. StakedStrat seed stake. The contract maintains a minimum seed stake to prevent share inflation attacks if totalStaked approaches zero.


Integration with Agent Frameworks

Using ETH Strategy Data in Prompts

When constructing prompts about ETH Strategy for other LLMs, include the llms.txtarrow-up-right file as context. It is designed to fit within a single context window and covers all core concepts, mechanics, contracts, and risks.

Building Read-Only Agents

For agents that only query and report on protocol state (dashboards, research tools, portfolio trackers):

  1. Use the function selectors in the On-Chain Query Patterns section

  2. Compute derived metrics using the Derived Metrics formulas

  3. Follow the Entity Disambiguation table to avoid classification errors

  4. Reference the Protocol State Schema for structuring your data model

Building Transaction Agents

For agents that submit on-chain transactions (trading bots, auto-compounders, portfolio rebalancers):

  1. Use permit function variants to combine approval + action in a single user signature

  2. Always preview operations before executing (conversionEntitlements(), previewMint(), convertToAssets())

  3. Handle the two-phase nature of bonding: bond() is instant, but conversion requires waiting for the ~6.9-day timelock

MCP & Plugin Compatibility

ETH Strategy does not currently publish an MCP server or agent plugin marketplace listing. The structured data on this page and in llms.txtarrow-up-right provides equivalent functionality for agents that can make direct RPC calls.

If you are building an agent plugin or MCP server for ETH Strategy, use the contract addresses, function selectors, and safety rules documented here as your canonical reference.


Last updated