Skip to content

docs(EL): add Engine API reference page#494

Open
ArshLabs wants to merge 5 commits intoeth-protocol-fellows:mainfrom
ArshLabs:feat/add-engine-api-page
Open

docs(EL): add Engine API reference page#494
ArshLabs wants to merge 5 commits intoeth-protocol-fellows:mainfrom
ArshLabs:feat/add-engine-api-page

Conversation

@ArshLabs
Copy link

Adds docs/wiki/EL/engine-api.md, a new reference page for the Engine API.

The Engine API is the authenticated interface between the CL and EL introduced at The Merge. It was a gap in the wiki's EL coverage.

What's covered:

  • Port isolation, JWT auth (HS256, alg:none rejection, ±60s replay window)
  • All 9 required eth_ ancillary methods
  • engine_exchangeCapabilities and engine_getClientVersionV1 with full client code registry
  • Core methods: forkchoiceUpdated, newPayload, getPayload (V4)
  • Full payload status matrix including the ACCEPTED vs SYNCING distinction
  • shouldOverrideBuilder as a suggestion, not a command
  • Execution requests (EIP-7685): deposit, withdrawal, consolidation types with fee mechanics and queue limits
  • 12-second slot lifecycle table
  • Optimistic sync and SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY
  • JSON-RPC error code table (-38001 to -38005)
  • Fusaka section (EIP-7594, 7892, 7918, 7825, 7934, 7883, 7823, 7917, 7935)
  • Glamsterdam forward-looking section (EIP-7732 ePBS, EIP-7928 BALs) with active research warning

Verification: All claims checked against ethereum/execution-apis (paris.md, common.md) and EIPs read directly from GitHub.

Files changed:

  • docs/wiki/EL/engine-api.md (new)
  • docs/_sidebar.md (one line added)

Adds a new reference page for the Engine API under the Execution Layer
section. The Engine API is the authenticated JSON-RPC interface between
the CL and EL introduced at The Merge and was a notable gap in the
wiki's EL coverage.

Coverage includes JWT authentication, all 9 required eth_ ancillary
methods, capability negotiation, core methods (forkchoiceUpdated,
newPayload, getPayload), the full payload status matrix, execution
requests from Electra (EIP-7685), the 12-second slot lifecycle,
optimistic sync, error codes, and sections on Fusaka and Glamsterdam.

Technical content verified against ethereum/execution-apis spec
(paris.md, common.md) and relevant EIPs.
@github-actions
Copy link

Hi @ArshLabs,

⚠️ Potential typos found in your pull request:

  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 22):
    1. ❌ filesystem
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 60):
    1. ❌ LH
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 61):
    1. ❌ EJ
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 64):
    1. ❌ TK
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 66):
    1. ❌ Trin
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 133):
    1. ❌ predeploy
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 181):
    1. ❌ hardcoded
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 196):
    1. ❌ Fusaka's
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 44):
    1. ❌ Kolby
  • 📄 ./docs/eps/intro.md (line(s) 45):
    1. ❌ Gunton
  • 📄 ./docs/eps/intro.md (line(s) 45):
    1. ❌ Hagiopan

ℹ️ How to fix this error:

  1. If these are actual typos:

    • Open the files at the specified line numbers and fix them
  2. If these are names or one-off nouns:

    • Wrap them in <name> tags
    • Example: <name>Alex Pereira</name>
    • Use this for people's names or unique terms that appear rarely
  3. If these are valid terms:

    • Add them to wordlist.txt (one word per line)
    • Terms must be plain text without spaces/special chars
    • The list is case-insensitive
  4. If these are code terms:

    • Wrap them in backticks (`) in your markdown

ℹ️ Checking for typos locally

  1. Install aspell for your platform
  2. Navigate to project root and run:
for f in **/*.md ; do echo $f ; aspell --lang=en_US --mode=markdown --home-dir=. --personal=wordlist.txt --ignore-case=true --camel-case --add-sgml-skip nospellcheck list < $f | sort | uniq -c ; done

Learn more about wordlist format

@github-actions
Copy link

Hi @ArshLabs,

⚠️ Potential typos found in your pull request:

  • 📄 ./docs/wiki/pectra-faq.md (line(s) 59,63,65,121,150,152,186,197,199):
    1. ❌ sys
  • 📄 ./docs/wiki/pectra-faq.md (line(s) 59,63,65,121,150,152,186,197,199):
    1. ❌ sys
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 22):
    1. ❌ filesystem
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 196):
    1. ❌ Fusaka's
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 44):
    1. ❌ Kolby
  • 📄 ./docs/eps/intro.md (line(s) 45):
    1. ❌ Gunton
  • 📄 ./docs/eps/intro.md (line(s) 45):
    1. ❌ Hagiopan

ℹ️ How to fix this error:

  1. If these are actual typos:

    • Open the files at the specified line numbers and fix them
  2. If these are names or one-off nouns:

    • Wrap them in <name> tags
    • Example: <name>Alex Pereira</name>
    • Use this for people's names or unique terms that appear rarely
  3. If these are valid terms:

    • Add them to wordlist.txt (one word per line)
    • Terms must be plain text without spaces/special chars
    • The list is case-insensitive
  4. If these are code terms:

    • Wrap them in backticks (`) in your markdown

