Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
719 commits
Select commit Hold shift + click to select a range
3662a35
Update docs/sdk-features.md (#1848)
mintlify[bot] Mar 30, 2026
c6fa51b
Add net/http support to Go SDK docs (#1782)
mintlify[bot] Mar 30, 2026
8c80edd
feat: add Polygon mainnet (chain ID 137) default asset support (#1791)
vijaygopalbalasa Mar 30, 2026
dea5c27
fix(mcp): preserve structuredContent in payment wrapper result (#1834)
tenequm Mar 30, 2026
8cf3fca
feat: export hook types (#1811)
kevzzsk Mar 30, 2026
c0e3969
Fix HTTPFacilitatorClient not following 308 redirects (#1813)
ayushozha Mar 30, 2026
c76b21d
test(python): add test coverage for MCP server_sync module (#1733)
Bortlesboat Mar 30, 2026
9f52f9c
Added USDC for arbOne and ArbSepolia (#1877)
EmreDincoglu Mar 30, 2026
ad2658a
fix: evm contract deploys (#1880)
CarsonRoscoe Mar 31, 2026
f6baf26
Add Extensions field to Go SettleResponse and VerifyResponse for pari…
javierpmateos Mar 31, 2026
bff876d
feat(evm): add Stable testnet (chain ID 2201) network support (#1786)
paperCPU Mar 31, 2026
5c3e60b
docs: add initial x402 foundation charter (#1911)
CarsonRoscoe Apr 2, 2026
98bcb65
fix: settlement overrides for upto in typescript sdk (#1913)
CarsonRoscoe Apr 2, 2026
2250cae
feat: refactor coinbase/x402 references to x402-foundation/x402 (#1912)
CarsonRoscoe Apr 2, 2026
dd4eb58
chore: version typescript, python and go packages (#1915)
CarsonRoscoe Apr 2, 2026
536b92e
feat: updated pypi workflow to use trusted publishing (#1916)
CarsonRoscoe Apr 2, 2026
af01f26
docs(bazaar): clarify EXTENSION-RESPONSES header applies to verify an…
ethanoroshiba Apr 6, 2026
1392834
feat: add self-facilitation example (#1942)
ethanoroshiba Apr 6, 2026
81dba64
feat: added upto to docs (#1961)
CarsonRoscoe Apr 8, 2026
5033781
feat: add upto readme and client examples (#1963)
CarsonRoscoe Apr 8, 2026
a4e4911
chore(extensions): migrate to @signinwithethereum/siwe (#1917)
caveman-eth Apr 9, 2026
cde9151
feat(specs): add Keeta exact scheme (#1575)
sc4l3r Apr 10, 2026
5df77ca
Add Echo framework documentation (#1783)
mintlify[bot] Apr 10, 2026
cdf3a76
improve defaultAsset docs (#1983)
phdargen Apr 10, 2026
5ab912d
feat(bazaar): add MCP resource type support to Go SDK (#1967)
avidreder Apr 10, 2026
a51c83c
Ecosystem page changes (#1992)
Must-be-Ash Apr 10, 2026
a25800e
feat(avm): Add Algorand (AVM) blockchain exact spec implementation an…
emg110 Apr 10, 2026
84a4bce
fix(evm): restore Mezo Testnet default asset dropped in v2.9.0 refact…
ryanRfox Apr 11, 2026
b123f39
docs(examples): clarify facilitator signer roles (#1937)
Bortlesboat Apr 11, 2026
37b8347
fix(paywall): read token name from payment requirements instead of ha…
ryanRfox Apr 11, 2026
ea0768c
docs(evm): complete default-asset chain list in Go EVM mechanism READ…
ryanRfox Apr 11, 2026
74a9e8e
docs(sellers): replace legacy Go import path in Echo example (#2009)
vikions Apr 12, 2026
2fda851
Add Ultravioleta DAO facilitator to ecosystem directory (#1780)
0xultravioleta Apr 13, 2026
9424291
chore(typescript): bump viem to 2.47.12 across all packages (#2013)
ryanRfox Apr 13, 2026
077b294
feat(svm): implement extra.memo support for exact scheme (#1688)
tenequm Apr 13, 2026
f420044
chore: version typescript packages (#2019)
phdargen Apr 13, 2026
db164fe
chore: version python package (#2020)
phdargen Apr 13, 2026
1059e86
chore(go): release v2.9.0 (#2021)
phdargen Apr 13, 2026
11206b0
Add Algorand (AVM) support to documentation (#1993)
mintlify[bot] Apr 13, 2026
b1176d3
remove legacy examples (#1356)
phdargen Apr 14, 2026
3b98333
Feat/add polygon facilitator (#2031)
AkshatGada Apr 15, 2026
006a1b2
add upto facilitator examples (#2028)
phdargen Apr 15, 2026
f78b268
remove legacy examples (#2036)
phdargen Apr 15, 2026
2a690c7
feat: add batch-settlement payment scheme and Cloudflare network spec…
CameronWhiteside Apr 15, 2026
c6391b1
feat: updated legacy npm packages to deploy via trusted publishing (#…
CarsonRoscoe Apr 16, 2026
c925593
docs: add AI-assisted contributions guidelines and sample agent promp…
notorious-d-e-v Apr 16, 2026
c284d0d
feat: upto evm python (#2023)
CarsonRoscoe Apr 16, 2026
a862793
Update docs/sdk-features.md (#2052)
mintlify[bot] Apr 17, 2026
875cf21
patch avm/fastify (#2041)
phdargen Apr 17, 2026
dc04108
fix: scientific notation price conversion bug (#2053)
CarsonRoscoe Apr 17, 2026
6991456
Map simulation and settlement failures to more detailed errors (#2062)
ethanoroshiba Apr 17, 2026
b7db1d1
chore: version python package (#2064)
CarsonRoscoe Apr 17, 2026
d298e14
add python upto to docs (#2065)
ethanoroshiba Apr 20, 2026
72bca66
SVM スキームの統合テスト placeholder を実テストに置換 (#1931)
natsukingly Apr 21, 2026
5543700
docs: add Documentation Checklist + surface chain-contribution flow (…
ryanRfox Apr 21, 2026
a9a7621
feat: add Quicknode to adopted-by scroller (#2055)
Sahilsen Apr 21, 2026
375f3f2
fix(go): implement SupportedCache Clear (#2072)
viktorcrypt Apr 21, 2026
09c9594
docs: create `README.md` under `typescript/` to showcase list of avai…
CJ42 Apr 21, 2026
2224f1c
feat: add openpayment (#1676)
vittominacori Apr 22, 2026
71a223d
feat: add MCP Bazaar discovery support across TypeScript, Python, and…
ethanoroshiba Apr 22, 2026
4840c8d
Cardano x402 Protocol Specification (#1093)
fabianbormann Apr 23, 2026
85f6123
Update docs/sdk-features.md (#2105)
mintlify[bot] Apr 23, 2026
0a358c3
feat(site): make x402.org agent-ready (#2113)
Must-be-Ash Apr 24, 2026
a051f48
allow ResourceServerExtension to assign x402ResourceServer hooks dire…
CarsonRoscoe Apr 24, 2026
ba1a65a
Document ResourceServerExtension hooks property (#2114)
mintlify[bot] Apr 24, 2026
bd6d7d4
feat(hedera): add initial @x402/hedera package (#1360)
piotrswierzy Apr 24, 2026
05f0e04
feat: add auth-hints extension to streamline scheme-level authenticat…
alftom Apr 24, 2026
60d467d
fix: use dynamic decimals in getDisplayAmount instead of hardcoded US…
natsukingly Apr 26, 2026
9b99acd
refactor: deduplicate checkIfBazaarNeeded across HTTP packages (#1925)
natsukingly Apr 26, 2026
032295b
fix(paywall): use dynamic token decimals instead of hardcoding 6 (#1980)
ryanRfox Apr 26, 2026
4feebcf
fix(site): improve x402 discoverability for scanner (#2128)
Must-be-Ash Apr 26, 2026
484030b
chore(paywall): regenerate bundle + add recurrence guard (#2054)
ryanRfox Apr 26, 2026
ce4748d
chore: version typescript packages (#2148)
phdargen Apr 27, 2026
af26d09
chore: version python package (#2149)
phdargen Apr 27, 2026
bed58c7
chore(go): release v2.10.0 (#2150)
phdargen Apr 27, 2026
582a3d1
feat(site): add x402 demo API endpoint for scanner discoverability (#…
Must-be-Ash Apr 28, 2026
e048247
Add codeowners per-network (#2082)
erikreppel-cb Apr 29, 2026
7ec7815
feat(bazaar): update WithBazaar SDK wrappers with search, unified aut…
ethanoroshiba Apr 29, 2026
01abe6c
specs(exact): propose TON exact scheme for x402 v2 (spec-only) (#1455)
ohld May 1, 2026
08e7568
feat(site): redesign hero section and update navigation CTAs (#2165)
margaretsommers May 1, 2026
78f0519
fix(site): remove x402 demo endpoint (#2172)
Must-be-Ash May 2, 2026
1e0434b
docs: add builder_code.md spec (#2050)
0xClouds May 4, 2026
45d7d19
Batch-settlement TS sdk (#2061)
phdargen May 4, 2026
12708ef
feat: improved aws lambda examples documentation (#2192)
CarsonRoscoe May 4, 2026
e01f40f
fix: documentation (#2194)
CarsonRoscoe May 5, 2026
a0f444c
feat: added cdk to example (#2197)
CarsonRoscoe May 5, 2026
c763d05
Batch-settlement scheme specification for EVM (#2051)
phdargen May 5, 2026
608034f
feat: add service metadata on resource to all 3 SDKs (#2200)
aayushijain21 May 6, 2026
f33cffb
Update docs/extensions/bazaar.mdx (#2209)
mintlify[bot] May 7, 2026
dc638f2
Document Hedera network support in x402 (#2121)
mintlify[bot] May 7, 2026
3f1cd58
fix(python): exclude MCP tests from wheel (#2155)
aproskill81 May 7, 2026
e7150b3
feat(evm): add Radius Network and Radius Testnet SBC as default stabl…
TJ-Frederick May 7, 2026
ebb5638
feat(ecosystem): add XRPL x402 facilitator (#2190)
aristotle-satoshi May 7, 2026
d235050
feat: log bazaar `EXTENSION-RESPONSES` header in resource servers (#2…
ethanoroshiba May 7, 2026
2b7914c
feat: batch settlement go sdk (#2230)
CarsonRoscoe May 8, 2026
e0ba324
feat: add TVM exact-payment mechanism to Python SDK (#1944)
ArkadiyStena May 8, 2026
ee7c156
chore: bump viem floor to ^2.48.11 across monorepo + refresh lockfile…
ryanRfox May 8, 2026
b0d5e48
updated docs with new hook primitives (#2247)
phdargen May 9, 2026
cd87caa
docs: fix indentation in x402 v2 spec examples (#2260)
morinokami May 10, 2026
2e54665
Docs/batch settlement and cleanup (#2261)
Jnix2007 May 11, 2026
153819d
Update scheme docs (#2264)
phdargen May 11, 2026
3df5223
update-bazaar-docs (#2263)
phdargen May 11, 2026
1bb718f
chore(go): release v2.11.0 (#2267)
phdargen May 11, 2026
1a3730a
chore: version typescript packages (#2268)
phdargen May 11, 2026
973de09
Add Writing hub and batch settlement blog post (#2269)
Jnix2007 May 12, 2026
81e611c
Revert "Add Writing hub and batch settlement blog post (#2269)" (#2270)
avidreder May 12, 2026
7c239c4
Add batch-settlement blog (#2277)
phdargen May 12, 2026
2081a41
Create TSC.md (#2253)
erikreppel-cb May 12, 2026
d93db8c
Update footer to Linux Foundation (#2283)
erikreppel May 12, 2026
850e3ce
Add `authCapture` scheme specification (#1425)
A1igator May 13, 2026
8eee964
fix(python): use named constants for erc20-approval gas fee defaults …
VedantAnand17 May 13, 2026
1c19281
test(paywall): replace placeholder entrypoint test (#2292)
tallyhuhu May 13, 2026
dd6d7e6
Harden workflows (#2287)
phdargen May 13, 2026
a24dc94
chore: version python package (#2293)
phdargen May 13, 2026
9a718b0
Fix py publishing (#2295)
phdargen May 13, 2026
7b3b0a1
docs: fix version mismatch in README installation steps (#2060)
Nihal4777 May 15, 2026
399e70d
docs(spec-exact-evm): clarify extra fields per assetTransferMethod an…
ryanRfox May 15, 2026
114b6b1
feat(evm): add HPP mainnet (chain ID 190415) and HPP Sepolia (chain I…
nolnol3 May 15, 2026
33c4d8b
Update docs/core-concepts/network-and-token-support.mdx (#2311)
mintlify[bot] May 15, 2026
82cd845
Fix: invoke lifecycle hooks in payment payload creation (#2099)
Ocheretovich May 15, 2026
1e5b045
fix: e2e axios client version (#2315)
CarsonRoscoe May 15, 2026
84ffb64
feat: x402BatchSettlement contract (#1950)
CarsonRoscoe May 15, 2026
f3deb60
fix paywall regen for new chains (#2312)
phdargen May 15, 2026
49ea054
Siwx extension hook adapters (#2304)
phdargen May 15, 2026
92f23c2
bump next (#2313)
phdargen May 15, 2026
5fca9f3
add missing mcp hook primitives (#2238)
phdargen May 15, 2026
36b64bc
Document SIWX hook adapters and fix storage interface (#2319)
mintlify[bot] May 15, 2026
9c2e8d2
Document MCP payment lifecycle hooks (#2321)
mintlify[bot] May 15, 2026
abbd40e
Add checks for 0 settle/refund amounts (#2306)
phdargen May 15, 2026
04ad3cc
Updating batch settlement blog authors (#2324)
Jnix2007 May 15, 2026
f5dd40e
Specs: add NEAR v2 exact payment scheme (#1459)
mikedotexe May 16, 2026
e35becf
refactor(paywall): tighten faucet refactor per forensic review + SVM-…
ryanRfox May 16, 2026
031434f
fix(examples/ts): align custom client env vars with .env-local (#2341)
feldmannn May 17, 2026
581e55e
feat: add ADI Chain default asset (#2279)
idea404 May 18, 2026
173e8b7
Update docs/core-concepts/network-and-token-support.mdx (#2351)
mintlify[bot] May 18, 2026
92f06b5
fix(python): check settle_result.success in MCP payment wrappers (#2356)
apmcdermott May 18, 2026
a242149
Add ERC-6492 unwrapping to exact/upto permit2 and batch-settlement (#…
phdargen May 19, 2026
3ba5d2e
Fix filestorage bundling (#2350)
phdargen May 19, 2026
2d45f75
Fix batch-settlement storage import paths (#2380)
mintlify[bot] May 19, 2026
b592f35
Hook parity for python sdk (#2388)
phdargen May 20, 2026
6e3b1ee
Update docs/advanced-concepts/lifecycle-hooks.mdx (#2392)
mintlify[bot] May 20, 2026
1321c39
docs(specs): rename auth-capture spec files (#2391)
avidreder May 20, 2026
74bc15e
add siwx extension to python sdk (#2393)
phdargen May 21, 2026
8f0683b
Document Python SIWX extension support (#2414)
mintlify[bot] May 21, 2026
ad08a9a
fix(ts): preserve encoded path separators in normalizePath (#2372)
apmcdermott May 21, 2026
a805c00
fix(python-legacy): html-safe JSON serialization in paywall script ta…
apmcdermott May 21, 2026
95f2094
fix(ts): replace dynamic fallback paywall with a static template (#2370)
apmcdermott May 21, 2026
25fd1fc
feat(site): update ecosystem page partners and logos (#2415)
margaretsommers May 21, 2026
dccb5dd
feat: python batch settlement (#2402)
CarsonRoscoe May 22, 2026
eff4323
Document Python batch-settlement EVM scheme support (#2430)
mintlify[bot] May 22, 2026
bc7be2f
Py batch settlement fixes (#2431)
phdargen May 22, 2026
47bdf04
feat(mcp): handle McpError(-32042) for MCP payment challenges (#1728)
tenequm May 22, 2026
2db7319
chore: version python package (#2443)
phdargen May 22, 2026
f9aa78e
chore(go): release v2.12.0 (#2445)
phdargen May 22, 2026
c03f1a8
chore: version typescript packages (#2444)
phdargen May 22, 2026
d5421c7
patch @x402/core workspace resolution for hedera sdk (#2461)
phdargen May 25, 2026
8cf020c
docs: document v1→v2 schema declaration change in migration guide (#2…
kenburbary May 26, 2026
c45aab1
fix: respect Retry-After header on 429 responses in facilitator clien…
natsukingly May 26, 2026
9619e83
docs: add MCP payment policy guidance (#2317)
EfeDurmaz16 May 26, 2026
83a8525
fix(python): export MCP client factories (#2330)
EfeDurmaz16 May 26, 2026
d4bdfa7
docs: clarify EVM channel and transfer method semantics (#2325)
EfeDurmaz16 May 26, 2026
b6d5bff
docs(spec): clarify HTTP payment required header (#2320)
EfeDurmaz16 May 26, 2026
b2c48d2
fix(python): preserve FastMCP result metadata (#2328)
EfeDurmaz16 May 26, 2026
5e907d8
docs: clarify payment identifier request binding (#2307)
EfeDurmaz16 May 26, 2026
4a5fd5b
fix(mcp): preserve existing metadata (#2318)
EfeDurmaz16 May 26, 2026
8fb28ce
docs(specs): fix broken link to batch-settlement spec in cloudflare s…
chopmob-cloud May 26, 2026
aba5a65
test(python): add unit tests for sign_eip2612_permit (#2344)
VedantAnand17 May 26, 2026
dd4dd10
Update docs/extensions/payment-identifier.mdx (#2469)
mintlify[bot] May 26, 2026
4ea0e2b
chore(go/http): remove unused extractPayment/createHTTPResponse (#2342)
feldmannn May 26, 2026
6567db1
fix(go): use math/rand/v2 instead of math/rand in SVM facilitator (#1…
br-to May 26, 2026
d031685
feat(site): add docs link to navbar (#2473)
margaretsommers May 26, 2026
ca46404
fix html paywall payment headers (#2419)
fallintoplace May 26, 2026
df95922
developer tools docs (#2474)
phdargen May 26, 2026
a3351bd
fix: Java PaymentFilter raw-URI mismatch (#2475)
CarsonRoscoe May 27, 2026
2cefcc7
fix: add maxValue payment ceiling to withPaymentInterceptor (#2479)
CarsonRoscoe May 27, 2026
3cd6deb
fix: go payment verify result discarded (#2476)
CarsonRoscoe May 27, 2026
bc7638d
feat(python): thread bazaar service metadata from RouteConfig to Reso…
hypeprinter007-stack May 27, 2026
5bc2c72
fix: aptos gas price vulnerability (#2477)
CarsonRoscoe May 27, 2026
588e038
fix: correct microLamports field path in compute price cap check (#2478)
CarsonRoscoe May 27, 2026
3ba526c
feat: solana cache deduplication (#2482)
CarsonRoscoe May 27, 2026
0af31dd
feat: validate bazaar middleware startup (#2481)
CarsonRoscoe May 27, 2026
51f889b
fix: erc-6492 factory call was server driven (#2480)
CarsonRoscoe May 27, 2026
bb21c71
Update Python service metadata docs for RouteConfig (#2490)
mintlify[bot] May 27, 2026
27553c7
feat(svm): add simulation-based smart wallet verification (#1527)
BranchManager69 May 28, 2026
ba2eb68
chore(svm): add changeset for #1527 smart wallet verification (#2505)
BranchManager69 May 28, 2026
be788e0
Bazaar service metadata plumbing (#2496)
phdargen May 29, 2026
087922a
docs(spec): Concordium exact review fixes (#2389)
pavelhbl May 29, 2026
10e59e1
auth-capture client scheme (TypeScript) (#2486)
A1igator May 29, 2026
c0cdc00
chore: version python package (#2514)
phdargen May 29, 2026
cf407e2
Release/typescript 2026 05 29 (#2516)
phdargen May 29, 2026
45d81d4
chore(go): release v2.13.0 (#2515)
phdargen May 29, 2026
af97601
fix(go): add /v2 suffix to module path for Go major version complianc…
ethanoroshiba May 29, 2026
cef9bad
chore(go): release v2.14.0 (#2518)
phdargen May 29, 2026
cd18d3e
fix(evm/batch-settlement): submit settle() with an explicit gas limit…
BranchManager69 Jun 2, 2026
6597224
fix(python): run failure hooks after after-hook errors (#2540)
skyc1e Jun 2, 2026
3a60816
fix(ts): harden wildcard pattern matching (#2541)
skyc1e Jun 2, 2026
61f16be
docs: add integration-test env setup for Python/TypeScript/Go SDKs (#…
mvanhorn Jun 2, 2026
5a4b5f3
Fix Swig smart wallet allowlist program (#2509)
edo-chan Jun 2, 2026
1d79e5b
fix retry (#1332)
phdargen Jun 2, 2026
71db7cc
add svm smart wallet e2e test (#2504)
phdargen Jun 2, 2026
c8c8d48
Update docs/schemes/exact.mdx (#2545)
mintlify[bot] Jun 2, 2026
6acb8fc
Feat: 8021 Schema v2 support for x402 (#2329)
0xClouds Jun 2, 2026
47e1739
Reject partial money strings (#2530)
samsamtrum Jun 3, 2026
bf99a51
fix: preserve v1 path params in discovery (#2508)
nightt5879 Jun 4, 2026
0a16496
feat: Add x402 v1 support to Python/Go MCP modules (#2553)
CarsonRoscoe Jun 5, 2026
c4420b7
feat: reject eoas as assets (#2554)
CarsonRoscoe Jun 5, 2026
4ddba37
Fix settlementOverrides for next (#2556)
phdargen Jun 5, 2026
bfa580e
improve client error surfacing (#2558)
phdargen Jun 5, 2026
8f52962
Update buyer quickstart to new response parsing API (#2560)
mintlify[bot] Jun 5, 2026
b82216b
Add builder-code extension documentation (#2546)
mintlify[bot] Jun 5, 2026
7539e93
Fix extension echo (#2561)
phdargen Jun 6, 2026
134f997
Add workflow checking verified commits (#2576)
phdargen Jun 8, 2026
ce51256
Add scripts + workflow to prepare python sdk releases (#2577)
phdargen Jun 8, 2026
9cca646
Builder-code extension for go SDK (#2575)
phdargen Jun 8, 2026
d454eb9
Document Go SDK support for builder-code extension (#2578)
mintlify[bot] Jun 8, 2026
dc656bb
docs(svm): specify simulation-based smart wallet verification for exa…
notorious-d-e-v Jun 9, 2026
8cdf8c2
Add scripts for releases (#2580)
phdargen Jun 10, 2026
228b1d0
add combined ts releases (#2581)
phdargen Jun 10, 2026
f9c4f60
feat(site): register Hedera testnet on the facilitator (#2589)
piotrswierzy Jun 10, 2026
238fac4
feat(evm): add Mezo mainnet (chain ID 31612) support with mUSD (#2590)
ryanRfox Jun 10, 2026
9a8da9f
fix site + example builds (#2593)
phdargen Jun 10, 2026
6ddce1a
Add Hedera Testnet to x402.org facilitator docs (#2592)
mintlify[bot] Jun 10, 2026
5304005
Add XDC Network mainnet (50) and Apothem testnet (51) USDC default st…
AnilChinchawale Jun 11, 2026
f4c532e
validAfter patch (#2601)
phdargen Jun 11, 2026
2c07e24
Nightly e2e runs (#2600)
phdargen Jun 11, 2026
edc7280
spec(upto): clarify settle-time verification convention for partial s…
aisling404 Jun 12, 2026
3298174
fix: cache Go SVM exact mint metadata (#2456)
wnjoon Jun 12, 2026
1a1ffc9
fix go path (#2611)
phdargen Jun 12, 2026
7a3dd3e
fix e2e run (#2609)
phdargen Jun 12, 2026
ae0bf9b
Add buildercode s array (#2606)
phdargen Jun 12, 2026
5448eab
Update builder-code docs for s array support (#2613)
mintlify[bot] Jun 12, 2026
94d4d73
chore: version python package (#2610)
phdargen Jun 12, 2026
93e6154
chore: version typescript packages (#2617)
phdargen Jun 12, 2026
b32a702
chore(go): release (#2618)
phdargen Jun 12, 2026
5612e4f
fix(py): cache SVM exact mint metadata (#2629)
wnjoon Jun 15, 2026
f5532b8
fix(ts): cache SVM exact mint metadata (#2628)
wnjoon Jun 15, 2026
8f22db3
Validate Retry After delta seconds (#2614)
samsamtrum Jun 15, 2026
391b404
patch py datetime (#2633)
phdargen Jun 15, 2026
6dcf7e2
fix: site typo (#2639)
CarsonRoscoe Jun 16, 2026
318cf5f
docs: clarify mainnet facilitator setup (#2637)
skyc1e Jun 16, 2026
f6a3b71
feat(tvm): add TON mechanism for exact payment scheme (#1583)
ohld Jun 16, 2026
9d849fe
Add contributing skill files (#2643)
phdargen Jun 16, 2026
03f5e7d
add -v to e2e run (#2645)
phdargen Jun 16, 2026
b0d0eb9
feat(keeta): add @x402/keeta TypeScript package (#2579)
sc4l3r Jun 17, 2026
18a6045
Add Keeta network to SDK features table (#2651)
mintlify[bot] Jun 17, 2026
6f4e6a3
tvm/keeta sdk follow ups (#2652)
phdargen Jun 17, 2026
59ac597
patch: account for dynamic extension info fields in client echo valid…
phdargen Jun 17, 2026
7cf21ba
feat: add minting builder codes section to builder-code docs (#2656)
CarsonRoscoe Jun 17, 2026
ef7db67
fix(evm): clarify client signer shape (#2635)
go165 Jun 17, 2026
17bd7e5
Document dynamicInfoFields in extension interface (#2655)
mintlify[bot] Jun 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
91 changes: 91 additions & 0 deletions .agents/skills/contributing/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
name: contributing
description: Guidelines and conventions for contributing to the x402 codebase. Use when preparing a PR to the upstream x402-foundation/x402 repository such as fixing a bug or Issue, implementing a new feature, adding a mechanism/scheme or extension.
---

# Contributing to x402

## Reuse before writing new code

- Before writing anything, check in order whether the standard library (TS: ECMAScript and Node.js built-ins like `node:crypto`; Python: the stdlib; Go: packages like `net/http`, `encoding/json`, `crypto`), a native platform feature, or an already-installed dependency already does it; if so, use it.
- Always reuse shared and core utilities.
- No new dependencies if it can be avoided.

## Keep changes minimal

- Address a single issue per contribution, not multiple.
- Targeted edits, minimal diff, atomic commits.
- No abstractions or boilerplate that were not explicitly requested.
- No edits to legacy/v1 code; it is effectively frozen (security patches only). This includes the paths `typescript/packages/legacy/`, `go/legacy`, `python/legacy` and the `java/` SDK.

## Code style

- Write clean, readable code (e.g. prefer guard clauses over nested conditionals, use descriptive names and small, single-purpose functions).
- Strong typing, avoid any weak types (`any`, `unknown`, and their equivalents in other languages). Research the codebase to find the correct type, reuse existing type definitions rather than redeclaring them and confirm no type errors remain.
- No overly defensive code or silent fallbacks.
- Apply DRY only where it reduces complexity; keep single-use logic inline rather than extracting a helper for it.

## Comments

- Write comments that help a new reader understand the codebase.
- Never narrate in-progress work or describe code being replaced.
- Write onchain - never "on-chain" or "on chain".
- Don't change/remove existing comments, unless strictly needed due to code changes.

## AI-assisted contributions

Follow the repository AI-assisted contribution policy in [CONTRIBUTING.md](../../CONTRIBUTING.md#ai-assisted-contributions). Review all AI-generated output before requesting maintainer review.

## Working on an Issue

- Independently reproduce and verify the Issue first.
- When in doubt, ask clarifying questions on the Issue before writing code.

## Bug fixes

- Add a test that fails before the fix and passes after it.
- Don't write tests for what the type system already guarantees.
- Cover edge cases, not only happy path.

## Commits and PRs

- Verifying (signing) ALL commits is strictly required; maintainers will not check a PR otherwise. See [GitHub: about commit signature verification](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification).
- PR description: short and matching the diff; explain what and why; link relevant issues; state the root cause in one paragraph, citing file and line.
- Justify design decisions where there were ambiguities and discuss the tradeoffs of the approach you picked against the alternatives you considered.

## Per-language

### Per commit: format, lint, build, test

Format, lint, build, and run unit tests before each commit.

```bash
# TypeScript (from typescript/)
pnpm format && pnpm lint && pnpm build && pnpm test

# Go (from go/)
make fmt && make lint && make build && make test

# Python (from python/x402/)
uvx ruff format && uvx ruff check && uv run pytest
```

### Per PR: changelog

Add a changelog fragment for the SDK you changed.

```bash
# TypeScript (from typescript/)
pnpm changeset

# Go (from go/)
make changelog-new

# Python (from python/x402/)
uv run towncrier create --content "Fixed ..." <PR>.bugfix.md
```

## New mechanism or extension

- New payment mechanism / scheme: see [references/new-mechanism.md](references/new-mechanism.md).
- New extension: see [references/new-extension.md](references/new-extension.md).
60 changes: 60 additions & 0 deletions .agents/skills/contributing/references/new-extension.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# New extension implementation

Checklist for adding a new extension. Follow the [general contributing rules](../SKILL.md) as well.

## Spec first

- A spec file must exist. If it does not, write it first.
- The spec must be approved by maintainers (merged into upstream `main`). If it is not, open a PR with the spec only first (`specs/extensions/...`).
- The implementation must follow the spec file exactly.
- The wire formats `PAYMENT-REQUIRED` (in particular the extension field), `PAYMENT-RESPONSE` and facilitator `supported/` output must match the spec strictly. Include only fields actually consumed downstream or required by the extension. Don't add purely informational fields.
- Spec amendments and edits are allowed, but must be well justified.

## Scope

- One language per PR. Never implement the extension in more than one SDK (TS, Python, Go) in a single PR.
- Implement v2 only. Common v1 tells (see the [V1→V2 migration guide](../../../../docs/guides/migration-v1-to-v2.mdx)): `maxAmount` in payment requirements, `X-PAYMENT`/`X-PAYMENT-RESPONSE` headers (v2 uses `PAYMENT-SIGNATURE`/`PAYMENT-RESPONSE`), string network names like `base-sepolia` (v2 uses CAIP-2 like `eip155:84532`) or `x402Version: 1`.

## Code patterns

- Wire extensions with lifecycle hooks via the extension-hooks adapter pattern.
- Reuse core and extension utilities instead of reimplementing them.
- Do NOT modify other packages (core, http, ...). If this is deemed necessary, discuss with maintainers first.

## Tests

### Unit tests

Pure-logic tests that run offline. Add them under **TS** `typescript/packages/extensions/test/`; **Go** `go/extensions/<extension>/`; or **Py** `python/x402/tests/unit/extensions/<extension>/`. Run them and confirm all pass.

```bash
# from typescript/
pnpm --filter @x402/extensions test
# go/
make test
# python/x402/
uv run pytest tests/unit/extensions/
```

### Integration tests

- In-process client/server/facilitator flow tests within the SDK. Requires funded testnet accounts.
- Add them under **TS** `typescript/packages/extensions/test/integrations/`; **Go** `go/extensions/<extension>/`; or **Py** `python/x402/tests/integrations/`. Suites skip when required env vars are missing.
- Run them and confirm all pass.

```bash
# from typescript/
pnpm --filter @x402/extensions test:integration
# go/
make test-integration
# python/x402/
uv run pytest tests/integrations/
```

## Examples

Add server, client, and facilitator examples (as appropriate). Manually confirm a successful payment by running facilitator server and client examples locally.

## Docs

- Add READMEs for the SDK and all examples.
83 changes: 83 additions & 0 deletions .agents/skills/contributing/references/new-mechanism.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# New mechanism implementation

Checklist for adding a new payment mechanism / scheme. Follow the [general contributing rules](../SKILL.md) as well.

## Spec first

- A spec file must exist. If it does not, write it first.
- The spec must be approved by maintainers (merged into upstream `main`). If it is not, open a PR with the spec only first (`specs/schemes/...`).
- The implementation must follow the spec file exactly. Facilitator verification rules are security-critical.
- The wire formats `PAYMENT-REQUIRED` (in particular the `extra` field), `PAYMENT-RESPONSE` and facilitator `supported/` output must match the spec strictly. Include only fields actually consumed downstream or required by the scheme. Don't add purely informational fields.
- Spec amendments and edits are allowed, but must be well justified.

## Scope

- One language per PR. Never implement the mechanism in more than one SDK (TypeScript, Python, Go) in a single PR.
- If a reference implementation already exists in another SDK, cross-check against it; otherwise yours is the reference and the spec is the only source of truth.
- Implement v2 only. Common v1 tells (see the [V1→V2 migration guide](../../../../docs/guides/migration-v1-to-v2.mdx)): `maxAmount` in payment requirements, `X-PAYMENT`/`X-PAYMENT-RESPONSE` headers (v2 uses `PAYMENT-SIGNATURE`/`PAYMENT-RESPONSE`), string network names like `base-sepolia` (v2 uses CAIP-2 like `eip155:84532`) or `x402Version: 1`.

## Code patterns

- Wire schemes with the builder pattern, not `register*` helpers. A new v2-only mechanism registers its scheme under the family wildcard: `client.register("<family>:*", new Exact<Chain>Scheme(...))` (and the same on `x402ResourceServer`). Do NOT implement a `registerExact<Chain>Scheme` helper. Those exist only in the EVM/SVM mechanisms to also register the legacy v1 schemes for backward compat.
- Reuse core utilities instead of reimplementing them. For example, import `convertToTokenAmount`, `numberToDecimalString`, and `parseMoneyString` from `@x402/core/utils` for TS or similar for Go/python SDKs.
- Do NOT modify other packages (core, http, ...). If this is deemed necessary, discuss with maintainers first.

## Tests

### Unit tests

Pure-logic tests that run offline. Add them with comparable coverage to the EVM reference under **TS** `typescript/packages/mechanisms/<chain>/test/unit/`; **Go** `go/mechanisms/<chain>/` or **Py** `python/x402/tests/unit/mechanisms/<chain>/`. Run them and confirm all pass.

```bash
# typescript/
pnpm --filter @x402/<chain> test
# go/
make test
# python/x402/
uv run pytest
```

### Integration tests

- In-process client/server/facilitator flow tests within the SDK that exercise real RPC endpoints and may submit onchain transactions. Requires funded testnet accounts.
- Add them with comparable coverage to the EVM reference under **TS** `typescript/packages/mechanisms/<chain>/test/integrations/` (see `exact-evm.test.ts`); **Go** `go/test/integration/`; **Py** `python/x402/tests/integrations/`. Suites skip when required env vars are missing.
- Run them and confirm all pass.

```bash
# typescript/
pnpm --filter @x402/<chain> test:integration
# go/
make test-integration
# python/x402/
uv run pytest tests/integrations/
```

### E2E tests

- The `e2e/` harness runs every client × server × facilitator combination. Requires funded testnet accounts.
- Register the network signer in the facilitator and all client frameworks.
- Add protected routes for all server frameworks.
- Run them and confirm all pass.

```bash
# from e2e/
pnpm install:all && pnpm test --testnet --min --families=<chain> --versions=2
```

## Examples

- Add network to server, client and facilitator examples under `examples/<sdk>/*/advanced/all_networks`.
- Manually confirm a successful payment by running facilitator, server and client examples locally.

## Docs

- Add READMEs for the SDK and all examples.
- Include link to a testnet faucet and detail all necessecary setup steps (e.g. token association/opt-ins or minimum balance requirements).

## Publishing scripts

Mirror the EVM setup per SDK:

- **TS**: Add `publish_npm_scoped_x402_<chain>.yml` workflow and add package to `publish_npm_scoped_x402_all.yml`.
- **Py**: Add an optional extra in `python/x402/pyproject.toml`; uses existing `publish_pypi_x402.yml`.
- **Go**: no new workflow required; ships with the `go/` module.
5 changes: 5 additions & 0 deletions .gitbook.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
root: ./docs/

structure:
readme: README.md
summary: SUMMARY.md
Loading
Loading