# Halowerk Vote-Buying Risk Scorer

> Halowerk Vote-Buying Risk Scorer is a paid API for AI agents from gov.halowerk.com, paid per call via x402, $0.004/call, status unknown (last checked 2026-09-14).

Scores voter observations using cohort-relative transfer size, recency, and repeated-counterparty count to produce an investigative triage heuristic for potential vote-buying patterns.

## Facts

- Endpoint: POST https://gov.halowerk.com/v1/vote-buying-detect
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-vote-buying-risk-scorer-4ccb8da1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_p0ZL2Igw6HJmmePgP4z4u

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 halowerk-vote-buying-risk-scorer-4ccb8da1 -d '<json body>'
```

Example prompt: Score these 50 voter observations for vote-buying risk — each has a voter ID, their 'for'/'against'/'abstain' choice, the associated transfer amount, how many hours before the vote the transfer happened, and how many times they've transacted with the same counterparty before. Flag anything above a 0.7 risk threshold.

## When to prefer this

Use this endpoint when you need to triage governance votes for vote-buying patterns using caller-supplied on-chain or off-chain transfer observations. Prefer it over generic anomaly detectors when your data includes the specific feature set of transfer amount, transfer recency, and repeated-counterparty count relative to voting events. It is purpose-built for governance fraud investigation workflows rather than general financial fraud or identity verification.

## Known failure modes

- Fewer than 3 observations supplied — minimum batch size not met
- voter_id exceeds 128 characters — validation error
- transfer_age_hours outside 0–8760 range — out of bounds error
- associated_transfer_amount is negative or exceeds maximum — validation error
- repeated_counterparty_count is not an integer — type error
- flag_threshold outside 0–1 range — validation error
- More than 10,000 observations in a single request — batch size exceeded
- Payment not included or insufficient USDC — 402 Payment Required

## How this service works

Scores caller-supplied vote/transfer observations using cohort-relative transfer size, transfer recency, and repeated-counterparty count. The output is an investigative triage heuristic, not proof of vote buying, identity linkage, or wrongdoing.

## Output

Returns a risk score for each voter observation, computed from cohort-relative transfer size, transfer recency, and repeated-counterparty count. Includes a triage flag for observations exceeding the supplied threshold. The output is explicitly a heuristic for investigative prioritization, not a determination of wrongdoing or identity linkage.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "observations": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "voter_id",
     "choice",
     "associated_transfer_amount",
     "transfer_age_hours",
     "repeated_counterparty_count"
    ],
    "properties": {
     "choice": {
      "enum": [
       "for",
       "against",
       "abstain"
      ],
      "type": "string"
     },
     "voter_id": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1
     },
     "transfer_age_hours": {
      "type": "number",
      "maximum": 8760,
      "minimum": 0,
      "description": "Hours between transfer and vote."
     },
     "associated_transfer_amount": {
      "type": "number",
      "maximum": 1000000000000000,
      "minimum": 0,
      "description": "Caller-linked transfer amount in one consistent unit."
     },
     "repeated_counterparty_count": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 0,
      "description": "Prior linked transfers with the same counterparty."
     }
    },
    "additionalProperties": false
   },
   "maxItems": 10000,
   "minItems": 3
  },
  "flag_threshold": {
   "type": "number",
   "maximum": 1,
   "minimum": 0,
   "description": "Risk-score threshold used only for triage."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-vote-buying-risk-scorer-4ccb8da1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from gov.halowerk.com](https://www.zero.xyz/host/gov.halowerk.com/llms.txt)
