Skip to content

chore: retire the @sei-js x402 fork packages - #1

Open
alexander-sei wants to merge 1 commit into
mainfrom
chore/retire-sei-x402-packages
Open

chore: retire the @sei-js x402 fork packages#1
alexander-sei wants to merge 1 commit into
mainfrom
chore/retire-sei-x402-packages

Conversation

@alexander-sei

@alexander-sei alexander-sei commented Aug 24, 2026

Copy link
Copy Markdown

Summary

Sei is now supported natively in the upstream x402 SDK, so this fork has no remaining purpose. x402-foundation/x402#3227 landed the Sei default stablecoins upstream in the v2 line, and the v1 legacy line already carried them.

This retires all seven @sei-js/* x402 packages and points users at the upstream v2 @x402/* packages.

Why this is a correctness fix, not just housekeeping

The fork defaults Sei mainnet (chain 1329) to an IBC-bridged USDC that does not implement EIP-3009. Since the exact scheme settles via transferWithAuthorization, payments cannot settle against that asset. The code has carried a TODO about this since it was written:

"1329": {
  // This USDC is an IBC Bridged one and does not support EIP3009
  // TODO: Substitute with a native USDC when available
  usdcAddress: "0x3894085Ef7Ff0f0aeDf52E2A2704928d1Ec074F1",

Upstream uses native USDC 0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392 (mainnet) and 0x4fCF1784B31630811181f670Aea7A7bEF803eaED (testnet), both of which do implement EIP-3009.

What changed

  • MIGRATION.md mapping every package to its v2 replacement, with before/after code for the four breaking changes users will hit: CAIP-2 network identifiers ("sei" becomes "eip155:1329"), the restructured paymentMiddleware plus x402ResourceServer setup, the new client wrapper config shape, and the USDC address swap.
  • Deprecation banners on the root README and all seven package READMEs.
  • private: true on all seven packages, so npm publish refuses outright.
  • Release automation disabled. release.yml no longer triggers on push to main (it previously auto-published on any change under typescript/**), and all eight release/publish workflows now fail fast with an explanatory error.
  • scripts/deprecate-sei-x402-packages.sh to apply the npm deprecations, supporting DRY_RUN=1.

Package mapping

Deprecated Replacement
@sei-js/x402 @x402/core + @x402/evm
@sei-js/x402-fetch @x402/fetch
@sei-js/x402-axios @x402/axios
@sei-js/x402-express @x402/express
@sei-js/x402-hono @x402/hono
@sei-js/x402-next @x402/next
@sei-js/coinbase-x402 @coinbase/x402

Follow-ups after merge

  1. Run ./scripts/deprecate-sei-x402-packages.sh with npm publish rights on the @sei-js scope.
  2. Archive sei-protocol/x402 and sei-protocol/sei-x402-obsolete.

Test plan

  • All eight workflow YAML files parse, carry no automatic triggers, and have the refusal guard as their first step.
  • All eight edited JSON files parse and the seven packages report private: true.
  • npm publish --dry-run reports Skipping workspace @sei-js/x402-fetch, marked as private.
  • DRY_RUN=1 ./scripts/deprecate-sei-x402-packages.sh prints the expected message for all seven packages.

Notes

Scope check: the @sei-js npm scope has 12 packages, but only these seven are x402-related. create-sei, mcp-server, precompiles, registry, and sei-global-wallet are actively maintained and untouched. The python/, go/, and java/ trees in this repo contain no Sei-specific code and were never customised.

Made with Cursor

Made with Cursor

Tracking

PLT-1062, a follow-up to PLT-1046 which tracked the upstream Sei default stablecoin work in x402-foundation/x402#3227.

Sei is now supported natively in the upstream x402 SDK, so this fork has no
remaining purpose. Upstream also resolves a correctness problem this fork
carries: it defaults Sei mainnet to an IBC-bridged USDC with no EIP-3009
support, which is what the exact scheme relies on to settle.

Adds MIGRATION.md mapping all seven packages to their v2 @x402/* replacements,
marks each package private and disables the release automation so nothing can
republish, and adds a script to deprecate the packages on npm.

Co-authored-by: Cursor <cursoragent@cursor.com>
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