# Crypto Math – Elliptic Curve Parameters & On-Curve Point Validation

> Crypto Math – Elliptic Curve Parameters & On-Curve Point Validation is a paid API for AI agents from crypto-math.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-29).

Returns the SEC 2 public domain parameters (p, n, G, a, b) for secp256k1, P-256, or P-384, and optionally validates whether a given public point lies on the specified curve.

## Facts

- Endpoint: GET https://crypto-math.x402tookit.com/ec-params?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/crypto-math-elliptic-curve-parameters-on-curve-point-validation-16145e9f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_6NOTYACdV0VSGnSXd-pr8

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability crypto-math-elliptic-curve-parameters-on-curve-point-validation-16145e9f
```

Example prompt: Can you look up the SEC 2 domain parameters for secp256k1 — specifically the field prime p, group order n, and generator point G — and also check whether this public key is a valid on-curve point: 04b0bd7e358e2d8f9d70e73e6b1c44b2b1dfe7d9c7a6c4f9e3b2a1d8e5f6c7b9a2?

## When to prefer this

Choose this endpoint when you need authoritative SEC 2 elliptic curve domain parameters for secp256k1, P-256, or P-384, especially when you also want to validate a public point on-curve in the same call. It is a lightweight, deterministic lookup — ideal for cryptographic implementations, key validation pipelines, or educational tooling that needs both the parameters and point arithmetic without running a local crypto library.

## Known failure modes

- Missing required 'curve' query parameter returns an error
- Unrecognised curve name (not secp256k1, secp256r1, or secp384r1) returns an error
- Malformed public key hex (odd length, non-hex characters) returns a parsing error
- Providing x without y (or vice versa) may produce undefined point validation behaviour
- Payment failure or missing x402 payment header returns 402 Payment Required

## How this service works

secp256k1, P-256 and P-384 public parameters (p, n, G) from SEC 2, with an on-curve check of a public point.

## Output

A JSON object containing: the full SEC 2 curve parameters (prime p, group order n, generator point G with x/y in hex and decimal, curve coefficients a and b, OID, aliases, field bit size, cofactor, curve equation string, common use description); and optionally a point sub-object with x, y coordinates, on-curve validity boolean, y-parity, isGenerator flag, and both compressed and uncompressed hex encodings.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "curve"
     ],
     "properties": {
      "x": {
       "type": "string",
       "description": "Point x coordinate, decimal or 0x hex (give with y)"
      },
      "y": {
       "type": "string",
       "description": "Point y coordinate, decimal or 0x hex (give with x)"
      },
      "curve": {
       "type": "string",
       "description": "secp256k1, secp256r1 (P-256) or secp384r1 (P-384)"
      },
      "publicKey": {
       "type": "string",
       "description": "PUBLIC key hex: 04||X||Y uncompressed or 02/03||X compressed; not a private scalar"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "point": {
       "type": [
        "null",
        "object"
       ],
       "properties": {
        "x": {
         "type": [
          "null",
          "string"
         ]
        },
        "y": {
         "type": [
          "null",
          "string"
         ]
        },
        "valid": {
         "type": [
          "boolean",
          "null"
         ]
        },
        "yParity": {
         "type": [
          "null",
          "string"
         ]
        },
        "isGenerator": {
         "type": [
          "boolean",
          "null"
         ]
        },
        "compressedHex": {
         "type": [
          "null",
          "string"
         ]
        },
        "uncompressedHex": {
         "type": [
          "null",
          "string"
         ]
        }
       }
      },
      "params": {
       "type": [
        "null",
        "object"
       ],
       "properties": {
        "a": {
         "type": [
          "null",
          "object"
         ],
         "properties": {
          "hex": {
           "type": [
            "null",
            "string"
           ]
          }
         }
        },
   
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/crypto-math-elliptic-curve-parameters-on-curve-point-validation-16145e9f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from crypto-math.x402tookit.com](https://www.zero.xyz/host/crypto-math.x402tookit.com/llms.txt)
