---
title: "Verify a settled transfer against the destination chain (not against our database)"
method: GET
path: "/api/outcome/verify/{id}"
tags: ["verification"]
---

# Verify a settled transfer against the destination chain (not against our database)

`GET /api/outcome/verify/{id}`

## Request

- Base URL: `https://api.anygas.xyz/svc`
- URL: `https://api.anygas.xyz/svc/api/outcome/verify/{id}`
- Auth: none declared

Every relay answers "did it work?" by reading its own row and saying yes — a relay that has mis-delivered has a database that still says DONE. This checks the DESTINATION CHAIN: it fetches the payout transaction, decodes its ERC-20 Transfer logs, and reports what actually happened. You supply the post-conditions (`recipient`, `minAmount`) and we tell you whether reality matches. It also cross-checks our own receipt against the chain and will say so, in plain terms, if our books disagree. THREE-VALUED: `verified` | `failed` | `undetermined`. `undetermined` (chain unreachable, tx not yet mined, unknown id) is NOT a pass — collapsing "could not check" into "fine" is how a loss gets reported as a success. The response includes the destination tx hash so you can reproduce the whole result yourself without trusting us. COVERS EVERY RAIL, and is candid about the ones it cannot re-derive: Allbridge, Chainflip, Solana and Tron settlements record completion as an observed BALANCE DELTA rather than a transaction we can fetch and decode, and non-EVM destinations are not reachable via EVM JSON-RPC. Those return `undetermined` with the reason stated — never `verified` on the strength of a database row. For non-EVM destinations it now QUERIES the chain and returns a `balanceObservation` (live balance vs recorded baseline plus delivered amount). That observation is reported alongside the verdict and never replaces it: a balance cannot prove a specific transfer, because tokens are fungible and recipients spend them, so the verdict stays `undetermined`.

## Response `200`

Verdict plus each assertion checked against chain state

- object

## Other responses

- `404`: No settled transfer with that id — verdict undetermined, never verified

---

[API](https://skmtc.dev/anygas/apis/robyn-anygas-api.md) · [All operations](https://skmtc.dev/anygas/apis/robyn-anygas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/anygas/apis/robyn-anygas-api/revisions/9b7498be8304?raw)
