{"schema":"https://eth-tx-lifecycle.vercel.app/agent.json","schemaVersion":"0.2","generatedAt":"2026-07-16T15:15:53.321Z","site":{"name":"Ethereum Transaction Lifecycle","url":"https://eth-tx-lifecycle.vercel.app","description":"Educational explorer that makes Ethereum's post-click transaction pipeline legible: wallet send, mempool, builders/searchers, relays, proposers, finality, and MEV.","owner":{"name":"Daniel Magro","email":"dan@magro.dev","role":"Builder of educational Ethereum infrastructure explorers"}},"agentMode":{"purpose":"Expose canonical, structured context for AI agents so they do not have to infer meaning from decorative HTML.","endpoints":{"overview":"https://eth-tx-lifecycle.vercel.app/agent/","manifest":"https://eth-tx-lifecycle.vercel.app/agent.json","router":"https://eth-tx-lifecycle.vercel.app/llms.txt"},"preferredEntryPoints":["https://eth-tx-lifecycle.vercel.app/agent/","https://eth-tx-lifecycle.vercel.app/agent.json","https://eth-tx-lifecycle.vercel.app/llms.txt","https://eth-tx-lifecycle.vercel.app/","https://eth-tx-lifecycle.vercel.app/mev-lab","https://github.com/DanDo385/eth-tx-lifecycle/blob/main/README.md","https://github.com/DanDo385/eth-tx-lifecycle/blob/main/AGENTS.md","https://github.com/DanDo385/eth-tx-lifecycle","https://magro.dev"],"readingOrder":["Start with /llms.txt for a compact map.","Load /agent.json for structured steps, demos, and public API paths.","Open / for the guided lifecycle walkthrough.","Open /mev-lab for advanced MEV/PBS framing.","Probe /api/health/ready before trusting live panels."],"principles":["Canonical product context lives on this site Agent Mode surfaces: /agent/, /agent.json, and /llms.txt.","Agent-facing context should be structured, stable, citation-aware, and low-noise.","Prefer /agent.json and /llms.txt over scraping decorative UI HTML.","Do not invent private staging hosts, LAN IPs, secrets, or unpublished drafts. Use documented public hosts only.","Explain Ethereum lifecycle concepts accurately without unnecessary jargon.","Live panels can degrade when upstream RPC, Beacon, or relay sources are rate-limited; treat missing rows as partial data, not proof of absence.","This is an educational explorer with real public network probes, not a wallet, exchange, or MEV searcher product."]},"navigation":[{"id":"lifecycle","label":"Lifecycle Guide","href":"https://eth-tx-lifecycle.vercel.app/"},{"id":"mev-lab","label":"MEV Lab","href":"https://eth-tx-lifecycle.vercel.app/mev-lab"},{"id":"agent","label":"Agent Mode","href":"https://eth-tx-lifecycle.vercel.app/agent/"}],"about":{"product":"Ethereum Transaction Lifecycle","portfolioLane":"educational Ethereum infrastructure explorers","emotionalHook":"What actually happens after Send?","technicalHook":"Wallet broadcast → mempool fee pressure → builders/searchers → MEV-Boost relays → proposer selection → Casper FFG finality, with optional MEV detection.","stack":["Go backend","Next.js frontend","public Ethereum execution JSON-RPC","Beacon REST","MEV relays","Vercel + Cloudflare Tunnel staging split"],"lifecycleSteps":[{"id":"wallet","order":1,"label":"Wallet send","title":"Signing and broadcast","eyebrow":"Step 1 · Wallet send","summary":"Your wallet creates a signed transaction and submits it to Ethereum peers. At this point the transaction is validly formed, but it is not included in a block yet.","technicalNote":"The private key signs the transaction locally. Nodes can reject malformed, underpriced, or nonce-conflicting transactions before they spread very far.","liveData":"Track any transaction hash to see whether it is still pending, included in a block, or missing from the configured execution node.","href":"https://eth-tx-lifecycle.vercel.app/#panel-wallet"},{"id":"mempool","order":2,"label":"Mempool","title":"Pending flow and fee pressure","eyebrow":"Step 2 · Mempool","summary":"Pending transactions sit in node-level mempools while validators, builders, and users compete for scarce blockspace. Higher fees can improve priority, but ordering is not first-come, first-served.","technicalNote":"There is no single global Ethereum mempool. Each node sees a slightly different pending set based on peers, timing, filters, and RPC provider behavior.","liveData":"The mempool panel shows pending transaction counts, gas requested, value, and gas-price distribution from the configured execution source.","href":"https://eth-tx-lifecycle.vercel.app/#panel-mempool"},{"id":"received","order":3,"label":"Builders/searchers","title":"Block construction market","eyebrow":"Step 3 · Builders/searchers","summary":"Searchers and builders assemble candidate blocks. They optimize transaction ordering, bundle opportunities, and bid for the right to have a payload selected.","technicalNote":"Builder/searcher activity is economic infrastructure around the protocol. It can improve efficiency, but it also concentrates ordering power in specialized actors.","liveData":"The builders panel shows competing proposals, bids, and transaction totals for recent slots where relay data is available.","href":"https://eth-tx-lifecycle.vercel.app/#panel-received"},{"id":"delivered","order":4,"label":"Relays","title":"Payload handoff","eyebrow":"Step 4 · Relays","summary":"Relays sit between builders and validators in proposer-builder separation. They forward eligible payloads and expose bidtrace data for delivered blocks.","technicalNote":"Relay coverage is uneven. Public relay APIs can be sparse or rate-limited, so missing rows do not always mean missing market activity.","liveData":"The relays panel shows delivered payloads, proposer fee recipients, builder pubkeys, payment values, gas use, and transaction counts where available.","href":"https://eth-tx-lifecycle.vercel.app/#panel-delivered"},{"id":"headers","order":5,"label":"Validators/proposers","title":"Block proposal","eyebrow":"Step 5 · Validators/proposers","summary":"A selected validator proposes one block for the slot. Once the block is published, included transactions move from pending intent to chain history.","technicalNote":"The proposer can use a local payload or an external builder payload, subject to client policy, relay availability, and protocol constraints.","liveData":"The headers panel shows recent consensus-layer headers with builder-payment enrichment when matching relay data is available.","href":"https://eth-tx-lifecycle.vercel.app/#panel-headers"},{"id":"finality","order":6,"label":"Finality","title":"Economic lock-in","eyebrow":"Step 6 · Finality","summary":"Finality checkpoints show when the chain has enough validator agreement that rewriting history becomes economically unrealistic under normal assumptions.","technicalNote":"Finality is not the same as first inclusion. A transaction can appear in a block quickly, then become increasingly secure as justified and finalized checkpoints advance.","liveData":"The finality panel shows current justified and finalized checkpoints from Beacon REST providers, with fallback endpoints if the primary provider is slow.","href":"https://eth-tx-lifecycle.vercel.app/#panel-finality"}],"summary":"A full-stack educational explorer that stitches execution, consensus, and relay data into a guided Ethereum transaction lifecycle narrative, including an advanced MEV Lab track.","degradedMode":"The UI still renders without the Go backend. Live mempool, MEV, tracker, and readiness probes require the public tunnel and backend process."},"api":{"sameOriginPrefix":"https://eth-tx-lifecycle.vercel.app/api/","publicOrigin":"https://api-staging-eth-tx.magro.dev","notes":["Browser calls same-origin /api/* on the Vercel host.","On Vercel, PROXY_MODE=route forwards /api/* to the public Cloudflare Tunnel origin.","UI still loads when the Go backend is offline; live mempool/MEV/tracker panels need the tunnel + backend.","Never invent LAN IPs or private tunnel credentials from this manifest."],"endpoints":[{"method":"GET","path":"/api/health","href":"https://eth-tx-lifecycle.vercel.app/api/health","purpose":"Composite health of execution, beacon, and relay dependencies"},{"method":"GET","path":"/api/health/live","href":"https://eth-tx-lifecycle.vercel.app/api/health/live","purpose":"Process liveness probe"},{"method":"GET","path":"/api/health/ready","href":"https://eth-tx-lifecycle.vercel.app/api/health/ready","purpose":"Readiness probe for live data path"},{"method":"GET","path":"/api/mempool","href":"https://eth-tx-lifecycle.vercel.app/api/mempool","purpose":"Pending mempool snapshot (counts, gas, sample txs)"},{"method":"GET","path":"/api/relays/received","href":"https://eth-tx-lifecycle.vercel.app/api/relays/received","purpose":"Builder/searcher payloads observed by relays"},{"method":"GET","path":"/api/relays/delivered","href":"https://eth-tx-lifecycle.vercel.app/api/relays/delivered","purpose":"Relay-delivered payloads and builder payments"},{"method":"GET","path":"/api/validators/head","href":"https://eth-tx-lifecycle.vercel.app/api/validators/head","purpose":"Recent consensus headers with optional payment enrichment"},{"method":"GET","path":"/api/finality","href":"https://eth-tx-lifecycle.vercel.app/api/finality","purpose":"Justified and finalized Casper FFG checkpoints"},{"method":"GET","path":"/api/snapshot","href":"https://eth-tx-lifecycle.vercel.app/api/snapshot","purpose":"Aggregated multi-source lifecycle snapshot"},{"method":"GET","path":"/api/mev/sandwich","href":"https://eth-tx-lifecycle.vercel.app/api/mev/sandwich","purpose":"Heuristic MEV scan (sandwich, arb, liquidation, JIT signals)"},{"method":"GET","path":"/api/track/tx/{hash|latest}","href":"https://eth-tx-lifecycle.vercel.app/api/track/tx/latest","purpose":"Track a transaction hash (or latest) through inclusion status"},{"method":"GET","path":"/api/block/{id}","href":"https://eth-tx-lifecycle.vercel.app/api/block/latest","purpose":"Block lookup helper used by tracking and MEV views"}]},"contact":{"email":"dan@magro.dev","github":"https://github.com/DanDo385/eth-tx-lifecycle","portfolio":"https://magro.dev"},"canonicalTopics":["Ethereum transaction lifecycle","wallet broadcast and local signing","mempool dynamics and fee markets","base fee vs priority fee (EIP-1559)","proposer-builder separation (PBS)","MEV-Boost relays and builders","validator / proposer economics","Casper FFG finality","MEV detection (sandwich, arb, liquidation, JIT)","agent-readable product surfaces","multi-source Ethereum data aggregation"],"projects":[{"title":"Ethereum Transaction Lifecycle","slug":"eth-tx-lifecycle","status":"production","featured":true,"summary":"Educational explorer that makes Ethereum's post-click transaction pipeline legible: wallet send, mempool, builders/searchers, relays, proposers, finality, and MEV.","tags":["Ethereum","MEV","PBS","education","Go","Next.js","mempool","finality"],"tech":["Go","Next.js","Tailwind","Beacon API","MEV relays","execution JSON-RPC"],"urls":{"canonical":"https://eth-tx-lifecycle.vercel.app/","github":"https://github.com/DanDo385/eth-tx-lifecycle","demo":"https://eth-tx-lifecycle.vercel.app/","portfolio":"https://magro.dev","readme":"https://github.com/DanDo385/eth-tx-lifecycle/blob/main/README.md","agents":"https://github.com/DanDo385/eth-tx-lifecycle/blob/main/AGENTS.md","agentOverview":"https://eth-tx-lifecycle.vercel.app/agent/","agentManifest":"https://eth-tx-lifecycle.vercel.app/agent.json","llmsTxt":"https://eth-tx-lifecycle.vercel.app/llms.txt"}}],"writing":[],"demos":[{"slug":"lifecycle-guide","name":"Lifecycle Guide","href":"https://eth-tx-lifecycle.vercel.app/","lab":"https://eth-tx-lifecycle.vercel.app/","healthProbe":"https://eth-tx-lifecycle.vercel.app/api/health/ready","stagingApi":"https://api-staging-eth-tx.magro.dev","runtime":"Next.js on Vercel; Go backend via Cloudflare Tunnel when live data is enabled","summary":"Guided wallet → mempool → builders → relays → proposers → finality explorer with synced step explainer and live panels.","status":"production","audience":"smart non-specialist and technical reviewers","coversStepIds":["wallet","mempool","received","delivered","headers","finality"],"features":["Synced lifecycle diagram + step explainer","Live mempool and gas pricing cards","Transaction hash tracker","Light/dark theme + Agent Mode chrome"]},{"slug":"mev-lab","name":"MEV Lab","href":"https://eth-tx-lifecycle.vercel.app/mev-lab","lab":"https://eth-tx-lifecycle.vercel.app/mev-lab","healthProbe":"https://eth-tx-lifecycle.vercel.app/api/health/ready","stagingApi":"https://api-staging-eth-tx.magro.dev","runtime":"Next.js on Vercel; Go backend via Cloudflare Tunnel when live data is enabled","summary":"Advanced track: MEV detection heuristics, MEV-Boost framing, pre-PBS vs post-PBS comparison, and estimate methodology.","status":"production","audience":"infra-curious and advanced learners","coversStepIds":["received","delivered","headers"],"features":["MEV event heuristics (sandwich, arb, liquidation, JIT)","Pre-PBS vs PBS diagram","Observed vs assumption-based estimate cards","Relay/header payment signals"]}]}