To deploy a protection market with a given underlying token, a money market for that underlying token must exist. After you select an underlying token, you should verify that a money market for that token exists by calling the Comptroller.getCToken(underlying, AddressZero) function. The Comptroller stores a mapping—called getCToken—that maps an underlying token address to a trigger address to a market address. Money markets use the zero address as their trigger address. If the Comptroller.getCToken(underlying, AddressZero) check returns the zero address, a money market for the underlying token token does not exist, and you'll have to wait for one to be deployed by governance before continuing. (If you try to deploy without a supported underlying token money market, protection market deployment will revert).