feat: add vibenet skill for EIP-8130 devnet, verified against live behaviour - #149
Open
soheimam wants to merge 3 commits into
Open
feat: add vibenet skill for EIP-8130 devnet, verified against live behaviour#149soheimam wants to merge 3 commits into
soheimam wants to merge 3 commits into
Conversation
… guidance
Verified live against the devnet by building a Next.js app end to end.
Endpoints: API host moved vibes.base.org -> api.vibes.base.org (the bare host
302s to an HTML page, which viem reports as "Unrecognized token '<'"). Add
faucet/status, chain-health and explorer. rpc.vibes.base.org is CORS-enabled,
so the browser proxy is optional rather than required.
Lifecycle: new section covering counterfactual -> deployed. There is no deploy
step; the first transaction creates the account. Sponsored is the shortest path
(no faucet). Read deployment from eth_getCode, never optimistic local state.
Corrections, all reproduced live:
- sendSponsoredCalls resolves with { transactionHash }; the previous text said
the opposite and the declared return type is wrong.
- A bad config sequence is rejected at broadcast, not silently applied. The
real trap is the inverse: a change can apply on a tx reporting status 0x0.
- The end-to-end example imported core viem helpers from the 8130 module,
which does not export them, so it could not compile.
- npm file: installs need --install-links or Turbopack cannot resolve viem.
New gotchas: payer validation lags ~1 block after deploy ("actor is not
bound"); "no backend is currently healthy" means the devnet is halted; a
value-bearing call to a never-funded address reverts.
Collaborator
🟡 Heimdall Review Status
|
Adds vibenet prompt examples alongside the existing ones, plus a worked gasless-onboarding snippet showing the counterfactual-to-deployed flow with an ERC-8168 payer. The snippet was compiled and run live against the devnet (deployed at a zero balance, status 0x1).
youssefea
requested changes
Jul 28, 2026
| - **viem fork**: `github.com/chunter-cb/viem`, branch `feat/eip-8130` | ||
| (API surface: `src/experimental/eip8130/index.ts`; docs: | ||
| `site/pages/experimental/eip8130`) | ||
| - **Deep guide (chaptered)**: `github.com/chunter-cb/eip-8130-web` (`/guide/*`) |
Collaborator
There was a problem hiding this comment.
Broken link. Is this the new right link: https://github.com/base/eip-8130 ?
| build, then depend on the built package (which lives in the fork's `src/`): | ||
|
|
||
| ```bash | ||
| git clone -b feat/eip-8130 https://github.com/chunter-cb/viem viem-fork |
Collaborator
There was a problem hiding this comment.
We should use the official version of Viem that has 8130 access
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds the
vibenetskill for Base's EIP-8130 devnet, and corrects it against live behaviour.Everything here was verified by building a Next.js app end to end against the devnet — creating 8130 accounts, drawing from the faucet, and sending both self-paid and sponsored transactions. Several of the original claims turned out to be wrong in ways that break working code, so this PR fixes them and adds the gotchas that cost real debugging time.
Endpoints (blocking — every hosted URL was dead)
vibes.base.orgnow 302-redirects to thechain.base.org/vibenetHTML page. viem's HTTP transport parses that as JSON and throwsJSON Parse error: Unrecognized token '<', which reads like a code bug rather than a moved URL.The API host is
api.vibes.base.org; paths are unchanged. Also addedfaucet/status,chain-health, and the explorer.rpc.vibes.base.orgservesaccess-control-allow-origin: *, so the browser proxy is now documented as optional rather than required (measured from a real browser origin, not curl).New: account lifecycle
The most common point of confusion, and previously absent: an 8130 account has no deploy step.
newSmartAccount8130derives a CREATE2 address locally with zero RPC; the account is created as a side effect of its first transaction. Adds a lifecycle section covering both routes (sponsored needs no funding and is the shortest path), how to check deployment viaeth_getCode, and why deployment state must be read from chain rather than tracked optimistically — it decides whether the next tx carriescreateChange.Corrections, each reproduced live
sendSponsoredCallsresolves with{ transactionHash }. The previous text said emphatically not to destructure it. Following it feeds an object intowaitForTransactionReceipt8130and fails withinvalid type: map, expected 32 bytes. The declared return type is also wrong, so the call needs a cast either way.status: success". Measured: a stale or future sequence failseth_sendRawTransactionwithEIP-8130 validation failed: config change sequence mismatchand never lands. The real trap is the inverse — a config change can apply on a transaction reportingstatus: 0x0. Account changes are not atomic with the calls they ride along with, in either direction.createPublicClient,http,parseEther, andtoHexfromviem/experimental/eip8130, which exports none of them.npm installof the fork needs--install-links. Without it npm symlinks outside the project root and Turbopack fails withModule not found: Can't resolve 'viem'for a package that is plainly present (tscresolves it fine). The install section now leads with the path that works, instead of abun addthat yields an unbuilt monorepo.New gotchas
actor is not bound. Retry across the lag.no backend is currently healthy to serve trafficmeans the devnet is halted, not that your code is wrong. Reads keep answering from the last block while sends fail, which disguises it.chain-healthis the diagnostic.Type of change
Affected skill(s)
vibenetPlugin checklist
Not a Base MCP plugin, so the spec/manifest and contribution-scope items don't apply. Endpoints were tested live against the devnet.
Verification
Related issues
🤖 Generated with Claude Code
https://claude.ai/code/session_01BHVyDbPh8A6ySYL7Q7HtnG