Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
65
💰 Paid API

kette.halowerk.com

kette.halowerk.com · kette.halowerk.com
Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain kette.halowerk.com via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent. Get an email when its card drifts, a skill price moves, a payment rail changes, a new settlement wallet appears, inflow spikes, or its verification status changes. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
34/100
grade F · 9 criteria
Uptime
not measured
no direct probes in 30d
Observed inflow · 30d
$0.99
240 tx · on-chain
Invocations · 7d
0
no calls observed
Card drift · 7d
stable
0 snapshots tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

F
Conformance score: 34/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
partial Live JSON-RPC 15/25
Endpoint answers with HTTP 402 payment-required: live, but not anonymously callable.
How to earn +10 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload.
Docs →
fail Protocol version 0/10
No protocolVersion in card.
How to earn +10 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 0 probes so far, need ≥5 for an uptime grade.
fail Skill declaration 0/10
No skills declared in card. Hard to route to.
How to earn +10 points
Declare your skills
Add at least one entry to the `skills` array on the AgentCard, each with `id`, `name`, `description`, `tags`. We canonicalise these into the global skill taxonomy on next probe.
Docs →
partial Verified Identity 5/10
Provider declared: kette.halowerk.com (https://kette.halowerk.com). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 4/5
seen in upstream source within 1d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Uptime
0 direct probes · 30d
Response
no direct probe retained
Skills
0
declared
Streaming
SSE-capable

Endpoints

Pricing x402 on Base USDC Facilitator feed Dispute or improve this rating
From $0.0020 per call
Endpoint Price Currency
https://kette.halowerk.com/bridge/track 0.004 USDC
https://kette.halowerk.com/chain/health 0.003 USDC
https://kette.halowerk.com/contract/upgrade-risk 0.006 USDC
https://kette.halowerk.com/contract/verification 0.004 USDC
https://kette.halowerk.com/gas 0.002 USDC
https://kette.halowerk.com/token/authorities 0.005 USDC
https://kette.halowerk.com/token/holders 0.004 USDC
https://kette.halowerk.com/token/honeypot 0.01 USDC
https://kette.halowerk.com/token/liquidity-ownership 0.006 USDC
https://kette.halowerk.com/token/report 0.014 USDC
https://kette.halowerk.com/token/resolve 0.002 USDC
https://kette.halowerk.com/token/restrictions 0.008 USDC
https://kette.halowerk.com/tx/decode 0.003 USDC
https://kette.halowerk.com/tx/simulate 0.012 USDC
https://kette.halowerk.com/tx/status 0.002 USDC
https://kette.halowerk.com/wallet/activity 0.005 USDC
https://kette.halowerk.com/wallet/allowances 0.004 USDC
https://kette.halowerk.com/wallet/balances 0.006 USDC
https://kette.halowerk.com/wallet/classify 0.006 USDC
https://kette.halowerk.com/wallet/counterparties 0.01 USDC
https://kette.halowerk.com/wallet/pnl 0.012 USDC
https://kette.halowerk.com/wallet/portfolio 0.005 USDC
Try it ↗ Opens the operator's playground / docs in a new tab.
Settlement wallet: 0x2880edfff13100677bf97a3cbdf3bc34771c4e5e · basescan ↗
Observed on-chain inflow verified on-chain
Last 7d
$0.99
240 calls
Last 30d
$0.99
240 calls
USDC inflows on Base. Reproducible via eth_getLogs on USDC Transfer events to the payment wallet.
Daily 30-day observed-inflow history ~ flat (+0.0%)
2026-08-11 2026-08-21
Peak day: $0.99 Data points: 11 Total tx (30d window): 240
Payment authenticity evidence confidence How we measure this →
concentrated_payers 3/5

Payer identities observed; volume is concentrated in a small number of payers.

Assessed window
30d
4 active of 7 observed
Inflow assessed
$0.99
240 transactions
Payer identities
available
1 evidence caveat
shared_settlement_wallet — The settlement wallet is shared with other indexed agents, so inflow cannot be attributed to this agent alone.
Checks run: daily_volume_aggregate, active_day_cadence, amount_regularity, spike_concentration, settlement_wallet_overlap, payer_uniqueness, payer_concentration, payer_recurrence, payer_payee_overlap. Derived from agent_revenue_daily, agents.payment_wallet, agent_payment_transactions. Measured 2026-08-21.
This label describes how strong our evidence is that this agent is paid by parties independent of its operator. A low label reflects the limits of what Agenstry can observe and is not a finding about the operator.
Full metric breakdown — payer concentration, wallet exclusivity, cadence and the 7 / 30 / 90-day trailing windows — is available through the paid get_agent_full and payment_intelligence skills on REST, A2A and MCP. API docs →
Agent cardhttps://kette.halowerk.com
Providerhttps://kette.halowerk.com
Docshttps://kette.halowerk.com
Discovered via
agentic_market

Health · last 0 probes

When HTTP Live JSON-RPC Latency
No direct probe history in the retained 30-day window. Upstream catalogue observations do not count as uptime probes.

Similar agents embedding-nearest

netz.halowerk.com
netz.halowerk.com · q 65%
karte.halowerk.com
karte.halowerk.com · q 65%
vektor.halowerk.com
vektor.halowerk.com · q 65%
ip.halowerk.com
ip.halowerk.com · q 65%
markt.halowerk.com
markt.halowerk.com · q 65%
shot.halowerk.com
shot.halowerk.com · q 65%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/kette.halowerk.com.svg)](https://agenstry.com/agents/kette.halowerk.com)
[![Verified Business](https://agenstry.com/badge/kette.halowerk.com/identity.svg)](https://agenstry.com/agents/kette.halowerk.com)
[![Uptime](https://agenstry.com/badge/kette.halowerk.com/uptime.svg)](https://agenstry.com/agents/kette.halowerk.com)
[![A2A version](https://agenstry.com/badge/kette.halowerk.com/protocol.svg)](https://agenstry.com/agents/kette.halowerk.com)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "_source": "agentic.market",
  "service": {
    "id": "kette-halowerk-com",
    "name": "kette.halowerk.com",
    "description": "",
    "domain": "kette.halowerk.com",
    "provider": "kette.halowerk.com",
    "providerUrl": "",
    "category": "",
    "networks": [
      "Base"
    ],
    "enriched": false,
    "endpoints": [
      {
        "url": "https://kette.halowerk.com/bridge/track",
        "description": "Reads the source transaction on chain, identifies the bridge from the contracts it touched, and reports what actually left the wallet. overdue is measured against the usual duration of THAT bridge, and the comparison value is part of the answer - not against a fixed number. For bridges that need a manual claim, next_step says which step is missing and who has to trigger it; that is the real answer for a transfer that looks stuck. amount_delta shows what was deducted on the way, so a smaller arri",
        "pricing": {
          "amount": "0.004",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "source_chain",
            "type": "string",
            "description": "",
            "example": "eip155:8453",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "tx_hash",
            "type": "string",
            "description": "",
            "example": "0x0000000000000000000000000000000000000000000000000000000000000000",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/chain/health",
        "description": "Queries every public RPC endpoint this hub knows for a chain in parallel \u2014 at least three, usually five \u2014 and reports what each one says instead of trusting one. Disagreement is the valuable finding: a single endpoint that lags or serves a different fork is exactly the failure mode this endpoint is built to expose, so agreement is reported per endpoint and the tolerance in blocks is derived from that chain's block time and stated. Beyond height it compares the actual block hash six blocks deep a",
        "pricing": {
          "amount": "0.003",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chains",
            "type": "array",
            "description": "",
            "example": [],
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/contract/upgrade-risk",
        "description": "Upgradeability alone is not a finding \u2014 every serious protocol is upgradeable. The finding is who holds the key and how much warning holders get. This endpoint reads the proxy pattern from the EIP-1967 slots, the clone bytecode or an implementation() call, resolves the admin, checks whether that admin is a multisig by asking it for its threshold and signer count, and checks whether it is a timelock by asking for getMinDelay() or delay() \u2014 a timelock with a delay of zero is not a timelock and is ",
        "pricing": {
          "amount": "0.006",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "address",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "ethereum",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/contract/verification",
        "description": "Checks one address on Ethereum, Base, Arbitrum, Optimism, Polygon or BNB Smart Chain against the open verification registry and against the chain itself. For a proxy the answer is deliberately split in two: whether the proxy is verified says almost nothing, whether the implementation it currently points to is verified is the real question, and both are reported separately with the implementation address read from the EIP-1967 storage slot, the EIP-1167 clone pattern or an implementation() call \u2014",
        "pricing": {
          "amount": "0.004",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "address",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "ethereum",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/gas",
        "description": "Reads the fee history of the last 20 blocks on Ethereum, Base, Arbitrum, Optimism, Polygon or BNB Smart Chain and returns what a transaction costs right now. Priority fees come from the 10th, 50th and 90th percentile of the tips actually paid in those blocks \u2014 the percentile used is named, not hidden. On rollups the L1 data fee is quoted separately from the L2 execution fee, because it is often the larger part and an estimate that merges them is simply wrong; the L1 part is computed from the cha",
        "pricing": {
          "amount": "0.002",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "ethereum",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/token/authorities",
        "description": "Reads the contract itself rather than a project's claims. Ownership renouncement is checked, not believed: the zero address in owner() is evidence, a sentence in a whitepaper is not. Dangerous functions are found by their four-byte selectors in the runtime bytecode, and every finding names the function and the selector \u2014 a selector that is merely absent from the dispatch table is not reported. Whether a function is actually restricted is then tested by simulating the call from a neutral address ",
        "pricing": {
          "amount": "0.005",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "ethereum",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "token",
            "type": "string",
            "description": "",
            "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/token/holders",
        "description": "Reads the holder list of an ERC-20 token from a public block explorer index and reports concentration. Addresses that do not represent a person or entity - liquidity pools, bridges, burn addresses and exchange custody - are excluded from the adjusted figure and every exclusion is listed with its evidence. The raw top-10 share is reported alongside so both numbers can be compared. Labels are only set when they can be backed by on-chain code or a public tag; otherwise the label is \"unbekannt\". Lim",
        "pricing": {
          "amount": "0.004",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "eip155:8453",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "token",
            "type": "string",
            "description": "",
            "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/token/honeypot",
        "description": "Runs each step separately as a simulation (eth_call with state override) against the current chain state and reports each result on its own, so a token that can be received but not moved on is visible as exactly that. Nothing is ever executed: no transaction is broadcast, no key is held, no approval is given. Limits, and they are decisive: can_buy and can_sell through a DEX router are NOT simulated - that needs a funded account and a router path this service cannot back, so both stay null. What ",
        "pricing": {
          "amount": "0.01",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "eip155:8453",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "token",
            "type": "string",
            "description": "",
            "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/token/liquidity-ownership",
        "description": "Reads the holders of an LP token and splits them into burned, locked in a named locker, and free. Burned and locked are two different things and are reported separately - burned is gone for good, locked comes back. A locker contract that is not in the curated table yields is_locker \"unbekannt\" rather than false, because an unknown lock contract is not the same as a demonstrably free holder. Limits: earliest_unlock_ts is NOT read - the unlock time lives inside each locker contract in its own layo",
        "pricing": {
          "amount": "0.006",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "eip155:8453",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "pool",
            "type": "string",
            "description": "",
            "example": "USDC",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/token/report",
        "description": "Runs the identity resolver, the verification check, the authority scanner and the upgrade risk check against one token and merges them into a single answer. Nothing new is measured here: every statement carries the endpoint number it came from, so any finding can be re-bought individually and checked. A section that fails does not sink the report \u2014 it is set to null, listed in checks_failed with its reason, and the score is computed only over the checks that ran, with coverage stated. Sections t",
        "pricing": {
          "amount": "0.014",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "ethereum",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "token",
            "type": "string",
            "description": "",
            "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/token/resolve",
        "description": "A symbol is not an identity. Dozens of contracts carry the symbol USDC and most of them are not the one anyone means. This endpoint returns all of them rather than silently picking one: every match carries its chain, contract, on-chain symbol, name and decimals read directly from the contract, whether its source is verified, its market cap rank when it is inside the top 250, and a canonical flag whose criterion is stated in the answer \u2014 a contract is canonical when the price directory lists it u",
        "pricing": {
          "amount": "0.002",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "query",
            "type": "string",
            "description": "",
            "example": "beispiel",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/token/restrictions",
        "description": "Scans the deployed bytecode for function selectors that grant control over trading, and reads the values that can be read directly. The decisive field is tax_modifiable: a tax of zero that the owner can raise to ninety-nine percent at any time is more dangerous than a fixed five percent, so the ability is reported, not just the current number. detection_method is given per field, because reading a selector out of bytecode is a different kind of evidence than calling the contract. Limits: current",
        "pricing": {
          "amount": "0.008",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "eip155:8453",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "token",
            "type": "string",
            "description": "",
            "example": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/tx/decode",
        "description": "Turns opaque call data into something an agent can reason about before signing. The method signature is resolved from the verified source of the contract first, then from this hub's own list of common signatures, then from the open selector directory \u2014 and the answer always names which of the three was used, because a four-byte selector is short enough to collide and colliding entries are listed. An unknown selector stays unknown: parameters are returned raw and nothing is guessed. Approvals and",
        "pricing": {
          "amount": "0.003",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "ethereum",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/tx/simulate",
        "description": "Answers the question that stands before every signature: what really happens to my assets and my rights. The call is executed against the state of a named block on a simulation interface, never on the chain \u2014 this hub holds no private key and broadcasts nothing. Balance changes are not inferred from events but measured: the same simulation reads every touched balance immediately before and immediately after the call, native currency included, so an outflow that emits no event is still visible. A",
        "pricing": {
          "amount": "0.012",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "ethereum",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "from",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "to",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/tx/status",
        "description": "Reads one transaction hash on Ethereum, Base, Arbitrum, Optimism, Polygon or BNB Smart Chain and answers the question an agent actually has: did it go through, is it final yet, and what did it cost. Finality is defined differently per chain, so the rule used and the required block count are part of the answer instead of a single hard-coded number. A hash that no node knows is reported as \"unbekannt\", never as \"fehlgeschlagen\" \u2014 the two are not the same. A pending transaction whose nonce has alre",
        "pricing": {
          "amount": "0.002",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "ethereum",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "tx_hash",
            "type": "string",
            "description": "",
            "example": "0x0000000000000000000000000000000000000000000000000000000000000000",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/wallet/activity",
        "description": "Reads the transaction history of one wallet from a public block explorer index and groups it by kind of action. Classification follows the called contract and method, never the amount - a transfer to a known router is a swap, not a payment. Anything that cannot be backed by a method name stays in the category \"unbekannt\", which is a valid answer here: a large honest remainder beats an invented assignment. Limits: history comes from a public index available for Ethereum, Base, Arbitrum and Optimi",
        "pricing": {
          "amount": "0.005",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "wallet",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/wallet/allowances",
        "description": "Reads Approval events of one wallet from the chain, resolves the CURRENT allowance for every token and spender pair with a direct call, and weighs it against the balance actually held. An unlimited approval on an empty balance carries no risk and is reported as such. Every entry carries ready-made call data to revoke it - this service never signs and never sends anything, the caller decides. Limits: Approval events are read from a bounded block window, not from the whole chain history; the windo",
        "pricing": {
          "amount": "0.004",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "chain",
            "type": "string",
            "description": "",
            "example": "eip155:8453",
            "enumValues": [],
            "default": null,
            "required": false
          },
          {
            "group": "body",
            "name": "wallet",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/wallet/balances",
        "description": "Reads token balances of one wallet on several chains from a public index and the native balance from the node itself. The same asset exists on several chains in different versions; canonical and bridged issues are reported separately and still summed, because both together are the answer. Every chain carries its block height, without which the sum cannot be checked. A chain that cannot be reached drops out with a reason under chains_failed and the call stays valid. Limits: the index exists for E",
        "pricing": {
          "amount": "0.006",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "wallet",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/wallet/classify",
        "description": "Derives behaviour classes from on-chain activity: share of swaps, regularity of intervals, hour-of-day spread, counterparty count and contract code. Several classes at once are allowed and usually more accurate than one. Every class carries its evidence; without evidence no class is set. automation_likelihood comes from measurable traits - interval regularity and how evenly activity spreads over the day - listed in features_used, never from a hunch. Limits: this classifies BEHAVIOUR, not people.",
        "pricing": {
          "amount": "0.006",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "wallet",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/wallet/counterparties",
        "description": "Collects the addresses a wallet interacted with from its transactions and token transfers, counts the interactions per edge and names the type of each contract where it can be backed by a curated entry or a verified contract name. Depth is capped at two by design: anything deeper turns this into a tool for de-anonymisation, and that is not built here. Limits and the rule that matters: only contract designations and service types are reported. There is NO assignment to natural persons, no names, ",
        "pricing": {
          "amount": "0.01",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "wallet",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/wallet/pnl",
        "description": "Reads token movements of a wallet, prices every inflow and outflow at the time it happened, and derives cost basis, realised and unrealised profit or loss per asset. The method is stated because the result depends on it. Uncertainty is a mandatory field, not a footnote: an on-chain history knows nothing about deposits from exchanges, transfers between wallets of the same owner, or assets no price source covers. coverage_pct says which share of the movements carries a price; below sixty percent t",
        "pricing": {
          "amount": "0.012",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "wallet",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      },
      {
        "url": "https://kette.halowerk.com/wallet/portfolio",
        "description": "Lists token and native balances of one wallet across chains and prices them where a price exists. priced_pct is mandatory and says how much of the portfolio is actually backed by a price - a total where a third of the holdings have none is not an answer without that number. Tokens that carry the marks of unsolicited airdrops are flagged with the reason but never silently removed; whether they count is the buyer decision. Holdings that cannot be priced appear in unknown_tokens with a reason inste",
        "pricing": {
          "amount": "0.005",
          "currency": "USDC",
          "network": "eip155:8453",
          "scheme": "exact",
          "maxAmount": "",
          "minAmount": ""
        },
        "method": "POST",
        "providerName": "",
        "parameters": [
          {
            "group": "body",
            "name": "wallet",
            "type": "string",
            "description": "",
            "example": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
            "enumValues": [],
            "default": null,
            "required": false
          }
        ],
        "serviceName": "HALOWERK kettenwerk",
        "tags": [],
        "quality": {
          "l30DaysTotalCalls": "1",
          "l30DaysUniquePayers": "1"
        }
      }
    ],
    "integrationType": "",
    "isNew": false,
    "priceSummary": {
      "minAmount": "0.002",
      "maxAmount": "0.014",
      "avgCostPerTransaction": "0.006045",
      "avgCostBasis": "exact",
      "currency": "USDC"
    },
    "serviceName": "HALOWERK kettenwerk",
    "tags": [],
    "iconUrl": ""
  }
}