Product fields
The current product schema includes title, summary, outcome, description, category, price in token base units, token address, images, fulfillment mode, deliverable, and refund policy. Optional fields include cover alt text, access timing, and product status. The supported category values aredigital, education, software, design, and other. A product can describe download, external, or manual delivery. The exact input constraints are in the product method reference.
A schema field describes an accepted data shape. Always verify the implemented delivery behavior before promising a timing or integration feature. In particular, the current entitlement check accepts a confirmed pending or finalized purchase and rejects refunded sales; an accessTiming field alone does not establish a different enforcement policy.
Versions preserve the purchase context
Campaigns commit to a SKU hash and price. The delivery service locates the corresponding immutable product version and checks that its merchant owner matches the campaign’s onchain merchant. Updating a product record does not rewrite the contract’s accepted sale or move an old purchase to arbitrary new delivery content. When preparing a campaign, select the intended product version and verify its preview. If the client reports a product-version mismatch, refresh the data and review the changed terms before signing.Upload requirements
The server accepts one file per upload request. A file extension or caller-provided MIME label is not sufficient for an image: the image must decode safely. A failed validation leaves the client with an error to correct rather than a publishable image.
Buyer access flow
- The buyer signs in and requests access for a sale.
- The server reads the sale from the contract, including buyer and status.
- It verifies the purchasing wallet or an appropriately linked wallet under the same account.
- It resolves the product version and checks merchant ownership.
- The delivery route returns the appropriate access response.
- A private download checks entitlement again, including refunds, and verifies stored file integrity.