### Terms and Conditions
- [x] I agree to the [Grant Agreement](https://9ba4718…c-5c73-47c3-a024-4fc4e5278803.usrfiles.com/ugd/9ba471_f81ef4e4b5f040038350270590eb2e42.pdf) terms if funded
- [x] I agree to [Provide KYC information](https://9ba4718c-5c73-47c3-a024-4fc4e5278803.usrfiles.com/ugd/9ba471_7d9e73d16b584a61bae92282b208efc4.pdf) if funded above $50,000 USD
- [x] I agree to disclose conflicts of interest
- [x] I agree to adhere to the [Code of Conduct](https://forum.zcashcommunity.com/t/zcg-code-of-conduct/41787) and [Communication Guidelines](https://forum.zcashcommunity.com/t/zcg-communication-guidelines/44284)
- [x] I understand all milestone deliverables will be validated and accepted by their intended users or their representatives, who will confirm that the deliverables meet the required quality, functionality, and usability for each user story.
- [x] I agree that for any new open-source software, I will create a `CONTRIBUTING.md` file that reflects the high standards of Zcash development, using the [`librustzcash` style guides](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#styleguides) as a primary reference.
- [x] I understand when contributing to existing Zcash code, I am required to adhere to the project specific contribution guidelines, paying close attention to any [merge](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#merge-workflow), [branch](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#branch-history), [pull request](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#pull-request-review), and [commit](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#commit-messages) guidelines as exemplified in the `librustzcash` repository.
- [x] I agree to post request details on the [Community Forum](https://forum.zcashcommunity.com/c/grants/33)
- [x] I understand it is my responsibility to post a link to this issue on the [Zcash Community Forums](https://forum.zcashcommunity.com/c/grants/33) after this application has been submitted so the community can give input. I understand this is required in order for ZCG to discuss and vote on this grant application.
### Application Owners (@Octocat, @Octocat1)
@Zecbit-dev
### Organization Name
ZecBit
### How did you learn about Zcash Community Grants
Through the Zcash community forum while researching the state of ZSA tooling, and from other teams building in the ecosystem.
### Requested Grant Amount (USD)
$48,000
### Category
Non-Wallet Applications
### Project Lead
```project-lead.yaml
Name: ZecBit (pseudonymous maintainer)
Role: Project Lead and sole maintainer
Background: Built the ZecBit stack end to end: issuance tooling over the ZSA branches of the Zcash core libraries, the ZMD-1 metadata standard, a key-less asset indexer, shielded payment intake via block scanning with trial decryption, and the marketplace front end. Author of the ZecBit technical specification v1.0, a 3,200-line document covering the asset model, metadata standard, registry, indexing, wallet layer and non-custodial trading architecture.
Verifiable output to date, all on the public ZSA test network:
- Ten unique finalized ZSAs (supply 1, finalize = 1) issued in a single transaction, confirmed at height 251. txid 611ddfd4459e813b86b935fc05217f929e29c37cdc96ba8f23fc647e30c26317, node https://dev.zebra.zsa-test.net
- ZMD-1 in use in those assets' descriptions
- A public verifier that recomputes the asset description hash and locates it in the issuance transaction against a node ZecBit does not operate
- A live public allowlist and quest application with review tooling
- Working wallet integration with Noir Wallet using signature-based authentication
Operating pseudonymously. The requested amount is below the $50,000 KYC threshold; identity will be provided to FPF if that changes.
Responsibilities:
- Technical direction and protocol-level decisions
- Implementation of the indexer, registry and metadata tooling
- Specification work and upstream coordination with wallet teams
- Monthly reporting to ZCG and the community
```
### Additional Team Members
```team-members.yaml
None or N/A.
ZecBit is currently a single-maintainer project. Design and front-end contract work is engaged per task rather than salaried, and is budgeted under service costs rather than compensation.
```
### Project Summary
ZecBit is a marketplace for non-fungible Zcash Shielded Assets with a public catalog and private ownership. This grant funds the open-source layer underneath it: the ecosystem's first ZSA metadata standard, a key-less indexer any party can run, and shielded payment intake — the infrastructure that has to exist before anyone can build NFTs on Zcash.
### Project Description
Zcash Shielded Assets (ZIP 227 issuance, ZIP 226 transfer) make it possible to issue and move non-fungible assets inside the Orchard shielded pool. The protocol is complete, independently audited, and deployed on a dedicated public test network. What does not exist is anything above it: no metadata standard, no indexer, no wallet display convention, no venue.
ZecBit builds that layer. The design is protocol-minimal by choice: no new chain, no bridge, no wrapped assets, no smart-contract layer. Every claim the system makes about an asset is either read from the Zcash chain or verifiable offline against chain data.
Three properties define the system.
**A public catalog with private ownership.** Every other collectibles platform exposes the full ownership graph — wallets, holdings, purchase history, social connections — by construction. On ZecBit the catalog is fully public and indexable without any key, while ownership and transfer stay inside the shielded pool. There is no owner count, no holder list and no portfolio lookup, because those are exactly the queries the venue exists to make impossible.
**Identity derived, not assigned.** A ZSA asset ID is not a database row. It is derived from the issuer key and a BLAKE2b-256 hash of the asset description, so the identity of every piece is a mathematical consequence of its inputs. Assets locked in now can be re-issued from the same inputs when ZSA reaches mainnet, preserving that identity exactly — no bridge, no wrapped NFT, no snapshot migration anyone has to trust.
**Nothing that requires trusting the operator.** The verifier page hashes a description in the browser and looks for the result in the issuance transaction on whichever node the visitor chooses. The indexer is deterministic and key-less, so anyone can run it and get the same catalog. Where the design does require trust — the venue briefly holding funds during settlement, until ZIP 228 enables atomic swaps — the specification says so plainly and the interface repeats it.
The marketplace is already built and running against the public ZSA test network; this grant does not fund it. What it funds is the work that turns internal tooling into ecosystem infrastructure: publishing ZMD-1 as an open standard with a reference implementation wallets can adopt, open-sourcing the indexer so the catalog is reproducible by third parties, and putting the shielded payment path through external security review before anyone's funds depend on it.
### Proposed Problem
**Nothing can display a Zcash Shielded Asset today, and that is by design.**
ZIP 227 puts only a 32-byte hash of the asset description on chain, and explicitly instructs wallets *not* to show the raw description to users as a name — the anti-phishing rationale being that any issuer can put "Official Wrapped ZEC" in that field. The ZIP anticipates petname systems and trusted registries as the mechanisms that solve this, and defines neither.
That leaves four concrete gaps.
**1. No metadata standard.** There is no agreed way to bind an asset to a name, an image, or traits. Every wallet that adds ZSA support will invent its own convention, and users will be phished through asset names in the interval. At the time of writing no ecosystem metadata standard for ZSAs exists.
**2. No indexer.** The chain can confirm or refute a candidate answer by hashing, but cannot answer "what assets exist?". Without something that walks issuance bundles and builds a catalog, there is nothing to browse — and if only one party can produce that catalog, it is a catalog you have to trust.
**3. No payment path that works when you cannot see the payer.** Ordinary payment processing assumes visible amounts and addresses. Shielded intake requires block scanning with trial decryption against an incoming viewing key, memo-tag matching, confirmation handling and reconciliation. Every ZSA application that accepts payment will otherwise rebuild it, and each will get the edge cases wrong independently.
**4. No venue.** With the three above missing, there is nowhere to issue, discover or trade a ZSA collectible at all.
The consequence is timing. ZSA is complete and audited but not yet activated on mainnet. When it activates, the ecosystem will have a working asset protocol and nothing built on top of it — and whoever wants to launch will start from an empty repository. The window to have this layer ready is now, before activation, not after.
### Proposed Solution
ZecBit closes the gap with four components. Three of them are usable by anyone regardless of whether they ever touch our marketplace, and those three are what this grant funds.
**1. ZMD-1 — an open metadata standard for ZSAs.** Specified and already in use in the assets issued on testnet. An asset description takes the form `zmd1|<collection>|<index>|<cid>|<contentHash>`: collection, index, IPFS CID and content hash. The asset identity is derived from that string, so verification is a hash comparison anyone can perform offline, and the artwork can be checked against the content hash. Nothing in ZMD-1 depends on ZecBit infrastructure — any wallet, indexer or marketplace may implement it against any registry, including none of ours. It will be published as a standalone specification with a reference implementation and submitted to the community for review.
**2. A key-less, deterministic indexer.** Walks issuance bundles, derives asset identities, resolves ZMD-1 metadata and produces the public catalog. No viewing keys, no privileged access: two people running it against the same chain get the same result. This is what makes the catalog reproducible rather than something you take our word for.
**3. Shielded payment intake.** Block scanning over lightwalletd with trial decryption against an incoming viewing key, matching payments by memo tag, holding for confirmations, and surfacing unmatched payments to a human rather than dropping them. Someone who paid and got nothing is a person out of pocket, so that path is explicit rather than incidental.
**4. The marketplace itself.** Catalog, collection and item pages, on-chain proof panels, a minting studio, signature-based wallet authentication, and a public verifier. Already built and running; included here for context, not as a funded deliverable.
Deliverables 1–3 will be released under a permissive open-source license with contribution guidelines. If they become the way NFTs are displayed in Zcash wallets generally, that is a better outcome for the ecosystem than owning them.
### Solution Format
Production software plus a published specification.
**Open-source libraries and specification**
- ZMD-1 specification document, versioned and submitted for community review
- Reference implementation: given an asset ID, resolve and verify metadata and return renderable data. Intended for wallet integration, with no dependency on ZecBit services
- Deterministic key-less indexer, runnable by any third party
- Shielded payment intake tooling: block scan, trial decryption, settlement, reconciliation
**Application**
- Public marketplace: catalog, collection pages, item pages with proof panels
- Minting studio for batch issuance with privacy-correct patterns
- Independent verifier page requiring no trust in the operator
- Signature-based wallet authentication, with spending keys and recovery phrases refused outright
**Documentation**
- Integration guide for wallets adopting ZMD-1
- Operator guide for running the indexer independently
- Technical specification v1.0 (3,200 lines, already written) kept current
- CONTRIBUTING.md on every published repository, following the librustzcash style guides
### Dependencies
**Protocol**
- ZIP 227 (issuance) and ZIP 226 (transfer): complete, audited, live on the public ZSA test network. All work in this grant targets them.
- ZIP 228 (atomic swaps): draft, no activation date. Non-custodial settlement is blocked on it. Stated as a dependency rather than assumed away; no milestone here depends on it.
- ZSA mainnet activation: outside our control, and not required by any milestone in this grant.
**Technical**
- ZSA branches of the Zcash core libraries, for issuance and transfer
- lightwalletd for compact block streaming
- QEDIT's Zebra fork — the public ZSA test network
- IPFS with a pinning provider for content-addressed media
**Collaboration**
- Wallet teams for ZMD-1 review and adoption. Integration with Noir Wallet is already working end to end. Zashi and YWallet are the teams we want at the table for the standard, and their engagement is a dependency we cannot unilaterally satisfy.
- The ZSA protocol team at QEDIT, for correctness review of issuance patterns
- An external security reviewer for the payment and signing paths
- Community review of ZMD-1 before it is treated as stable
### Technical Approach
**Asset layer.** Collections are issued as batches: one issuance bundle, N IssueActions, each carrying its own assetDescHash, a reference note, one value-1 note to the creator's address, and finalize = 1, all authorized by a single issueAuthSig. Atomicity matters here — a collection either exists in full or not at all, with no partially-minted state, no window for a mempool observer to front-run the remainder, and no reorganization that splits genesis across diverging histories. Measured on the public ZSA testnet: ten finalized assets in one transaction, proof generation approximately 3 seconds on a consumer CPU.
**Metadata.** ZMD-1 constructs asset_desc so that its hash commits transitively to a complete metadata document. Manifests are canonicalized with JCS (RFC 8785) and hashed with BLAKE2b-256, so the same logical document always yields the same hash regardless of serializer. Verification is: recompute the hash of the description, find it in the issuance bundle, fetch the manifest by CID, check the content hash. Every step is performable offline against a public node.
**Indexing.** Deterministic and key-less. The indexer reads issuance bundles from the chain, derives asset identities, resolves manifests, and computes the catalog and trait frequencies. Rarity is information content — the sum of -log(frequency) across traits — so a piece rare on four axes correctly outranks one rare on a single axis. Rarity is deliberately excluded from the hashed manifest, so changing the formula can never change an asset's identity.
**Payments.** Compact blocks over lightwalletd, trial decryption with an incoming viewing key, matching by memo tag. The scan cursor never advances past an unconfirmed payment; otherwise a buyer's money sits unmatched forever because nothing looks at that range again. Payments matching no order go to a review queue rather than being discarded.
**Wallet layer.** Signature-based authentication: the server issues a challenge bound to the address and a time window, the wallet signs it, the server verifies against the recovered public key. Spending keys and recovery phrases are refused outright and the refusal explains why, so anyone who pastes one learns it was exposed. There is no watch-only route — accepting a bare address would let anyone type any address and be shown what was delivered to it, which is precisely the lookup this venue exists to prevent.
**Trading.** Today: escrowed settlement with the venue briefly holding funds, disclosed at the point of purchase and on a dedicated custody page. On ZIP 228 activation: buyer and seller sign, a matcher assembles the settlement, and either both sides execute or neither does, with the marketplace never taking custody. The architecture is specified for the second case and running in the first.
### Upstream Merge Opportunities
**Repositories we work against.** ZecBit builds on the ZSA branches of the Zcash core libraries for issuance and transfer, and on lightwalletd for compact block streaming. We have not needed to fork librustzcash itself; the work sits above it.
**The most valuable upstream contribution here is not code — it is the standard.** ZIP 227 explicitly leaves the metadata question to petname systems and trusted registries it does not define, and no ecosystem metadata standard for ZSAs currently exists. ZMD-1 fills that gap for the non-fungible case and is written to be adoptable without any ZecBit infrastructure. We will publish it as a standalone versioned specification, submit it to the community forum for review, and propose it as the basis of a ZIP if the ecosystem wants one. If a different standard wins on merit, that is still a good outcome — the gap being filled matters more than whose fills it.
**Reference metadata resolver.** A small library that resolves and verifies ZMD-1 metadata from an asset ID, released under a permissive license and packaged for wallet integration. Intended to be vendored by Zashi, Noir, YWallet or anyone else, with no service dependency on us.
**Indexer.** Open-sourced so any party can reproduce the catalog independently. A catalog only one party can produce is a catalog you have to trust.
**Issuance tooling fixes.** Work against the ZSA branches has surfaced rough edges in batch issuance and asset-description handling. Where a fix is general rather than specific to our use, it will be proposed upstream to the relevant repository. We expect this to need discussion with maintainers rather than direct merges, since the ZSA branches are still moving ahead of mainnet activation.
**Timeline.** The ZMD-1 specification and reference resolver are Milestone 1, so they go out for community review at the start of the grant rather than the end — feedback then shapes the implementation instead of arriving after it. Indexer publication follows in Milestone 2.
### Hardware/Software Costs (USD)
$0
### Hardware/Software Justification
No hardware purchases or proprietary software licenses are required. Development uses existing machines and open-source tooling.
### Service Costs (USD)
$14,000
### Service Costs Justification
**Security review of the payment and signing paths — $9,000.**
The two paths where a defect costs users money are shielded payment intake (block scanning, trial decryption, settlement, confirmation handling) and wallet authentication (challenge construction, signature verification). A scoped external review of those, rather than a full-application audit, points the budget at the code that can actually lose funds. Scoping and reviewer selection begin during the startup phase so the review is booked before the code is ready for it rather than after.
**Infrastructure — $3,000.**
lightwalletd and ZSA node instances, application hosting and database for the grant period, approximately $500/month over six months. Two node instances rather than one, so a single node's downtime does not stall payment detection.
**Content-addressed storage and pinning — $1,200.**
IPFS pinning for collection media and manifests, across two independent pinning providers. Metadata that resolves through only one provider has a single point of failure, which defeats the purpose of content addressing.
**Design and front-end contract work — $800.**
Per-task contracting for interface work outside the maintainer's strengths. Budgeted as a service rather than as salary because it is genuinely engaged per task.
### Compensation Costs (USD)
$34,000
### Compensation Costs Justification
One full-time maintainer over six months at $5,667/month, totalling $34,000.
The work breaks down as:
- **ZMD-1 publication and reference implementation (1 month).** Specification document, reference resolver library, wallet integration guide, and the review cycle with wallet teams.
- **Indexer and registry (2 months).** Deterministic key-less indexing of issuance bundles, manifest resolution, trait and rarity computation, and the registry binding asset identifiers to content-addressed metadata.
- **Payment path hardening (1 month).** Confirmation handling, reorg safety, unmatched-payment review tooling, reconciliation, and preparing the code for external review.
- **Marketplace completion (1.5 months).** Minting studio, listing and offer flows, proof panels, verifier.
- **Documentation, upstream contributions and reporting (0.5 months).**
The rate reflects a single experienced engineer working full time, and is deliberately below comparable ecosystem grants: the specification and a substantial part of the implementation already exist, so this funds completion and publication rather than a start from zero.
### Total Budget (USD)
$48,000
### Previous Funding
No
### Previous Funding Details
N/A. This is ZecBit's first application to Zcash Community Grants.
### Other Funding Sources
No
### Other Funding Sources Details
No external funding. Development to date has been self-funded.
ZecBit operates a marketplace that will charge a fee on minting, so the product is intended to fund itself commercially. That revenue is separate from this grant: the funded deliverables — the ZMD-1 specification and reference implementation, the key-less indexer, and the shielded payment tooling — are released open source under a permissive license and are free for anyone to use, including competing marketplaces. The grant funds the ecosystem layer, not the business built on top of it.
### Implementation Risks
**ZSA is not on mainnet, and the date is not ours to set.** Every deliverable here targets the public ZSA test network and is useful the day the protocol activates. No milestone depends on activation happening within the grant period. The risk is that mainnet slips far enough that the work sits unused. Mitigation: ZMD-1 and the reference resolver are most useful to wallet teams *before* activation, which is exactly when they need to agree on a convention rather than each invent one.
**ZIP 228 is a draft with no date.** Non-custodial atomic settlement is blocked on it. Until then settlement is escrowed and disclosed as such at the point of purchase. No milestone in this grant depends on ZIP 228.
**Standards adoption is not something a grant can buy.** ZMD-1 becomes valuable only if wallets implement it, and that is their decision. Mitigation: keeping it dependency-free, shipping a reference implementation rather than a specification alone, and engaging wallet teams during the design rather than after it. Integration with Noir Wallet already works. The honest residual risk is that other wallets choose something else.
**Single maintainer.** A one-person project carries obvious continuity risk. Mitigation: the specification is written and public, all funded deliverables are open source with contribution guidelines, and the indexer is reproducible from chain data by anyone. If the project stopped tomorrow, the standard and the tooling would remain usable by others.
**External review scheduling.** A security reviewer with relevant shielded-protocol experience may not be available on the timeline we want. Mitigation: scoping and reviewer selection begin in the startup phase, months before the review itself.
**Testnet artifacts are testnet artifacts.** Assets issued to date are on a test network. The identity-preservation property means they can be re-issued from the same inputs on mainnet, but this application does not claim mainnet assets exist.
### Potential Side Effects
**A metadata standard can fragment an ecosystem if it competes rather than coordinates.** Publishing ZMD-1 without wallet buy-in risks producing a second convention rather than the convention. This is why the specification goes to the community for review as Milestone 1, and why the reference implementation has no dependency on our services: the goal is a standard the ecosystem adopts, not one we own.
**Escrowed settlement carries counterparty risk until ZIP 228.** Funds pass through the venue briefly during a purchase. This is a genuine risk to users. It is disclosed at the point of purchase, on a dedicated custody page, and in the specification — not hidden behind a claim of being non-custodial.
**A public catalog is public.** Collections, traits and rarity are visible to anyone by design; only ownership is shielded. An issuer who wants an unlisted collection is not served by this venue, and the design does not pretend otherwise.
**Attention to NFTs on Zcash may attract projects the community does not want.** Any venue can be used for low-quality or misleading issuance. The verifier and the open indexer make provenance checkable by anyone, which is a mitigation rather than a cure.
**Making issuance easy makes bad issuance easy too.** A minting studio lowers the barrier for everyone, including people imitating existing collections. ZIP 227's display rule — never show a raw asset description as a name — is built into ZMD-1 for exactly this reason, but it depends on wallets honouring it.
### Success Metrics
Measurable, and checkable by someone other than us.
**Standard adoption**
- ZMD-1 published as a versioned specification with a reference implementation
- At least two independent wallet or tooling teams reviewing it publicly
- At least one wallet other than Noir with a working ZSA display path built against it
**Reproducibility**
- The indexer produces an identical catalog when run by a third party against the same chain data. Demonstrated publicly, not asserted.
**Working system**
- Collections issued end to end through the minting studio by people outside the team
- Verifier confirming assets against a node ZecBit does not operate
- Payment intake reconciling with zero unresolved unmatched payments over a sustained test period
- External security review completed with no unresolved critical findings
**Openness**
- Indexer, reference resolver and payment tooling published under a permissive license with CONTRIBUTING.md
- Specification, integration guide and operator guide public
Deliberately **not** used as success metrics: trading volume, user counts, or floor prices. On a shielded venue those are venue figures rather than market figures — assets moved directly between wallets are invisible to us — and citing them as evidence of success would misrepresent what the system can actually see.
### Startup Funding (USD)
$8,000
### Startup Funding Justification
Startup funding covers the first six weeks, before Milestone 1 completes.
- **ZMD-1 draft published for community comment.** Getting the specification in front of wallet teams at the *start* of the grant means their feedback shapes the reference implementation rather than arriving after it is written.
- **Infrastructure deployment.** lightwalletd and ZSA node instances, so indexer development runs against real chain data from day one rather than fixtures.
- **Security review scoping and reviewer selection.** Reviewers with shielded-protocol experience are not available on short notice. Booking the engagement months ahead of the code being ready is the difference between the review happening in Milestone 3 and slipping past the end of the grant.
- **Reference resolver architecture.** The interface wallets will integrate against, designed before implementation so the review cycle has something concrete to react to.
The amount is set so that the startup phase plus the four milestones equals the total budget exactly: $8,000 + (4 × $10,000) = $48,000.
### Milestone Details
```milestones.yaml
- Milestone: 1
Amount (USD): 10000
Expected Completion Date: 2026-11-14
User Stories:
- "As a wallet developer, I want a specified way to resolve an NFT's name, image and traits from a ZSA asset ID, so that I can render it without inventing my own convention or depending on a marketplace API"
- "As a wallet developer, I want to verify that the artwork I am about to show matches what the issuer committed to, so that I do not display substituted media"
- "As a collector, I want the name shown in my wallet to be bound to the chain rather than chosen by a third party, so that I cannot be phished through asset names"
Deliverables:
- ZMD-1 v1.0 published as a standalone versioned specification, with no dependency on ZecBit infrastructure
- Reference resolver library: asset ID in, verified metadata out, packaged for wallet integration
- Wallet integration guide with a worked example against a live testnet asset
- Specification posted to the Zcash community forum for review
- CONTRIBUTING.md and a permissive license on the published repository
Acceptance Criteria:
- Specification and reference implementation are public and installable
- A third party can resolve and verify a ZecBit-issued asset using only the library and a public node, with no access to our services
- Forum thread open with the specification submitted for community comment
- At least one wallet or tooling team has reviewed it, with their feedback recorded publicly
- Milestone: 2
Amount (USD): 10000
Expected Completion Date: 2026-12-31
User Stories:
- "As an ecosystem participant, I want to reproduce the asset catalog myself from chain data, so that I do not have to trust a single operator's view of what exists"
- "As a collector, I want to see which traits are rare across a collection, so that I can judge a piece without relying on the issuer's claims"
- "As a developer, I want to run the indexer without any viewing key or privileged access, so that building on ZSA does not require permission"
Deliverables:
- Deterministic key-less indexer walking issuance bundles and deriving asset identities
- Manifest resolution with content-hash verification
- Trait frequency and rarity computation, with rarity excluded from the hashed manifest so it can never alter an asset's identity
- Operator guide for running an independent instance
- Public catalog served from indexer output
- Indexer source published under a permissive license
Acceptance Criteria:
- Indexer runs against a public node with no privileged access and no viewing keys
- A third-party run against the same chain data produces an identical catalog, demonstrated publicly rather than asserted
- Source published with CONTRIBUTING.md
- Catalog live and reflecting on-chain state
- Milestone: 3
Amount (USD): 10000
Expected Completion Date: 2027-02-13
User Stories:
- "As a buyer, I want my payment to be detected and credited reliably even though the network cannot see who I am, so that I receive what I paid for"
- "As a buyer whose payment does not match any order, I want a human to see it, so that I am not silently out of pocket"
- "As a developer accepting shielded payments, I want reviewed tooling I can reuse, so that I do not rebuild trial decryption and confirmation handling from scratch and get the edge cases wrong"
Deliverables:
- Payment intake hardened: confirmation handling, scan-cursor safety across reorganizations, reconciliation
- Unmatched-payment review tooling, so a payment matching no order reaches a person rather than being discarded
- External security review of the payment and signing paths completed
- All findings resolved, or publicly documented with rationale where not
- Payment tooling published under a permissive license
Acceptance Criteria:
- Review report delivered with no unresolved critical findings
- Payment intake reconciles correctly over a sustained test period, including a simulated chain reorganization
- Unmatched payments appear in the review queue rather than being dropped
- Fixes merged and the report, or a summary of it, published
- Milestone: 4
Amount (USD): 10000
Expected Completion Date: 2027-03-31
User Stories:
- "As a creator, I want to issue a collection as a single atomic transaction, so that my collection either exists in full or not at all"
- "As a collector, I want to verify an item against a node the marketplace does not operate, so that I never have to take the venue's word for anything"
- "As a buyer, I want to be told at the moment of purchase that the venue briefly holds my funds, so that I can decide with that in front of me rather than discovering it later"
Deliverables:
- Minting studio for batch issuance with privacy-correct patterns
- Listing, offer and settlement flows, with custody disclosure at the point of purchase
- Item proof panels and the independent verifier page
- Public release with documentation
- Final report covering what shipped, what did not, and why
Acceptance Criteria:
- A collection is issued end to end through the studio by someone outside the team
- Verifier confirms assets against a node ZecBit does not operate
- Custody disclosure present at the point of purchase, not only in documentation
- Final report posted to the forum thread
```
### Supporting Documents
```files.yaml
- **ZecBit Technical Specification v1.0** — https://zecbit.io/ZecBit-Whitepaper.pdf
3,200-line reference specification covering the asset model (ZIP 226/227), the ZMD-1 metadata standard, the registry, the indexer, the wallet layer, and the non-custodial trading architecture. Section "What Already Exists" states component by component what is built and running versus what is design, and labels each accordingly.
- **Genesis Litepaper** — https://zecbit.io/ZecBit-Genesis-Litepaper.pdf
Shorter overview of the first collection and the issuance approach.
- **Genesis issuance transaction** — independently checkable, against a node ZecBit does not operate:
txid 611ddfd4459e813b86b935fc05217f929e29c37cdc96ba8f23fc647e30c26317
height 251, public ZSA test network, node https://dev.zebra.zsa-test.net
Ten unique finalized assets (supply 1, finalize = 1) in a single transaction.
curl -s -X POST https://dev.zebra.zsa-test.net -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"getrawtransaction","params":["611ddfd4459e813b86b935fc05217f929e29c37cdc96ba8f23fc647e30c26317",1]}'
Each item's asset_desc is zmd1|zecbit-genesis|<index>. Recomputing BLAKE2b-256 over that string with personalization ZSA-AssetDescCRH yields an assetDescHash that appears verbatim in the transaction's issuance bundle.
- **Public verifier** — hashes an asset description in the browser and locates the result in the issuance transaction on whichever node the visitor chooses. Requires no trust in the operator and no access to our services.
- **Live site** — https://zecbit.io
```