Predicates are not deployed on chain, though their code/binary is necessary for interacting with them.
The question arises as to where dApps should store this code. If the code is stored on the dApp’s backend, it presents a centralized approach. In such a scenario, if the dApp becomes inaccessible or goes down, no one would be able to access the predicate anymore.
So, what is the best approach to address this problem in a decentralized manner? Could IPFS be a suitable solution?
The Fuel team is working on developing indexing solutions for predicates, which will involve emitting log events on-chain to “announce” predicates.
With this data available, applications will be able to see all created predicates, get the configurable values of that predicate, and re-create the predicate bytecode so it can be used.
But as I mentioned, this work is still in progress. For now, a centralized database or local-storage is the easiest place to save predicates so they can be interacted with.