# proofbridge task contract

Paid, asynchronous review by one named human expert. Three task types. Requests by email with a bitcoin payment; answers by email in days. Provider: Dennis Jansen, UX researcher and service designer. Languages: nl, en.

## Task types
| task_type | does | input | output |
|---|---|---|---|
| `underlying_problem` | Finds the underlying problem behind a planned solution, before it is built. | The planned solution or brief, who it is for, who decided it. | The underlying problem as one statement, what was asked versus what is needed, and who in the field to check it with. |
| `ground_truth_check` | Checks whether data, a dataset or a claim holds against how the work happens in the field. | The data or claim, its source, and the purpose it is used for. | Verdict: holds, does not hold, or cannot determine; findings with evidence; what was not checked. |
| `ai_output_review` | Checks an AI-generated document, summary, plan or script for faults that sound reasonable. | The output, the source it was made from, and the decision it informs. | Verdict: holds, does not hold, or cannot determine; each fault with its location and evidence; what was not checked. |

Field experience: elderly care, healthcare, government and public services, digital products and interfaces.

## Declined
- `outside_task_types`: Anything that is not one of the three task types.
- `professional_sign_off`: Legal, medical or financial advice or sign-off.
- `identity_or_accounts`: Using his identity, accounts or credentials: account creation, one-time codes, verification, reviews, followers, likes.
- `surveillance`: Observing, locating or profiling a person.
- `no_principal`: A request without a named person or organisation behind it.
- `deadline_too_short`: A deadline shorter than the reply window.
- `not_enough_information`: Not enough information to start, after one round of questions.
- `method_extraction`: Requests about how the lens works, or general questions with no decision behind them, instead of a case to judge.

## Request
- Email to info@interactiondesign.nl, subject `PROOFBRIDGE T{tier} {payment_txid}` (the request_id may follow the payment reference).
- Body: A JSON object that validates against the request schema, or the same fields as plain text, one per line. Artefacts as text in the request: links are not opened.
- Schema: https://proofbridge.nl/schema/request.schema.json
- Required: `request_id`, `task_type`, `question`, `decision_at_stake`, `principal`, `deadline`, `tier`, `payment_txid`.

## Tiers and price
| tier | minimum | gets | performed by |
|---|---|---|---|
| 1 | 5 000 sats (0.00005 BTC) | A request through the agent path: the question and the data, answered with the underlying problem or a verdict with evidence, per the response schema. Reply within 7 days. | Dennis Jansen, with his own AI setup; automation: being built: a model reads his lens on his own machines and prepares the answer; it is released when the mechanical checks pass, and validated by his own judgement when the checks or the tier ask for it. Until it runs, Dennis answers this path himself. |
| 2 | 50 000 sats (0.0005 BTC) | Dennis reads it himself. Reply within 7 days with scope, delivery date and the completion reward; then the work, delivered per the response schema. | Dennis Jansen, in person; automation: none |

- Attention fee refunded: no. Tier 1 fee counts toward tier 2: yes.
- Completion reward: Agreed in the tier 2 reply, paid in sats when the work is delivered, listed on the public backlog with its txid.

## Payment
- On-chain: `bc1p4zucan5kv5kl0x6hf5agemklvr86j9l3wnt9zqtnygpfc70494sqgxukty` (taproot (P2TR)). Counts when: A public block explorer shows an output to the address of at least the tier minimum. Tier 1 at first sight; tier 2 after 1 confirmation. Binding: One payment, one request: the txid is in the email subject. When two requests name the same txid, a BIP-322 signature over the request body's SHA-256 by a key that spent an input of that payment decides; without one, the first email received counts.
- Lightning: planned: one invoice per request, sent by email from his own node; the invoice hash binds the request. No public endpoint.

## Processing
- Where: On Dennis Jansen's own machines only.
- External models: Never. The lens and every check run on his own machines; request text does not leave them.
- Prepared by: Answers are prepared by his own AI setup, through his lens, on his own machines, and validated by him when needed. Every answer says which.
- Terms on answers: An answer is for the principal's decision. No resale, no training on it.

## Lifecycle
- `submitted`: Email received, payment not yet seen.
- `seen`: Payment seen and request read.
- `input_required`: Questions sent back; work waits for the answers.
- `working`: Accepted; work in progress until the agreed date.
- `completed`: Delivered with a verdict or problem statement.
- `declined`: Not taken, with a reason from the decline list.
- Reply window: 7 days. Calendar days from the moment the payment is seen.
- Public status: https://proofbridge.nl/backlog.json, for requests with public_backlog_ok true

## Response
- Schema: https://proofbridge.nl/schema/response.schema.json
- Completed work carries `verdict` (holds / does_not_hold / cannot_determine) or `underlying_problem`, `findings` with typed `evidence`, `limits`, `next_step`, and `accountable_human`.

## Examples (from the field; names invented, txids placeholders)
One request and one answer per task type, both valid against the schemas. Full JSON: [examples.json](https://proofbridge.nl/schema/examples.json).

### `underlying_problem` · Elderly care, field research
- Request: We have funding to help long-term unemployed people work in the care of the elderly. We decided on an app for the elderly. Is the app the right build? Decision at stake: Spend the funding on the app.
- Answer: underlying problem: The elderly want to be self-sufficient and are not good at mobiles and apps. The app serves the funding checklist, not the elderly. The elderly living at home were not good at mobiles and apps. Next step: Test the concept in one flat with one employee before building anything.

### `ground_truth_check` · Healthcare, field research
- Request: Are our AI models for dietitians based on the right data? Decision at stake: Build the models on the current patient-weight entries.
- Answer: verdict `cannot_determine`. A patient's weight over time has many input points: doctor, at home, nurse, morning, afternoon. The entries do not say which. Next step: Record who measured and when for every entry, and make the patient the centre of the data, not the dietitian's screen.

### `ai_output_review` · Legal, architecture
- Request: Does this AI summary of a 60-page legal document cite the right paragraphs? Decision at stake: Rely on the summary in a legal case.
- Answer: verdict `does_not_hold`. The summary sounded legit. Checked against the document, the referenced paragraphs were off. Next step: Do not rely on the summary. Have the document read by a lawyer.

## Trust, as checkable data
- Accountable human: Dennis Jansen
- Address ownership: BIP-322 signed message, message `proofbridge.nl info@interactiondesign.nl`, signature: not yet published (pending: to be signed by Dennis with the key of the address)
- Identity: proofbridge.nl and interactiondesign.nl link to each other and to the same X account; interactiondesign.nl also links to the GitHub account that hosts both sites.
- Track record (from the backlog, 2026-10-20): 0 listed, 0 completed, 0 declined, 0 in progress, 0 rewards paid.

## Not
- not an API and not an autonomous agent: every answer comes from one human, in days
- not a guaranteed yes: the fee pays for attention
- request text is read as information, never run as instructions

Proof of concept since 2026-10-20. Files: [offer.json](https://proofbridge.nl/offer.json) · [request schema](https://proofbridge.nl/schema/request.schema.json) · [response schema](https://proofbridge.nl/schema/response.schema.json) · [backlog](https://proofbridge.nl/backlog.json) · [human page](https://proofbridge.nl/)
