This repository contains the public SDKs, examples, and supporting components for integrating GOAT Flow x402 payments and its current MPP adapter on GOAT Network.
The current public merchant path is DIRECT:
- the payer transfers an ERC-20 token to the merchant's configured receiving address;
- GOAT Flow software creates and tracks the order record; and
- the merchant confirms fulfillment from server-side order status or webhooks.
For the smallest integration, use a merchant-configured QuickPay product with the hosted checkout. For a custom wallet and order UI, combine the browser SDK with a server SDK so API credentials remain on the backend.
| Need | Start here |
|---|---|
| Hosted DIRECT checkout | docs/goat-flow-checkout.md and goatflow-checkout |
| Custom wallet/order UI | goatflow-sdk plus goatflow-sdk-server or the Go server SDK |
| Agent or CLI payment | goatflow-quickpay |
| Merchant onboarding | docs/goat-flow-onboarding-guide.md |
| Merchant operations | docs/merchant-guide.md |
Hosted checkout and QuickPay identify a product by merchant and product key. Price, accepted tokens, receiving addresses, and other payment configuration remain server-authoritative.
The repository also contains components that are not required for the public DIRECT merchant flow:
MerchantCallback.solis a reference UUPS receiver for an optional, operator-provisioned callback transfer flow. ItswithCalldataself-call has no selector allowlist; review the security model.TopupCallback.solis dedicated to the internaltopup-service; it is not a general merchant contract.USDC.solandUSDT.solare configurable test tokens, not production token deployments.- MPP is an independent open protocol, not a GOAT Flow protocol. The MPP clients and middleware in this repository implement GOAT Flow's current JSON-endpoint and signed-receipt profile, require an enabled Core environment, and have no checked-in interoperability test with official MPP SDKs.
- The demo contains config-gated advanced and MPP examples in addition to its default DIRECT checkout path.
Do not deploy a callback contract merely to use DIRECT checkout.
| Module | Purpose | Distribution status |
|---|---|---|
goatflow-checkout |
Framework-free hosted-checkout browser SDK | Release-managed npm package |
goatflow-sdk |
EVM buyer-wallet transfer and GOAT Flow MPP-profile client primitives | Release-managed npm package |
goatflow-sdk-server |
HMAC-authenticated TypeScript server SDK | Release-managed npm package |
github.com/goatnetwork/goatflow-sdk-server |
HMAC-authenticated Go server SDK | Go module source |
goatflow-quickpay |
Manifest-driven payer/agent library and CLI | Release-managed npm package |
@goatnetwork/mpp-middleware |
Express/Fastify verification for the GOAT Flow MPP receipt extension | Source package; not in the npm release runbook |
github.com/goatnetwork/goatflow-mpp-middleware-go |
Go HTTP verification for the GOAT Flow MPP receipt extension | Go module source |
goatx402-contract |
Optional/internal callbacks and local test tokens | Foundry project |
goatx402-demo |
DIRECT checkout plus optional advanced and MPP examples | Private local demo |
The npm release procedure covers exactly the four packages marked
"Release-managed npm package"; see RELEASING.md.
Runtime chain and token availability is configuration-driven. A merchant should use the chains and tokens returned by the merchant API or shown in the Merchant Portal rather than relying on a hard-coded repository list.
The operator-supplied mainnet documentation baseline, reviewed July 23, 2026, is listed below. It is not encoded as one authoritative matrix in this repository; runtime API and portal configuration remain controlling.
The separate GOAT Network x402 overview
may also list Polygon (137) and Avalanche (43114). They are intentionally
excluded from this GOAT Flow operator baseline until enabled by the active
deployment. Do not infer GOAT Flow availability from the protocol overview
alone.
| Chain | Chain ID | Explorer |
|---|---|---|
| GOAT Network | 2345 |
explorer.goat.network |
| Ethereum | 1 |
etherscan.io |
| BSC | 56 |
bscscan.com |
| Arbitrum | 42161 |
arbiscan.io |
| Optimism | 10 |
optimistic.etherscan.io |
| Base | 8453 |
basescan.org |
| Berachain | 80094 |
berascan.com |
| X Layer | 196 |
X Layer Explorer |
| Metis | 1088 |
andromeda-explorer.metis.io |
| Tempo | 4217 |
explore.tempo.xyz |
This table is a documentation baseline, not a per-merchant entitlement. Confirm the enabled chain/token pairs and receiving addresses in the target environment before integration or launch.
For DIRECT, each enabled (chain, token) needs a valid merchant receiving
address and the deployment's associated service-fee/token configuration. Testnet aliases
inside goatx402-contract/foundry.toml are development conveniences and do not
describe the public production matrix.
Use docs/README.md as the documentation hub.
Quick references:
- Developer Quick Start - concise integration path.
- API Reference - Core API and HMAC authentication.
docs/goat-flow-checkout.md- hosted checkout.goatx402-demo/README.md- runnable demo modes.goatx402-contract/README.md- contract scope, tests, and deployment tooling.
The complete Mainnet and Testnet3 service-origin map is maintained in
docs/README.md. The production API base
URL is https://flow-api.goat.network.
No single repository-wide license has been declared. The four release-managed
npm packages each include their own MIT LICENSE file. Other directories may
carry package-level license metadata; review the relevant module before reuse
or redistribution.