Adapt Modules are smart contract extensions separate from the main RAILGUN privacy system. They allow for extended functionality without impacting the main privacy system’s code. Adapt Modules require 2 fields, a contract address, and parameters to execute the contract.
The parameters in Adapt Modules are not validated by the core RAILGUN code, which allows for them to be implemented with any custom logic and arbitrarily across any smart contract. Any relevant proofs are only submittable from the specified contract, and they are only valid if they pass both the RAILGUN core protocol rules and the Adapt Module’s validation rules.