Skip to content

Render ZAP1 attestation memos in transaction details#1680

Open
Zk-nd3r wants to merge 1 commit into
zodl-inc:mainfrom
Zk-nd3r:zap1-memo-parser
Open

Render ZAP1 attestation memos in transaction details#1680
Zk-nd3r wants to merge 1 commit into
zodl-inc:mainfrom
Zk-nd3r:zap1-memo-parser

Conversation

@Zk-nd3r

@Zk-nd3r Zk-nd3r commented Apr 5, 2026

Copy link
Copy Markdown

ZAP1 memos in shielded transactions currently display as raw hex. This PR parses them into typed event cards.

What it does:

  • Detects ZAP1 prefix (ZAP1: or 0x5a41503109) in memo content
  • Parses event type byte into human-readable name (21 types)
  • Extracts structured fields (wallet hash, amount, timestamp, serial number)
  • Renders as a typed event card instead of hex dump

Files:

  • Zap1MemoParser.swift - parser (matches the Kotlin implementation in zodl-android PR #2173)
  • Zap1MemoParserTests.swift - XCTest coverage
  • 1-line patch to TransactionDetailsStore.swift at line 434

Verify any attestation: frontiercompute.cash/verify.html

Protocol spec: frontiercompute.cash/protocol.html
ZIP 1243: github.com/zcash/zips/pull/1243

Parse ZAP1 prefix in shielded memo content,  extract typed event
fields,  display as formatted card instead of raw hex.
@Zk-nd3r

Zk-nd3r commented Apr 5, 2026

Copy link
Copy Markdown
Author

Cross-platform conformance suite added at github.com/Frontier-Compute/zap1/tree/main/contrib/zodl-conformance. Same 20+ test vectors for both platforms.

Swift parser passes all vectors. Matches the Kotlin implementation in zodl-android #2173 exactly. Handles null-byte padded memos (real Zcash 512-byte format).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant