# HALOWERK netzwerk > HALOWERK netzwerk liefert maschinenlesbare Ergebnisse gegen Zahlung nach x402. > Netz Base Mainnet, Zahlungsmittel USDC, Empfänger 0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E. ## So wird bezahlt 1. Route ohne Zahlungskopf aufrufen. Die Antwort ist 402 und trägt accepts, description und inputSchema. 2. Bedingungen mit einem x402-Client signieren. 3. Aufruf wiederholen, Nachweis im Kopf PAYMENT-SIGNATURE. Eine 402-Antwort kostet nichts und löst keine Arbeit aus. Scheitert die Arbeit, trägt die Antwort charged=false und es wird nicht abgerechnet. ## Endpunkte ### POST /v1/bgp-origin Resolves a prefix to its announcing autonomous systems and puts that answer in context. The current state gives every origin AS seen for the prefix, the number of more specific and less specific prefixes routed alongside it, when the prefix was first and last seen, and the visibility expressed as the share of observers that see it rather than a raw count, because the raw count moves with the size of the measurement network and is not comparable across time. The history part lists the origins observed over the requested window with the periods they were active, and the response states plainly whether the current origin set matches the historical one, has gained an origin, or has changed entirely. A prefix legitimately announced from two ASes is common in anycast and multihoming and is not flagged as an incident; what is flagged is a change, with the dates that bound it. Everything measured comes from the RIPE RIS observers, so a prefix announced only regionally can appear weakly visible or absent here, which is a limit of the measurement and not a statement about the network. - Preis: 0.004 USDC - MCP-Werkzeug: `bgp_origin` - Eingabe: `["prefix","history_days"]` ### POST /v1/rpki-validity Validates the pair of prefix and origin AS against the RPKI repository and returns the verdict together with every ROA that bears on it: the authorised origin, the prefix it covers and the maximum length it permits. The three outcomes are kept strictly apart because they mean different things and one of them is routinely misread. Valid means a ROA exists and covers exactly this combination. Invalid means a ROA exists and does not cover it, either because the origin AS differs or because the prefix is more specific than the maximum length allows — and the response says which of the two it is, since the remedies differ. Unknown means no ROA exists at all, which is not an error and not a warning: a large share of the routing table is uncovered, and a monitor that reports uncovered space as broken reports half the internet as broken. The validator that produced the answer is named, because RPKI verdicts are only as current as the repository snapshot behind them. - Preis: 0.003 USDC - MCP-Werkzeug: `rpki_validity` - Eingabe: `["prefix","asn"]` ### POST /v1/prefix-visibility Reports the propagation of a prefix as the fraction of RIS observers that see it, separately for IPv4 and IPv6, because the absolute peer count moves with the size of the measurement network and is not comparable across time or between prefixes. The share is graded against stated thresholds, and — this is the part that makes the number mean something — compared against the other prefixes announced by the same origin AS. A prefix seen by sixty percent of observers is unremarkable if its neighbours sit at sixty as well, and is a finding if they sit at ninety-five. That comparison is what separates weak propagation from a quiet corner of the measurement network. The response also reports more specific and less specific prefixes routed alongside, since a poorly visible aggregate with well visible components is a different situation from one that is simply not propagating. Regional announcements that no RIS observer peers with will look weak here regardless, and that limit is stated rather than folded into the score. - Preis: 0.004 USDC - MCP-Werkzeug: `prefix_visibility` - Eingabe: `["prefix","compare_with_asn","max_compare"]` ### POST /v1/hijack-suspicion Collects the observable signs of a route hijack for one prefix and reports which of them are present, with the measurement behind each. Four signs carry different weight. RPKI invalidity is the only hard one: a ROA exists and does not authorise this announcement. An origin AS that appears in the current state but nowhere in the history window is the classic sign, and the response gives the historical origins so the change can be dated. A more specific prefix announced by a different AS is the mechanism that actually redirects traffic, since the longest match wins regardless of what the aggregate says, and it is checked separately for that reason. A visibility jump indicates a change in propagation that accompanies but does not prove interference. The result is a suspicion level with the contributing signs listed, and it is explicitly not a verdict: a planned migration, a new transit provider and an attack produce the same observations from the outside, so the response states what a defender would have to check internally to tell them apart. - Preis: 0.006 USDC - MCP-Werkzeug: `hijack_suspicion` - Eingabe: `["prefix","expected_asn","history_days"]` ### POST /v1/asn-neighbours Returns the neighbouring autonomous systems observed next to a given AS in BGP paths, each with the number of observers that saw the adjacency and how often it appeared, which together indicate how solid the observation is rather than how important the relationship is. The upstream classifies neighbours as left, right or uncertain; these are positions in the AS path relative to the observer and not commercial roles, and the response says so explicitly, because reading left as transit provider and right as customer is the single most common misinterpretation of this dataset and produces confidently wrong topology diagrams. When a comparison date is given, the neighbour set is fetched for that date as well and the response names which adjacencies appeared, which disappeared and which persisted — a new upstream, a lost peering or a transit change shows up here first. Weakly observed adjacencies are marked, since a neighbour seen by two observers out of a hundred may be a measurement artefact rather than a link. - Preis: 0.004 USDC - MCP-Werkzeug: `asn_neighbours` - Eingabe: `["asn","compare_days_ago","min_peers"]` ### POST /v1/bgp-update-anomaly Counts BGP updates for a prefix or an autonomous system in a recent window and compares them against a baseline built from a longer preceding period for the same resource. The comparison is deliberately self-referential: an AS with a hundred prefixes has a different normal than one with ten thousand, and a fixed threshold is blind for the first and a permanent alarm for the second. Announcements and withdrawals are counted separately because they mean different things — a burst of withdrawals is a path being lost, a burst of announcements is a path being rebuilt or flapping. Flapping is detected as repeated announce-withdraw cycles for the same prefix within the window and reported with the prefixes involved, since that pattern triggers route damping upstream and outlives the event that caused it. The response gives the observed rate, the baseline rate, the ratio between them and the threshold applied, so the finding can be recomputed. A quiet resource with almost no baseline traffic produces a high ratio from a small absolute change, and the response marks that case rather than reporting a dramatic multiple. - Preis: 0.005 USDC - MCP-Werkzeug: `bgp_update_anomaly` - Eingabe: `["resource","window_hours","baseline_hours","sensitivity"]` ### POST /v1/prefix-ownership Combines the registry view and the routing view of a prefix into one answer, keeping them apart because they are not the same thing and their disagreement is the finding. From the registry come the holder, the allocating authority, the registration and last-modified dates and the country as recorded, together with any route objects registered in an IRR. From routing come the origins observed over the requested window with the periods they were active, plus first and last sighting. The response then states whether the currently announcing AS matches what the registry and the route objects describe. A mismatch has several readings — the space is leased, it was transferred without the records being updated, or it is being announced without authorisation — and all of them are listed rather than the response picking one, because from outside they are indistinguishable. Registry data is only as accurate as the holder keeps it, and route objects are frequently stale by years; both limits are stated rather than presented as authority. - Preis: 0.005 USDC - MCP-Werkzeug: `prefix_ownership` - Eingabe: `["prefix","history_days"]` ### POST /v1/route-leak-risk Looks at every AS path observed for a prefix and reports the ones that do not fit. Four patterns are checked. A path loop, where an AS appears twice with other ASes in between, which prepending does not produce and a leak does. An unusually long path, measured against the median length of all paths to the same prefix rather than a fixed number, because path length is a property of where you sit in the network. An unexpected transit AS, meaning one that appears in the middle of some paths but not in the majority, which is how a leak looks from a distance. And a rare transit AS, one that carries the prefix for very few observers, which is the same signal seen from the other side. Every finding comes with the actual paths and the observers that reported them, because a leak is confirmed or dismissed by someone who knows which relationships are supposed to exist, and that person needs the path, not a score. Nothing here proves a leak: an unusual path is also what a legitimate backup route looks like on the day it is used. - Preis: 0.006 USDC - MCP-Werkzeug: `route_leak_risk` - Eingabe: `["prefix","max_paths"]` ### POST /v1/ipv6-readiness Measures IPv6 adoption for an AS in a way that survives contact with reality. Counting v6 prefixes is close to meaningless on its own, because a single allocation can hold more addresses than the entire v4 internet, so a count of one is not a tenth of a count of ten. What is measured instead is whether the AS announces IPv6 at all, how many distinct v6 prefixes it propagates, and — the part that carries the signal — how well those prefixes are seen by observers compared with the same AS own v4 prefixes. An AS whose v6 prefixes are seen by a fraction of the observers that see its v4 space is holding IPv6, not running it, and that gap is exactly what a readiness question is asking about. A sample of prefixes from both families is measured rather than all of them, and the sample size is stated so a thin measurement is never mistaken for a thorough one. The grade combines presence, relative propagation and how long the v6 announcements have been stable, with every threshold returned. - Preis: 0.005 USDC - MCP-Werkzeug: `ipv6_readiness` - Eingabe: `["asn","sample_size"]` ## Weitere Flächen - OpenAPI: https://netz.halowerk.com/openapi.json - Preise: https://netz.halowerk.com/pricing - x402-Manifest: https://netz.halowerk.com/.well-known/x402 - Bazaar: https://netz.halowerk.com/.well-known/x402/bazaar - MCP: https://netz.halowerk.com/mcp ## Missing a capability? If you looked for something this service does not offer, say so. One call, no payment, no sign-up, no account: POST https://bedarf.halowerk.com/capabilities/request Content-Type: application/json {"requested_capability": "what you would buy", "description": "the use case, one sentence", "callback_url": "optional - we call back once it exists"} Only requested_capability is required, 3 to 160 characters. Schema and status: https://bedarf.halowerk.com/openapi.json Submissions are held for review and are never published verbatim.