Shopify/Manifold Merch Bridge Bug: All help tokens are not showing for connected address

I have set up a merch bridge for an erc721 nft project. Doing some testing on a Goerli deployment and seeing an issue with the list of eligible tokens the integration is finding.

  1. Was initially seeing a long lag time in a newly minted token showing in the shopify store list.
  2. When they do end up showing, some tokens are not showing up in this list. Testing with an address holding 10 tokens and only 2 are showing.

Is there some caching going on somewhere that might no be refreshing the data?

Let me knpow what other info I can share to help de-bug.

Thank you!

Some more info:

this is the campaign:

goerli erc721:

exampe of an address holding 3 tokens (12, 14, 15) with the matching metadata req (redeemed: true)

Screenshot of the ui only showing #12 -

Is it showing now? Looks like these were newly minted tokens and it may take a while to ingest new tokens.

Still now showing. Those were minted 12+ hours ago. I am trying a fresh install with a new store and will report back.

Should we expect them to take days to show up even when moving to mainnet contracts? Not sure this would be good for our users.

No, it should show now, can you take a screenshot of your campaign settings?

Your gate was configured with a single attribute restriction set. Attribute restrictions mean that the NFT must have ALL of the attributes defined. If you want an ‘OR’ type (i.e. any NFT with X OR Y) you need to add multiple restriction sets.

Further, looks like token 15’s metadata wasn’t able to be ingested (an issue with IPFS), so you’ll want to refresh the metadata for the entire contract.

To do this, go to and login.
Go to snapshot tools
Select Goerli network
Enter your contract address
Check “Tokens by Attribute”
Under " Not seeing attributes you expect?" click refresh.

Thanks for your help.

Yeah I only have one rule - metadata attr Redeemed :: True.

Did a refresh in the snapshot tool and still no luck. But to be clear, I don’t want to use the ‘Snapshot’ feature for my token gate. I want these erc721 to be redeemable by anyone holding it at anytime (once per token id).

This address holds 3 tokens with Redeemed: True

  • 12, 14, 15

Only 12 is showing up in the store still.

I am now trying to just click refresh " Not seeing attributes you expect?" .

Not creating a snapshot. I thiink I misread.

I know you’re not creating a snapshot, but hitting refresh should force reingestion of data.

Further, currently, only token 12 shows redeemed=true on our server, which is why only token 12 is showing.

Do the above steps to force re-ingestion of the token data.

K - I’ve been trying that and no luck. Where are you ingesting data from? Wondering if there is a lag somewhere.

example of opensea

contract uri metadata

both redeemed=true

hey, you can refresh metadata directly in the Shopify App Product Gate whenever you add the rule (Blue Button). Since you are doing a Non-snapshot 721 gate only, you can just delete the rule and readd it in order to get to this. Can you try hitting the Refresh metadata button here?


I deleted and re-added the rule then refreshed the data and one more of the held tokens showed up. Still missing one - but I guess we’re making progress!.

Screenshot from 2023-08-02 12-37-44

Probably a data ingestion delay after hitting refresh, they should all show now.

Thank you very much for all the help. I’ll continue testing.

Should I expect to need to do manual data refreshes a lot when the campaign is live on mainnet? We have a open mint period so new tokens will be getting minted and redeemed for a while.

no, goerli is less reliable which is why this issue surfaced. You DO need to hit the refresh button if you change the tokenURI though, which seems like is what happened with token 14.

Ok makes sense. That is how this nft works - it’s minted, then a function is run to ‘redeem’ it and this changes the tokenURI so the metadata is updated - new image and redeemed:true attr. Is your server ingesting directly from an RPC or something like opensea? I also have to manually refresh the data for opensea sometimes in these instances.

I don’t suppose I can hit that refresh endpoint from my app?

I see, so it’s an on-chain event that updates the uri.

Do you support ERC-4906: EIP-721 Metadata Update Extension

Also, who initiates the token uri update (since you’re using ipfs)?