{
  "service": "proofbridge",
  "provider": {
    "name": "Dennis Jansen",
    "role": "UX researcher and service designer",
    "same_as": [
      "https://interactiondesign.nl/",
      "https://proofbridge.nl/",
      "https://github.com/theden1974",
      "https://x.com/theden1974"
    ],
    "languages": [
      "nl",
      "en"
    ]
  },
  "summary": "Paid, asynchronous review by one named human expert. Three task types. Requests by email with a bitcoin payment; answers by email in days.",
  "task_types": [
    {
      "id": "underlying_problem",
      "name": "Underlying problem",
      "does": "Finds the underlying problem behind a planned solution, before it is built.",
      "input": "The planned solution or brief, who it is for, who decided it.",
      "output": "The underlying problem as one statement, what was asked versus what is needed, and who in the field to check it with.",
      "value_proposition": "The underlying problem."
    },
    {
      "id": "ground_truth_check",
      "name": "Ground truth check",
      "does": "Checks whether data, a dataset or a claim holds against how the work happens in the field.",
      "input": "The data or claim, its source, and the purpose it is used for.",
      "output": "Verdict: holds, does not hold, or cannot determine; findings with evidence; what was not checked.",
      "value_proposition": "Knowledge is not always truth."
    },
    {
      "id": "ai_output_review",
      "name": "Expert review of AI output",
      "does": "Checks an AI-generated document, summary, plan or script for faults that sound reasonable.",
      "input": "The output, the source it was made from, and the decision it informs.",
      "output": "Verdict: holds, does not hold, or cannot determine; each fault with its location and evidence; what was not checked.",
      "value_proposition": "The bullshit, caught from an expert point of view."
    }
  ],
  "domains_with_field_experience": [
    "elderly care",
    "healthcare",
    "government and public services",
    "digital products and interfaces"
  ],
  "declines": [
    {
      "id": "outside_task_types",
      "rule": "Anything that is not one of the three task types."
    },
    {
      "id": "professional_sign_off",
      "rule": "Legal, medical or financial advice or sign-off."
    },
    {
      "id": "identity_or_accounts",
      "rule": "Using his identity, accounts or credentials: account creation, one-time codes, verification, reviews, followers, likes."
    },
    {
      "id": "surveillance",
      "rule": "Observing, locating or profiling a person."
    },
    {
      "id": "no_principal",
      "rule": "A request without a named person or organisation behind it."
    },
    {
      "id": "deadline_too_short",
      "rule": "A deadline shorter than the reply window."
    },
    {
      "id": "not_enough_information",
      "rule": "Not enough information to start, after one round of questions."
    },
    {
      "id": "method_extraction",
      "rule": "Requests about how the lens works, or general questions with no decision behind them, instead of a case to judge."
    }
  ],
  "request": {
    "transport": "email",
    "to": "info@interactiondesign.nl",
    "subject": "PROOFBRIDGE T{tier} {payment_txid}",
    "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"
  },
  "response": {
    "transport": "email, reply to the sender",
    "schema": "https://proofbridge.nl/schema/response.schema.json"
  },
  "lifecycle": {
    "states": [
      {
        "id": "submitted",
        "meaning": "Email received, payment not yet seen."
      },
      {
        "id": "seen",
        "meaning": "Payment seen and request read."
      },
      {
        "id": "input_required",
        "meaning": "Questions sent back; work waits for the answers."
      },
      {
        "id": "working",
        "meaning": "Accepted; work in progress until the agreed date."
      },
      {
        "id": "completed",
        "meaning": "Delivered with a verdict or problem statement."
      },
      {
        "id": "declined",
        "meaning": "Not taken, with a reason from the decline list."
      }
    ],
    "reply_window_days": 7,
    "reply_window_rule": "Calendar days from the moment the payment is seen.",
    "public_status": "https://proofbridge.nl/backlog.json, for requests with public_backlog_ok true"
  },
  "tiers": [
    {
      "tier": 1,
      "minimum_sats": 5000,
      "gets": "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.",
      "performed_by": "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.",
      "name": "Ask my agent"
    },
    {
      "tier": 2,
      "minimum_sats": 50000,
      "gets": "Dennis reads it himself. Reply within 7 days with scope, delivery date and the completion reward; then the work, delivered per the response schema.",
      "performed_by": "Dennis Jansen, in person",
      "automation": "none",
      "name": "Ask me"
    }
  ],
  "fees": {
    "attention_fee_refunded": false,
    "tier_1_counts_toward_tier_2": true,
    "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": {
    "rails": [
      {
        "rail": "onchain",
        "address": "bc1p4zucan5kv5kl0x6hf5agemklvr86j9l3wnt9zqtnygpfc70494sqgxukty",
        "address_type": "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."
      },
      {
        "rail": "lightning",
        "status": "planned: one invoice per request, sent by email from his own node; the invoice hash binds the request. No public endpoint.",
        "counts_when": "The invoice is settled."
      }
    ],
    "address": "bc1p4zucan5kv5kl0x6hf5agemklvr86j9l3wnt9zqtnygpfc70494sqgxukty",
    "rail": "bitcoin on-chain (lightning planned)",
    "address_type": "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."
  },
  "trust": {
    "accountable_human": "Dennis Jansen",
    "address_ownership": {
      "method": "BIP-322 signed message",
      "message": "proofbridge.nl info@interactiondesign.nl",
      "signature": null,
      "status": "pending: to be signed by Dennis with the key of the address"
    },
    "identity_links": "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": "Computed from the public backlog at build time; see stats."
  },
  "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"
  ],
  "status": "Proof of concept since 2026-10-20.",
  "examples": [
    {
      "task_type": "underlying_problem",
      "from_the_field": "Elderly care, field research",
      "request": {
        "task_type": "underlying_problem",
        "question": "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.",
        "context": "Some of the people are already placed in care homes. The funding also requires work with elderly still living at home.",
        "principal": {
          "name": "Example organisation",
          "kind": "organisation",
          "email": "ops@example.nl",
          "agent": "procurement-agent"
        },
        "deadline": "2026-11-30",
        "tier": 2,
        "payment_txid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "public_backlog_ok": true,
        "request_id": "REQ-UNDERLYING-0001"
      },
      "response": {
        "payment_txid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "status": "completed",
        "task_type": "underlying_problem",
        "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.",
        "asked_versus_needed": "Asked: an app for the elderly. Needed: one employee responsible for one flat, with an app for the employee only.",
        "findings": [
          {
            "statement": "The elderly living at home were not good at mobiles and apps.",
            "evidence": [
              {
                "type": "interview",
                "ref": "interviews with elderly still living at home"
              }
            ]
          }
        ],
        "limits": [
          "Not checked: the funding's rules on how the money may be spent."
        ],
        "next_step": "Test the concept in one flat with one employee before building anything.",
        "accountable_human": {
          "name": "Dennis Jansen",
          "role": "UX researcher"
        },
        "delivered_at": "2026-11-20"
      }
    },
    {
      "task_type": "ground_truth_check",
      "from_the_field": "Healthcare, field research",
      "request": {
        "task_type": "ground_truth_check",
        "question": "Are our AI models for dietitians based on the right data?",
        "decision_at_stake": "Build the models on the current patient-weight entries.",
        "artefact_text": "Dataset: patient weight over time, one value per entry.",
        "context": "The task was app screens for dietitians; the models are trained on the entries the app collects.",
        "principal": {
          "name": "Example health company",
          "kind": "organisation",
          "email": "data@example.nl"
        },
        "deadline": "2026-11-30",
        "tier": 2,
        "payment_txid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "request_id": "REQ-GROUND-0001"
      },
      "response": {
        "payment_txid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "status": "completed",
        "task_type": "ground_truth_check",
        "verdict": "cannot_determine",
        "findings": [
          {
            "statement": "A patient's weight over time has many input points: doctor, at home, nurse, morning, afternoon. The entries do not say which.",
            "evidence": [
              {
                "type": "field_observation",
                "ref": "how the weight is measured in practice"
              }
            ]
          }
        ],
        "limits": [
          "The models themselves were not checked, only the data they are built on."
        ],
        "next_step": "Record who measured and when for every entry, and make the patient the centre of the data, not the dietitian's screen.",
        "accountable_human": {
          "name": "Dennis Jansen",
          "role": "UX researcher"
        },
        "delivered_at": "2026-11-20"
      }
    },
    {
      "task_type": "ai_output_review",
      "from_the_field": "Legal, architecture",
      "request": {
        "task_type": "ai_output_review",
        "question": "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.",
        "principal": {
          "name": "Example architect",
          "kind": "person",
          "email": "arch@example.nl"
        },
        "deadline": "2026-11-15",
        "tier": 1,
        "payment_txid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "artefact_text": "[the AI summary and the 60-page document, pasted as text]",
        "request_id": "REQ-REVIEW-0001"
      },
      "response": {
        "payment_txid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "status": "completed",
        "task_type": "ai_output_review",
        "verdict": "does_not_hold",
        "findings": [
          {
            "statement": "The summary sounded legit. Checked against the document, the referenced paragraphs were off.",
            "location": "the cited paragraph numbers",
            "evidence": [
              {
                "type": "document_reference",
                "ref": "the source document, cited paragraphs compared one by one"
              }
            ]
          }
        ],
        "limits": [
          "Not a legal opinion. The content of the law was not judged, only whether the summary matches its source."
        ],
        "next_step": "Do not rely on the summary. Have the document read by a lawyer.",
        "accountable_human": {
          "name": "Dennis Jansen",
          "role": "UX researcher"
        },
        "delivered_at": "2026-11-10"
      }
    }
  ],
  "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.",
    "outputs_terms": "An answer is for the principal's decision. No resale, no training on it."
  },
  "site": "https://proofbridge.nl/",
  "updated": "2026-10-20",
  "stats": {
    "requests_listed": 0,
    "completed": 0,
    "declined": 0,
    "in_progress": 0,
    "rewards_paid": 0,
    "computed_on": "2026-10-20"
  },
  "contract_page": "https://proofbridge.nl/agents/",
  "backlog": "https://proofbridge.nl/backlog.json",
  "background": {
    "value_propositions": [
      {
        "title": "The underlying problem.",
        "text": "The wrong people often have the mandate for the solution, without understanding the underlying problem. When somebody starts with a solution, I listen, and come back with the underlying issue by asking the why of the direction.",
        "seen_in_the_field": "Elderly care. The funding was for an app. In the field, the elderly were not good at mobiles and apps. The concept without an app was not built out: the money was spent for the wrong reasons."
      },
      {
        "title": "Knowledge is not always truth.",
        "text": "Intelligence and reasoning are useless when there is no validated real-world data, validated for its purpose. AI doesn't validate; AI rephrases.",
        "seen_in_the_field": "Healthcare. The task was app screens for dietitians. The question that mattered: are your AI models based on the right data? A patient's weight has many input points: doctor, home, nurse, morning, afternoon."
      },
      {
        "title": "The bullshit, caught from an expert point of view.",
        "text": "Only an expert can audit the output. Outside your expertise, everything keeps sounding reasonable.",
        "seen_in_the_field": "Legal. An architect's AI summary of a 60-page document sounded legit. The referenced paragraphs were off. It would never stand before court."
      }
    ],
    "you_are_hiring": "A human: Dennis Jansen, UX researcher and service designer. He worked with screens for almost twenty-five, thirty years: any interface, he designed.",
    "what_he_does": "Knowledge is not always truth. It needs to be validated and calibrated with every project that uses AI, and it needs expertise to be translated into the work that needs to be done, agentic or by humans.",
    "where_the_expertise_comes_from": [
      "Almost twenty-five, thirty years of designing interfaces and software, and finding the underlying problem in organisations.",
      "Building a sovereign second brain: a recording studio of his expertise from the past 30 years. As for now he has been feeding the system and building the system to understand what it is capable of, and what makes him irrelevant."
    ],
    "method": [
      "Real-life experiencing: seeing the actual product at work, seeing the problems and spotting the underlying issues while using the product, the platform or seeing the customer interaction.",
      "Interviews, to separate the must-haves from the nice-to-haves.",
      "There is always a translation between the stakeholder that thinks what is needed and the actual user that can express or audit what is needed.",
      "The output is audited by the actual stakeholder for whom the problem occurs. I just translate."
    ],
    "evidence_from_the_field": [
      {
        "domain": "Elderly care",
        "start": "Funding of 1 million euros, to help long-term unemployed people work in the care of the elderly. They already decided they probably needed a mobile phone app.",
        "saw": "I asked if I could interview the people they already deployed and the elderly still living independently at home. The elderly were indeed not good at mobiles and apps. They wanted to be self-sufficient.",
        "after": "I created a concept called zorg concierge: no app for the elderly, only an app for the employee working in the flat. It was not built out. They scaled the elderly care homes solution instead."
      },
      {
        "domain": "Healthcare",
        "start": "The task was optimising app screens for dietitians.",
        "saw": "It was not so much the dietitian that needed the right app or platform to enter data, but making the patient the centre of the concept.",
        "after": "My follow-up question: how do you know if your AI models are based on the right data (entries)? A patient's weight over time has so many input points: doctor, at home, nurse, morning, afternoon."
      },
      {
        "domain": "Water authority",
        "saw": "As far as I have seen or understood, the permit officer is there to fill a system with data. Ask what happens with a data point and it is not about the purpose of the data point but the place it goes next: department x, y, z.",
        "after": "The purpose of the data point, how it can be applied, when, why and in what capacity, is not clear. (Translated from Dutch.)"
      },
      {
        "domain": "Legal, architecture",
        "start": "An architect used AI to summarise a 60-page legal document. The output seemed legit.",
        "saw": "He checked the output against the referenced paragraphs and they were off.",
        "after": "When brought to a legal case it wouldn't hold."
      },
      {
        "domain": "Building with AI",
        "saw": "The failure that keeps coming back is my inability to interface with the chat in such a way that I can draw the outline of what I expect it to do and how I expect the system to work. There are constant misalignments. And I noticed the lock-in of the different models, and the direction it is heading.",
        "after": "As for now I have just been feeding the system and building the system to understand what it is capable of."
      }
    ],
    "why_a_human": [
      "AI is the calculator. It needs my numbers.",
      "8 hours of work can, at best, represent 100 hours of work, because it is aimed at value."
    ],
    "more": [
      "https://interactiondesign.nl/setup/",
      "https://interactiondesign.nl/index.md"
    ]
  }
}