OpenChainGraph Suite · CONTRACT A3 · arch #5

Vendor Onboarding UBO Screening Check

Note (dated 2026-08-04): a chain composes independent computations performed in an analytical order. No step's output is carried into the next step by the execution model; each step computes from its own declared inputs. This is true of every chain on this site, including chains whose per-step copy below reads as a data handoff.

Screen a vendor's ultimate beneficial owners in four independent stages: first compute 25% UBO ownership from caller-supplied ownership structure under the FinCEN Customer Due Diligence rule (ART-268, bank KYB, not CTA/BOI beneficial ownership reporting and not the OFAC 50% rule); then screen the id

Note: all ownership structures, screening lists, and evidence facts are caller-supplied inputs, never inferred by the kernel. The 25% computation applies the FinCEN Customer Due Diligence rule for bank KYB; it is not CTA/BOI beneficial ownership reporting and not the OFAC 50% rule. Screening runs against a caller-supplied private test list, never live sanctions data, and the screened list stays private. Findings are arithmetic findings, never compliance determinations.

OpenChainGraph · 4 Steps compliance mandate · FinCEN CDD Hash-Anchored §4 chain_depth:4 Client-Side · Zero PII
Chain Topology (linear): Vendor Onboarding UBO Screening Check → Session Receipt
§4 Execution Hash · Chain Definition Anchor
execution_hash:computing…
Chain Stages · 4 Steps
1 ROOT node
FinCEN CDD 25% Beneficial Ownership Attribution art-268-compute-cdd-ownership-25pct
Computes 25% ultimate beneficial owners from caller-supplied ownership structure under the FinCEN Customer Due Diligence rule (bank KYB; not CTA/BOI reporting, not the OFAC 50% rule)
MCP Call · compute_cdd_ownership_25pct
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "compute_cdd_ownership_25pct",
    "arguments": {}
  },
  "id": 1
}
↓
2 D2 node
Private-Input Sanctions Screen art-413-screen-sanctions-private
Screens caller-supplied persons against a caller-supplied private test list (never live sanctions data; the screened list stays private)
MCP Call · screen_sanctions_private
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "screen_sanctions_private",
    "arguments": {}
  },
  "id": 1
}
↓
3 D3 node
Sanctions Screening Evidence Pack art-585-sanctions-screening-evidence-pack
Assembles the sanctions screening evidence pack from caller-supplied run facts
MCP Call · build_sanctions_screening_evidence_pack
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "build_sanctions_screening_evidence_pack",
    "arguments": {}
  },
  "id": 1
}
↓
4 TERMINAL · D4 node
Agent-Action Audit-Trail Aggregator cry-05-agent-action-audit-trail-aggregator
Produces session_receipt_root, the Merkle root over the run's execution_hashes (final stage)
MCP Call · aggregate_execution_receipts
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "aggregate_execution_receipts",
    "arguments": {}
  },
  "id": 1
}
Export Artifacts
Download the §4 chain definition artifact (hash-anchored composite JSON) or the §13.11 W3C Verifiable Credentials view. Both derive from the chain definition; no new hash is minted. Available after hash computation.

Ask your agent

Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this whole workflow on the server and check one field that answers a real question.

Question: Which natural persons own 25% or more of this vendor through its ownership tiers?
Run the AINumbers MCP tool `run_chain` with {"chain":"vendor-onboarding-ubo-screening-check"} and read `art-268-compute-cdd-ownership-25pct.ownership_tiers`.
Re-run with `inputs` for `art-268-compute-cdd-ownership-25pct`, reusing the values that result echoed, with `ownership_tiers` changed so add a holding company tier above the vendor. Compare the same field.
Verify: call `verify_execution_hash` (https://mcp.ainumbers.co/mcp) with `claimed_hash` set to `composite_execution_hash` and the full `composite_artifact`.
Ledger, for a human re-check: https://ledger.ainumbers.co/
PII rule: send synthetic or anonymised inputs only. The MCP server runs these kernels and logs no payloads.
Chain page: https://ainumbers.co/chaingraph/chains/vendor-onboarding-ubo-screening-check.html