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

Kinetic Manager 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. Kinetic Manager Kinetic Manager

View Your App Hot-Wallet Status

Check your app hot-wallet balances, mints and more. Kinetic Manager

Configure Your App Settings

Mints

Add multiple mints to your Kinetic instance. Kinetic Manager

Access Control

Define who / how your Kinetic instance is accessed. Kinetic Manager

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.

Balance Webhook

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.

Balance Webhook

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.

Balance Webhook

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 Manager

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 optional APP_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 or https://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