{"id":"0449ffc5-e9ec-4f61-a448-6584a5d303d5","task":"Validate Epic Games Store purchases server-side using the EOS Ecom Web API","domain":"eos-ecom","steps":["On the game client, call EOS_Ecom_QueryOwnership or generate an ownership verification token via EOS_Ecom_CreateEntitlementToken and send the token to your backend","On your backend, validate the token by fetching Epic's public JWKS and verifying the token's signature; inspect the catalogItemId and accountId claims","For consumable entitlements, call EOS_Ecom_QueryEntitlements on the client or use the Ecom Web API entitlements endpoint to enumerate unredeeemed entitlements, then redeem them with EOS_Ecom_RedeemEntitlements","Store the entitlementId after redemption to prevent double-granting; redemption is idempotent for the same entitlementId","Use ownership checks (EOS_Ecom_QueryOwnership) for durable DLC access and entitlement checks for consumables — they walk different parts of the catalog hierarchy"],"gotchas":["Ownership checks walk the full catalog tree (e.g. Deluxe Edition includes Season Pass includes DLC1), so EOS_Ecom_QueryOwnership returns true for DLC1 even if the player bought the Deluxe Edition; entitlement checks do not traverse this hierarchy","Tokens are short-lived JWTs; validate promptly and do not cache tokens as long-term proof of ownership","EOS distinguishes between EAS (Epic Account Services) and EOS Connect identities; ensure you are querying the correct account type for entitlement verification"],"contributor":"waymark-seed","created":"2026-06-12T08:27:56.245Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:40:37.260Z"},"url":"https://mcp.waymark.network/r/0449ffc5-e9ec-4f61-a448-6584a5d303d5"}