# validate_cctp_v2_transfer

Arc CCTP v2 Transfer Validator: OpenChainGraph compute node (settlement_mandate). Regulatory deadline: 2026-07-31 (CCTP v1 manual relay phase-out begins 31 Jul 2026 (Circle announcement). All v1 integrations must migrate.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-42-arc-fit-diagnostic. Open at: https://ainumbers.co/chaingraph/art-47-arc-cctp-transfer.html FV-status (published/proven/still-trusted for this spec): /fv-status/8b5ae30d812cd234cfb6068c4ce2022f01d10f2a358979b0f0d73421e09d2543.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

Agent View of the PolicyLayer registry record for `validate_cctp_v2_transfer`. HTML page: https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/validate-cctp-v2-transfer

## Facts

- Tool: `validate_cctp_v2_transfer`
- Server: Ainumbers Mcp Apps (`postoaklabs/ainumbers-mcp-apps`) — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps.md
- Homepage: https://github.com/PostOakLabs/ainumbers-mcp-apps
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: https://ainumbers.co
- Server rate-limited: no
- Parameters: 4
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `compute` | string | no | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always ret |
| `parent_hashes` | array | no | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). |
| `parent_tool_ids` | array | no | tool_id values matching parent_hashes, in the same order. |
| `policy_parameters` | object | no | Input parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "serv |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "validate_cctp_v2_transfer",
    "arguments": {}
  }
}
```

## Why validate_cctp_v2_transfer is rated Low

Validates CCTP v2 transfer parameters deterministically; no funds moved, read-only validation.

From the tool's own definition: "Validator, deterministic, read-only, no auth, zero PII"

## Use case

AI agents call validate_cctp_v2_transfer to retrieve information from Ainumbers Mcp Apps without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Ainumbers Mcp Apps:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "validate_cctp_v2_transfer": {}
  }
}
```

## Other tools on Ainumbers Mcp Apps (687)

- `agentic_mandate_sandbox` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/agentic-mandate-sandbox.md
- `allocate_ihb_interest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/allocate-ihb-interest.md
- `amortize_asc606_commissions` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/amortize-asc606-commissions.md
- `anchor_document_integrity` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/anchor-document-integrity.md
- `apply_climate_scenario` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/apply-climate-scenario.md
- `assemble_aiuc1_evidence_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/assemble-aiuc1-evidence-pack.md
- `assemble_ocg_evidence_bundle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/assemble-ocg-evidence-bundle.md
- `attest_bulk_disbursement_integrity` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-bulk-disbursement-integrity.md
- `attest_calc_agent_independence` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-calc-agent-independence.md
- `attest_daily_reconciliation` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-daily-reconciliation.md
- `attest_margin_call_lifecycle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/attest-margin-call-lifecycle.md
- `bind_attested_subject` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/bind-attested-subject.md
- `build_226j_response_evidence_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-226j-response-evidence-pack.md
- `build_agent_test_evidence` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-agent-test-evidence.md
- `build_agent_traffic_policy` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-agent-traffic-policy.md
- `build_ai_conformity_pack` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ai-conformity-pack.md
- `build_ai_workpaper_record` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ai-workpaper-record.md
- `build_allocation_decision_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-allocation-decision-receipt.md
- `build_amortization_schedule` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-amortization-schedule.md
- `build_ap2_cartmandate_hashchain` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-ap2-cartmandate-hashchain.md
- `build_cbcr_report` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-cbcr-report.md
- `build_chaingraph` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-chaingraph.md
- `build_claim_dispute_bundle` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-claim-dispute-bundle.md
- `build_conditional_relief_collateral_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-conditional-relief-collateral-receipt.md
- `build_conversion_receipt` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-conversion-receipt.md
- `build_digest_manifest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-digest-manifest.md
- `build_disclosure_manifest` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-disclosure-manifest.md
- `build_dora_roi_register` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-dora-roi-register.md
- `build_dual_control_certification` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-dual-control-certification.md
- `build_etr_possession_chain` — Execute — https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps/build-etr-possession-chain.md
- …and 657 more: https://policylayer.com/tools/postoaklabs-ainumbers-mcp-apps.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=postoaklabs-ainumbers-mcp-apps · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/postoaklabs-ainumbers-mcp-apps
