Configure Kinetic
Kinetic is highly configurable, giving you a huge amount of power in how you manage your Kinetic instance.
Kinetic configuration is split between settings you control via Environment Variables, as well as those you can change in Kinetic itself with the Kinetic Manager.
Kinetic Manager
Kinetic Manager is a powerful tool for managing, maintaining and observing the performance of your Kinetic instance.
Check out some of the key features below:
Set Your RPC Provider
A Solana RPC provider is required for Kinetic to be able to access data on the Solana blockchain.
Solana provides free api endpoints for this, e.g. for devnet
:
https://api.devnet.solana.com
These free endpoints are rate limited, so depending on your use-case, you may want to upgrade to a paid service.
Learn more about Solana RPC Providers here.
Provision, View And Manage Your Apps
Note - You can add apps via your Environment Variables as well.
View Your Transactions
See a filterable list of all your transactions in one place or drill down into an individual transaction to see how long each step in the process has taken.
View Your App Hot-Wallet Status
Check your app hot-wallet balances, mints and more.
Configure Your App Settings
Mints
Add multiple mints to your Kinetic instance.
Access Control
Define who / how your Kinetic instance is accessed.
Webhooks
Configure your app webhooks so you can view events, verify transactions, get an automated warning if your hot-wallet balance falls below a threshold, etc.
Balance Webhook
The balance webhook allows you to receive an alert when your app's hotwallet is running low on Sol so you can top it up and ensure your app can continue to keep transacting.
E.g. In a node express server:
app.use('/balance', async (req, res) => {
const data = req.body
// DO STUFF WITH THE BALANCE ALERT
res.sendStatus(200)
})
Event Webhook
The event webhook allows you to receive alerts when actions have been confirmed on the Solana blockchain.
E.g. In a node express server:
app.use('/events', async (req, res) => {
const event = req.body
// DO STUFF WITH THE EVENT DATA
res.sendStatus(200)
})
Verify Webhook
The verify webhook allows you to have fine-grained control over transactions, making sure they meet your own criteria before allowing them to proceed.
E.g. In a node express server return a 200
status code to approve the transaction or a 400
to reject it:
app.use('/verify', async (req, res) => {
const transaction = req.body
// CHECK THAT YOU WANT THIS TRANSACTION TO PROCEED
// e.g.
if (transaction.amount < 1000000) {
res.sendStatus(200)
}
res.sendStatus(400)
})
Configure Your Global Kinetic Settings
Use the admin dashboard to view your apps, see your Solana clusters, see and configure your Kinetic users and more.
Kinetic Environment Variables
See the full list of environment variables for Kinetic here.
To see the options required for a minmal setup, have a look at this.
Here are some things to be aware of:
Provisioning Apps
- Provision an app via Environment Variables with your registered App Index. E.g. if your App Index is
360
:APP_360_NAME
,APP_360_FEE_PAYER_BYTE_ARRAY
and the optionalAPP_360_LOGO_URL
can be set to ensure your app shows up correctly in Kinetic Manager - You can also provision apps using Kinetic Manager, in that case, the app data is stored in your database. Using Environment Variables for app provision may make it easier to provision apps quickly from scratch.
Setting Your Auth Method
- For Kinetic instances in production, we strongly recommend turning off password based authentication and using one of the supported SSO methods:
GitHub Login
- Get a GitHub oAuth client ID and secret from
https://github.com/settings/developers
orhttps://github.com/organizations/<your-org>/settings/applications
- Set the callback URL to
<your API_URL>/auth/github/callback
- Set your environment variables:
AUTH_PASSWORD_ENABLED: "false"
AUTH_USERS: "githubusername||Admin|githubemail@address"
GITHUB_CLIENT_ID: "d9fa784f2c711zzzzz"
GITHUB_CLIENT_SECRET: "a2e42904c81280c1466d95de040c516zzzzzzzz"
GITHUB_ENABLED: "true"
Discord Login
- Get a Discord oAuth client ID and secret from
https://discord.com/developers/applications
- Set the callback URL to
<your API_URL>/auth/discord/callback
- Set your environment variables:
AUTH_PASSWORD_ENABLED: "false"
AUTH_USERS: "discordusername||Admin|discordemail@address"
DISCORD_CLIENT_ID: "d9fa784f2c711zzzzz"
DISCORD_CLIENT_SECRET: "a2e42904c81280c1466d95de040c516zzzzzzzz"
DISCORD_ENABLED: "true"
Google Login
- Get a Google oAuth client ID and secret from
https://developers.google.com/identity/sign-in/web/sign-in
- Set the callback URL to
<your API_URL>/auth/google/callback
- Set your environment variables:
AUTH_PASSWORD_ENABLED: "false"
AUTH_USERS: "googleusername||Admin|googleemail@address"
GOOGLE_CLIENT_ID: "d9fa784f2c711zzzzz"
GOOGLE_CLIENT_SECRET: "a2e42904c81280c1466d95de040c516zzzzzzzz"
GOOGLE_ENABLED: "true"
What If I Get Stuck?
Pop into the kinetic-hosting
channel on Discord if you have issues setting up your Kinetic instance.
Pop into the kinetic-manager
channel on Discord if you have issues with Kinetic Manager.
Developer Discord
Join our fantastic developer community.
Was this page helpful to you?
Provide feedback