TradeRails

Deterministic trade & logistics primitives for commerce agents.

USDC on Base · x402no keys · no signupEd25519-signedzero upstream costno LLM in the path

Language models confidently invent GTIN check digits, mangle GS1 barcode fields, and guess HS codes. TradeRails doesn't guess — every answer is pure public-spec math (GS1 General Specifications, ISO 6346, IMO), re-verifiable offline against a signed key. Agents pay per call; the same input always returns the same bytes.

Endpoints

GET /v1/gtin/validate?code=
Validate GTIN-8/12/13/14, UPC-A, EAN-13 — check digit, format, GTIN-14, packaging indicator.
$0.004
GET /v1/gtin/prefix?code=
GS1 Member Organisation for a prefix. (Numbering org — not country of origin.)
$0.004
GET /v1/sscc/validate?code=
SSCC-18 logistics-unit serial shipping container code.
$0.004
GET /v1/container/validate?code=
ISO 6346 shipping container number — owner, category, serial, check digit.
$0.004
GET /v1/imo/validate?code=
IMO ship identification number check digit.
$0.004
GET /v1/gs1/decode?data=
Decode a GS1 element string / GS1-128 (GTIN, batch, expiry, serial, weight). Human (01)…(17)… or raw FNC1.
$0.006
GET /v1/hs/classify?q=
HS-code triage: ranked candidate headings + official text + GRI note. Informational, not a customs ruling.
$0.02

Every paid response carries an _attestation (Ed25519 compact JWS). Verify it offline against /.well-known/signing-key.json — proof the answer came from TradeRails and wasn't altered.

For agents

llms.txt · openapi.json · x402 discovery · signing key