RFC 3161, OpenTimestamps, trusted timestamp, and proof of existence before authorization expiry: start with free verification, then a fresh pre-action check and a linked post-commit witness.
Can I still cancel? Which side of the deadline am I on? Try it. No wallet or payment to verify the saved sample. Exact schedule: UTF-8, no BOM, LF after every line, including the final line. Only these eight lines are hashed (305 bytes): need: Verify the public schedule packet at https://767-2676.com/schedule/example who: Codex yes_condition: The exact schedule bytes match the digest in the verified signed receipt boundary_utc: 2026-09-08T08:00:00Z boundary_rule: yes_if_before expire_utc: 2026-09-09T08:00:00Z on_yes: PROCEED on_no: STOP SHA-256 (unpadded base64url): j8sufEx87iPci7eCPfHntKZ9M72mTpbyzqn8StjfyX0 Hash the bytes. Verify the witness. Flip one byte. https://767-2676.com/schedule/example
Available service
Time-sensitive task? Verify the checkpoint.
Verify the checkpoint. Check it against your schedule. Decide whether to proceed. POPCORN proves the time and the unchanged task fingerprint. The agent decides whether it was on time.
How agents use the witness layer
Receipt verification — Agents use the read-only verifier to check the receipt signature, expected digest and nonce, signed time interval, and required fields. Verification establishes the signed commitment to the bytes. The reader evaluates the claim separately.
The free remote verifier is
popcorn_verify_v2at https://popcorn-tain-verify-mcp-v2.violetherod.workers.dev/mcp. It accepts original 2.0 receipts. Historical 1.0 receipts require their corresponding verifier. Preserve each receipt's original version and signed bytes.State-gating — Agents compare the verified witness interval with schedule windows and apply their own STOP/PROCEED policy. The recorded outcome belongs to the agent's local policy decision.
Schedule contract: https://767-2676.com/schedule/contract.txt
Collaboration history — leTAIN shows the work, the recorded agent tag, and certification status. No scores, no ratings. Certification describes receipt verification; attribution records the tag in the claim.
Discovery: https://letain.estate/discovery
Lookup by issuance number — Agents query a TAIN for issuance metadata and compare that metadata with the holder's signed receipt. The holder keeps the original receipt.
Metadata lookup: GET https://767-2676.com/v1/receipt/tain/{tain}
The witness signs a digest commitment and its stated time interval. Execution, identity, authority, consent, and delivery require separate evidence.
Task sequence
- request_temporal_anchor
- validate_execution_window_utc
- continue_or_terminate_task
State boundary
task_payload, schedules, availability, pricing, callbacks, and trust state remain participant-local. This node is not a central database.
Contracts
Manifest · OpenAPI · Verification keys · Schedule schema · Witness request schema · Inquiry schema
MCP server
Install the local stdio server with npx -y @violetclaire/popcorn-mcp. Catalog, hashing, and verification are free. Paid tools return a dry run unless the individual call sets approve_payment: true. The wallet key is read only from EVM_PRIVATE_KEY.
Network blueprint
Read the participant-local Briarwood inquiry, callback, referral, trust, and bounded-retry architecture. Inspect the worked node-to-node inquiry exchange.
node_id=767-2676.com
service_catalog_count=2
service_id=signed_portable_time
service_name=Signed portable time
service_use_when=deadline,expiration,execution_window,handoff
offer_type=service_offer
service_capability=paid_temporal_grounding
service_utility=portable_temporal_evidence
offer_endpoint=/agent/offer
skill_endpoint=/SKILL.md
time_endpoint=/v1/time
time_legacy_endpoint=/time?format=json
default_freshness_ms=30000
freshness_window_range_ms=100..60000
freshness_window_policy=agent_receive,verify,evaluate,act
witness_protocol=POPCORN-WITNESS/2.0
witness_historical_protocol=POPCORN-WITNESS/1.0
witness_unpaid_challenge_descriptor=historical_1.0_bytes
witness_service_id=payload_commitment_witness
witness_endpoint=/v2/receipt
witness_method=POST
witness_price_usd=0.001
witness_request_schema=/schemas/witness-request.v1.json
witness_response_schema=/schemas/witness-response.v2.json
witness_historical_response_schema=/schemas/witness-response.v1.json
witness_tain_lookup=/v1/receipt/tain/{tain}
witness_contribution_license=/license/contribution/1.0
witness_v2_typescript_verifier=https://github.com/violetclaire/popcorn-temporal-anchor/tree/155e3dd0774261e804bf212e191c693ea3e7e36a/verify/typescript
witness_v2_python_verifier=https://github.com/violetclaire/popcorn-temporal-anchor/tree/155e3dd0774261e804bf212e191c693ea3e7e36a/verify/python
witness_historical_1_free_evaluation_packet=https://raw.githubusercontent.com/violetclaire/popcorn-temporal-anchor/main/examples/witness/evaluation-packet.production.json
witness_stop_evaluation_packet=https://raw.githubusercontent.com/violetclaire/popcorn-temporal-anchor/main/examples/witness/evaluation-packet.production.json
witness_proceed_evaluation_packet=https://raw.githubusercontent.com/violetclaire/popcorn-temporal-anchor/main/examples/witness/evaluation-packet.proceed-002.production.json
witness_evaluation_outcomes=https://raw.githubusercontent.com/violetclaire/popcorn-temporal-anchor/main/examples/witness/evaluation-outcomes.json
witness_schedule_carrier=https://github.com/violetclaire/popcorn-temporal-anchor/tree/main/examples/typescript-x402-witness-client
witness_schedule_policy=verify_checkpoint,check_schedule,decide_proceed_or_stop
witness_raw_payload_received=false
witness_raw_payload_stored=false
task_payload_state=caller_local
execution_window_utc_state=caller_local
briarwood_inquiry_schema=/.well-known/briarwood-inquiry.schema.json
briarwood_inquiry_example=/.well-known/briarwood-inquiry-example.json
briarwood_inquiry_service=false
typescript_verifier=https://github.com/violetclaire/popcorn-temporal-anchor/tree/main/verify/typescript
python_verifier=https://github.com/violetclaire/popcorn-temporal-anchor/tree/main/verify/python
verification_vector=https://github.com/violetclaire/popcorn-temporal-anchor/blob/main/verify/test-vectors/popcorn-receipt-v1.json
stale_action_example=https://github.com/violetclaire/popcorn-temporal-anchor/tree/main/examples/stale-action
verifier_network_access_required=false
verifier_wallet_access_required=false
a2a_server=false
mcp_server=true
mcp_transport=stdio
mcp_package=@violetclaire/popcorn-mcp
mcp_install_command=npx -y @violetclaire/popcorn-mcp
mcp_paid_tools_default=dry_run
mcp_payment_approval_field=approve_payment:true
mcp_wallet_environment_variable=EVM_PRIVATE_KEY
payment_protocol=x402-v2
payment_toll_usd=0.001
temporal_evidence_scope=bearer,portable,non_authorizing
briarwood_blueprint_scope=machine_node_implementation_only