# TradeRails Deterministic trade & logistics primitives for commerce agents. USDC on Base via x402, no keys, no signup. Every paid response is Ed25519-signed (compact JWS) and re-verifiable offline against /.well-known/signing-key.json. Pure public-spec math (GS1 General Specifications, ISO 6346, IMO): no upstream cost, nothing goes stale, no LLM in the serving path — exactly the checks language models get wrong. ## Endpoints - GET /v1/gtin/validate?code= ($0.004) — validate GTIN-8/12/13/14, UPC-A, EAN-13: check digit, format, GTIN-14, indicator. - GET /v1/gtin/checkdigit?body= ($0.004) — compute the GS1 check digit for a body missing it. - GET /v1/gtin/prefix?code= ($0.004) — GS1 Member Organisation for a prefix (NOT country of origin). - GET /v1/sscc/validate?code= ($0.004) — SSCC-18 logistics-unit code. - GET /v1/container/validate?code= ($0.004) — ISO 6346 shipping container number (e.g. CSQU3054383). - GET /v1/imo/validate?code= ($0.004) — IMO ship identification number. - GET /v1/gs1/decode?data= ($0.006) — decode GS1 element string / GS1-128 (AIs: GTIN, batch, expiry, serial, weight). Human "(01)...(17)..." or raw FNC1. - GET /v1/hs/classify?q= ($0.02) — HS-code triage: ranked candidate headings + official text + GRI note. Informational, not a customs ruling. ## Discovery - OpenAPI: /openapi.json - x402: /.well-known/x402.json - Signing key: /.well-known/signing-key.json