Releases & notable changes
RPP402 follows semver for the wire format: additive fields are minor bumps, anything a client must change for is a major bump. Packages publish to npm under the @rpp402 scope.
- UnreleasedunreleasedIn progress
The one piece of v1 still being finished: the onchain settlement contracts behind RPP402-005. First implementation is in; audit and deployment remain, so nothing is deployed yet.
Added- @rpp402/contracts - a first, unaudited implementation of the RPP402-005 settlement contract on Robinhood Chain (chainId 4663): Settlement.sol settles a Commerce Session's legs atomically and non-custodially (value moves payer to seller directly), with two authorization paths - gasless EIP-3009 for USDG and payer-approved transferFrom for Robinhood stock tokens (standard ERC-20). Compiles and passes its test suite.
- The tokenized-stock settlement path is implemented: an agent can settle in tokenized real-world assets (Robinhood stock tokens) held in an Agentic Account, not just stablecoins. Agentic Account delegation stays off-chain (Robinhood Trading MCP), so settlement simply moves standard ERC-20 value.
Planned- Security audit of the settlement contract, then testnet integration (SDK -> facilitator -> contract -> receipt) and mainnet deployment.
- v0.1.3pre-releaseMaintenance
A small maintenance release - build reliability and minor fixes. No API or wire-format changes; upgrading from 0.1.2 is drop-in.
Fixed- Package builds are now deterministic from a clean install: @rpp402/protocol always builds before the packages that depend on it, fixing an intermittent type-declaration error in fresh CI environments.
- Minor packaging and documentation fixes across the published packages.
- v0.1.2pre-releasePackaging fix
A packaging release that makes @rpp402/sdk and @rpp402/registry installable and usable from any project - not just inside the monorepo. No wire-format changes. Supersedes 0.1.0 and 0.1.1, which had broken package metadata; install 0.1.2 or later.
Fixed- @rpp402/sdk and @rpp402/registry no longer publish an unresolved "workspace:" dependency on @rpp402/protocol - it now resolves to a real ^0.1.2 range, so `npm install` no longer fails with EUNSUPPORTEDPROTOCOL.
- Packages point "main"/"types"/"exports" at compiled JavaScript and .d.ts declarations instead of raw TypeScript source, so they work under plain Node, tsc, and any bundler - not only TS-aware toolchains.
Changed- Every package now publishes dual ESM + CommonJS builds with a proper "exports" map, "main"/"module"/"types" fields, source maps, and a bundled LICENSE.
- @rpp402/sdk hardens its network layer: a default request timeout, and network, timeout, malformed-JSON, and non-JSON error responses all surface as a typed Rpp402Error instead of a raw fetch failure.
- discover() accepts a bare domain, an origin, or a full well-known URL and normalizes them identically, rejecting empty or malformed input up front.
Docs- Added a Quickstart to the Introduction - install the SDK and walk one purchase through all six primitives, with copy-paste code verified against the shipped API.
- Each RFC's Reference Implementation now links the published npm packages and names the real SDK methods, replacing internal build-phase and repository-path references.
- Rewrote the package READMEs as focused usage guides, and version labels across the site now read from the packages themselves so they can't drift.
- v0.1.0pre-releasePublished on npm
The first public cut of RPP402 - the six-primitive protocol, the SDK and CLI, and the reference tools, live on npm under @rpp402.
Added- RPP402-000 through RPP402-006 - the Introduction plus the six v1 primitives: Discovery, Quote, Commerce Session, Payment Intent, Settlement, Receipt.
- @rpp402/protocol - JSON Schemas and TypeScript types, the wire-format source of truth.
- @rpp402/sdk - one call per primitive, every response validated against the schemas at runtime.
- @rpp402/cli - init, dev, doctor, inspect, simulate, receipts verify, registry, publish.
- Registry Explorer, live Playground, and runnable Examples - all driving the real SDK, no canned data.