ℹ️ Checking for typos locally

  1. Install aspell for your platform
  2. Navigate to project root and run:
for f in **/*.md ; do echo $f ; aspell --lang=en_US --mode=markdown --home-dir=. --personal=wordlist.txt --ignore-case=true --camel-case --add-sgml-skip nospellcheck list < $f | sort | uniq -c ; done

Learn more about wordlist format

@ArshLabs ArshLabs force-pushed the feat/add-engine-api-page branch from df2bb95 to af1c0e9 Compare March 22, 2026 20:44
@ArshLabs ArshLabs force-pushed the feat/add-engine-api-page branch from af1c0e9 to c804fed Compare March 22, 2026 20:49
@github-actions
Copy link

Hi @ArshLabs,

⚠️ Potential typos found in your pull request:

  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 60):
    1. ❌ LH
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 61):
    1. ❌ EJ
  • 📄 ./docs/wiki/EL/engine-api.md (line(s) 64):
    1. ❌ TK
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 44):
    1. ❌ Kolby
  • 📄 ./docs/eps/intro.md (line(s) 45):
    1. ❌ Gunton
  • 📄 ./docs/eps/intro.md (line(s) 45):
    1. ❌ Hagiopan

ℹ️ How to fix this error:

  1. If these are actual typos:

    • Open the files at the specified line numbers and fix them
  2. If these are names or one-off nouns:

    • Wrap them in <name> tags
    • Example: <name>Alex Pereira</name>
    • Use this for people's names or unique terms that appear rarely
  3. If these are valid terms:

    • Add them to wordlist.txt (one word per line)
    • Terms must be plain text without spaces/special chars
    • The list is case-insensitive
  4. If these are code terms:

    • Wrap them in backticks (`) in your markdown

ℹ️ Checking for typos locally

  1. Install aspell for your platform
  2. Navigate to project root and run:
for f in **/*.md ; do echo $f ; aspell --lang=en_US --mode=markdown --home-dir=. --personal=wordlist.txt --ignore-case=true --camel-case --add-sgml-skip nospellcheck list < $f | sort | uniq -c ; done

Learn more about wordlist format

@github-actions
Copy link

Hi @ArshLabs,

⚠️ Potential typos found in your pull request:

  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Matan
  • 📄 ./docs/eps/intro.md (line(s) 32,33,34,35,36):
    1. ❌ Prasma
  • 📄 ./docs/eps/intro.md (line(s) 44):
    1. ❌ Kolby
  • 📄 ./docs/eps/intro.md (line(s) 45):
    1. ❌ Gunton
  • 📄 ./docs/eps/intro.md (line(s) 45):
    1. ❌ Hagiopan

ℹ️ How to fix this error:

  1. If these are actual typos:

    • Open the files at the specified line numbers and fix them
  2. If these are names or one-off nouns:

    • Wrap them in <name> tags
    • Example: <name>Alex Pereira</name>
    • Use this for people's names or unique terms that appear rarely
  3. If these are valid terms:

    • Add them to wordlist.txt (one word per line)
    • Terms must be plain text without spaces/special chars
    • The list is case-insensitive
  4. If these are code terms:

    • Wrap them in backticks (`) in your markdown

ℹ️ Checking for typos locally

  1. Install aspell for your platform
  2. Navigate to project root and run:
for f in **/*.md ; do echo $f ; aspell --lang=en_US --mode=markdown --home-dir=. --personal=wordlist.txt --ignore-case=true --camel-case --add-sgml-skip nospellcheck list < $f | sort | uniq -c ; done

Learn more about wordlist format

@ArshLabs ArshLabs marked this pull request as ready for review March 22, 2026 20:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant