Civic Developer Hub
Search…
⌃K

Solana Configuration

The configuration parameters of the Solana implementation of the GatewayProvider. For a full integration guide on integrating the Gateway Provider the parent section, Gateway Provider.
<GatewayProvider
wallet={wallet}
connection={new Connection(clusterApiUrl("mainnet-beta"))}
cluster="mainnet-beta"
gatekeeperNetwork={gatekeeperNetwork}>
</GatewayProvider>
Property
Description
Type
wallet
An object representing the user's wallet. This may be undefined if a wallet hasn't been connected to the dApp yet.
{
publicKey, signTransaction
} (see definitions below)
wallet.publicKey
The user wallet's public key
PublicKey from @solana/web3.js
wallet.signTransaction
A function that asks the user's wallet to sign a transaction.
(transaction: Transaction) => Promise<Transaction>
where Transaction is from @solana/web3.js
gatekeeperNetwork
The address of the
Gatekeeper Network that your Civic Passes are issued for.
PublicKey from @solana/web3.js
connection
A Solana connection to any Solana network. The recommended commitment level is 'processed'
Connection from @solana/web3.js
cluster
The Solana network to use, i.e. devnet, mainnet-beta, testnet. This defaults to mainnet-beta, so should be set if a different connection endpoint.
string

Advanced Configuration

Broadcasting Transactions via Civic

In the default mode of operation, the transaction required to issue or refresh the Civic Pass will not be broadcast by Civic, only signed by Civic. The user will responsible for broadcasting the transaction incl. any fees. This flow is handled transparently by the Gateway Provider, which also communicates any fees to the user via the Civic Pass modal.
Some Gatekeeper Networks support an alternative mode, i.e. having the Civic backend (i.e. Gatekeeper) broadcast the transaction. If the gatekeeper network you are using supports this, you can set the gatekeeperSendsTransaction property to true to turn it on.
Property
Description
Type
gatekeeperSendsTransaction
Civic will send the transaction to the blockchain on behalf of the user. Defaults to false.
true | false

Taking responsibility for the broadcasting the transaction

If the custom handleTransaction function is provided it is the responsibility of the integrator to
  • either sign and send the transaction or
  • just send the transaction based on the signatures requirement of the transaction.
The integrator also has the option to extend the transaction before it is signed and sent, in order to minimise the number of separate transactions that the user is required to approve.
Property
Description
Type
handleTransaction
An optional callback function that will invoked with a partially signed transaction for the user to sign and send to the blockchain. (not available when gatekeeperSendsTransaction is set to true)
(transaction: Transaction) => Promise<void>