A gateway token is a token used to control access to dApps.
On-chain applications require users to present a Gateway Token, which proves that they have been verified by a Gateway Provider to use the dApp. This token is tied to their wallet and is non-transferable.
Gateway tokens are issued by gatekeepers. A cluster of gatekeepers with similar rules for issuing gateway tokens are defined as a Gatekeeper Network.
The on-chain program chooses a gatekeeper network to trust, by adding its public key to a program account.
This library then validates that gateway tokens are issued by gatekeepers in this network and are valid.
More info available through the 'solana-gateway' docs: https://crates.io/crates/solana-gateway