# SignalHarness Crosschain Transaction Normalizer

> SignalHarness Crosschain Transaction Normalizer is a paid API for AI agents from signalharness.ai, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-15).

Normalizes and unifies transaction records across multiple blockchain networks (Solana, Base, Polygon) into a consistent format from caller-supplied data

## Facts

- Endpoint: POST https://signalharness.ai/api/agent/services/crosschain_transaction_normalize/invoke
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/signalharness-crosschain-transaction-normalizer-4f3bf31b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zYHb-O1fjut2m0EVP9xh3

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 signalharness-crosschain-transaction-normalizer-4f3bf31b -d '<json body>'
```

Example prompt: I have transaction records from Solana, Base, and Polygon that I need unified into one consistent format — here's the JSON with the raw transaction data for s1 on Solana, b1 on Base, and p1 on Polygon, can you normalize them all into a standard crosschain schema?

## When to prefer this

Choose this endpoint when you have raw transaction records from multiple blockchain networks (Solana, Base, Polygon) that need to be unified into a single consistent schema for downstream analytics, auditing, or display. It is best suited for agent pipelines that have already retrieved transaction data and need normalization without on-chain lookups. Avoid it if you need live transaction fetching, authentication, or validation against actual chain state.

## Known failure modes

- Invalid or malformed request_json returns an error — input must be valid JSON string
- Unsupported blockchain networks not in {solana, base, polygon} may result in unrecognized chain warnings or omitted records
- Fields present in source transactions but not mappable to the common schema are listed under unsupported_fields rather than silently dropped
- Service does not fetch or validate transactions on-chain — results depend entirely on the accuracy of caller-supplied data
- Oversized inputs exceeding 65536 characters will be rejected

## How this service works

Explore 330 pay-per-call x402 API services and 27 agent-native digital products, with Base USDC pricing, secure Polar checkout, and free discovery.

## Output

Returns a structured analysis_json containing normalized transaction records with chain labels, original IDs, sequential indices, and supply status for each record. Also includes a list of any unsupported fields per transaction, the set of chains processed, warnings (e.g. that the service does not fetch or authenticate transactions), and an evidence_scope indicating that results are based purely on caller-supplied data.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "request_json": {
   "type": "string",
   "maxLength": 65536,
   "minLength": 2
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "replay": false,
  "result": {
   "warnings": [
    "Does not fetch or authenticate transactions."
   ],
   "service_id": "crosschain_transaction_normalize",
   "analysis_json": "{\"chains\":[\"base\",\"polygon\",\"solana\"],\"evidence_only\":true,\"records\":[{\"chain\":\"solana\",\"id\":\"s1\",\"index\":0,\"status\":\"supplied\"},{\"chain\":\"base\",\"id\":\"b1\",\"index\":1,\"status\":\"supplied\"},{\"chain\":\"polygon\",\"id\":\"p1\",\"index\":2,\"status\":\"supplied\"}],\"unsupported_fields\":[{\"fields\":[],\"index\":0},{\"fields\":[],\"index\":1},{\"fields\":[],\"index\":2}]}",
   "evidence_scope": "caller_supplied_data",
   "analyzed_network": "solana_base_polygon"
  },
  "status": "succeeded",
  "receipt": {
   "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "usage": [],
   "status": "succeeded",
   "network": "eip155:8453",
   "artifacts": [],
   "endedAtMs": 0,
   "latencyMs": 0,
   "paymentId": "example-payment",
   "receiptId": "example-receipt",
   "requestId": "example-request",
   "serviceId": "crosschain_transaction_normalize",
   "executionId": "example-execution",
   "startedAtMs": 0,
   "amountAtomic": "20000",
   "resultSha256": "be5c322eb09f877283d5a3465270d4e27a57121dbfbc5cd5693ad1eff007a1c4",
   "serviceVersion": "1.0.0",
   "settlementReference": "0x0000000000000000000000000000000000000000000000000000000000000000"
  },
  "artifacts": [],
  "requestId": "example-request",
  "executionId": "example-execution"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/signalharness-crosschain-transaction-normalizer-4f3bf31b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from signalharness.ai](https://www.zero.xyz/host/signalharness.ai/llms.txt)
