Skip to content
Indiana
Dashboard
Docs
Browse docs / Install SDKs and CLI

Install SDKs and CLI

Install the JavaScript, Python and Go SDKs and the Indiana CLI, check runtimes, and make a first request.

API v1Updated

Choose a client

Every client speaks HTTP protocol 0.6 and defaults to the production API https://api.tinker.cash. Server SDKs hold a Server Key and run only on trusted backends; browsers and apps use a Customer Token issued by your backend.

Installable clients
ClientPackageVersionRuntimeCoverage
JavaScript / TypeScript@tinkerlandai/indiana-sdk (npm)0.6.2Node.js 22+ backends, browsersAll server and browser capabilities: Customers, entitlements, balances, payments, offers, Features, Funnels, Paywalls, page experiments and screen rendering
Pythontinkerlandai-indiana-sdk(import indiana)0.6.1Python 3.11+Server: Customers, holdings, entitlement checks and usage; sync and async clients
Gotinker.cash/sdk/gov0.6.0Go 1.23+Server: the same seven operations as Python; a goroutine-safe client
Indiana CLIindiana0.3.8Node.js 22+Console management, document validation and code-reference scanning
Swift / KotlinNot publicly released—iOS 16+ / Android API 23+Native purchases and Funnel hosting; see iOS and Android

Installable clients

  • JavaScript / TypeScript

    Package
    @tinkerlandai/indiana-sdk (npm)
    Version
    0.6.2
    Runtime
    Node.js 22+ backends, browsers
    Coverage
    All server and browser capabilities: Customers, entitlements, balances, payments, offers, Features, Funnels, Paywalls, page experiments and screen rendering
  • Python

    Package
    tinkerlandai-indiana-sdk(import indiana)
    Version
    0.6.1
    Runtime
    Python 3.11+
    Coverage
    Server: Customers, holdings, entitlement checks and usage; sync and async clients
  • Go

    Package
    tinker.cash/sdk/go
    Version
    v0.6.0
    Runtime
    Go 1.23+
    Coverage
    Server: the same seven operations as Python; a goroutine-safe client
  • Indiana CLI

    Package
    indiana
    Version
    0.3.8
    Runtime
    Node.js 22+
    Coverage
    Console management, document validation and code-reference scanning
  • Swift / Kotlin

    Package
    Not publicly released
    Version
    —
    Runtime
    iOS 16+ / Android API 23+
    Coverage
    Native purchases and Funnel hosting; see iOS and Android

Python and Go currently cover Customers, holdings, entitlement checks and usage. For other server operations (sessions, payments, offers, Funnels and more), use the JavaScript SDK or call the HTTP API directly with the same headers, credentials and error format.

JavaScript / TypeScript

Pin the published version 0.6.2. The npm latest tag can point to an earlier version, so production projects should pin an exact version.

npmShell
npm install --save-exact @tinkerlandai/indiana-sdk@0.6.2
Entry points
ImportRuns inPurpose
@tinkerlandai/indiana-sdk/serverTrusted backendServer Key client, session issuing, Funnel start and decisions, Paywall start and AI usage
@tinkerlandai/indiana-sdkBrowserCustomer Token client, Features, Funnel and Paywall display
@tinkerlandai/indiana-sdk/pageBrowserAnonymous URL redirect experiments
@tinkerlandai/indiana-sdk/visualBrowserAnonymous visual experiments
@tinkerlandai/indiana-sdk/popupBrowserStandalone screen rendering, sanitizing and previews
@tinkerlandai/indiana-sdk/native-shellWebViewFunnel shell assets for native WebViews
@tinkerlandai/indiana-sdk/openrouterTrusted backendOpenRouter usage billing; also install @openrouter/sdk

Entry points

  • @tinkerlandai/indiana-sdk/server

    Runs in
    Trusted backend
    Purpose
    Server Key client, session issuing, Funnel start and decisions, Paywall start and AI usage
  • @tinkerlandai/indiana-sdk

    Runs in
    Browser
    Purpose
    Customer Token client, Features, Funnel and Paywall display
  • @tinkerlandai/indiana-sdk/page

    Runs in
    Browser
    Purpose
    Anonymous URL redirect experiments
  • @tinkerlandai/indiana-sdk/visual

    Runs in
    Browser
    Purpose
    Anonymous visual experiments
  • @tinkerlandai/indiana-sdk/popup

    Runs in
    Browser
    Purpose
    Standalone screen rendering, sanitizing and previews
  • @tinkerlandai/indiana-sdk/native-shell

    Runs in
    WebView
    Purpose
    Funnel shell assets for native WebViews
  • @tinkerlandai/indiana-sdk/openrouter

    Runs in
    Trusted backend
    Purpose
    OpenRouter usage billing; also install @openrouter/sdk

The package ships type declarations and supports ESM bundlers and Node.js 22+. Load the browser entries through a bundler such as Vite, Next.js or webpack; never import /server into browser code.

Python

The Python SDK is distributed from tinker.cash, not PyPI. The distribution is tinkerlandai-indiana-sdk and the import is indiana. Other dependencies install from your configured package index as usual.

pipShell
python -m pip install "https://tinker.cash/downloads/python/tinkerlandai_indiana_sdk-0.6.1-py3-none-any.whl"

https://tinker.cash/sdk/python lists each version's wheel and source archive with their SHA-256. Check the installed version:

terminalShell
python -c "import indiana; print(indiana.__version__, indiana.PROTOCOL_VERSION)"

Go

The module path is tinker.cash/sdk/go. Install it through Go's default module proxy and checksum database; no repository access is needed.

terminalShell
go get tinker.cash/sdk/go@v0.6.0
main.goGo
import indiana "tinker.cash/sdk/go"

With GOPROXY=direct, Go discovers the same module download through https://tinker.cash/sdk/go?go-get=1. Check the version with go list -m tinker.cash/sdk/go.

Indiana CLI

The CLI requires Node.js 22+. On macOS and Linux, install with curl: it downloads the complete platform archive and verifies its SHA-256, without npm or sudo.

terminalShell
curl -fsSL https://tinker.cash/install.sh | shexport PATH="$HOME/.local/bin:$PATH"indiana --version

On Windows, or to use npm, install the same version from the website:

terminalShell
npm install -g https://tinker.cash/downloads/cli/0.3.8/indiana-cli-0.3.8.tgz

Afterwards, indiana update upgrades in place and keeps configuration and credentials.

iOS and Android

The Swift and Kotlin SDKs have no public Swift Package or Maven distribution yet. Contact us to integrate native purchases or Funnel hosting; Web content can integrate through the JavaScript SDK and a WebView today.

First request

Create a Sandbox Server Key with customers:write in Console, put the variables below in a Git-ignored backend .env, and run one of the examples. Success returns a Customer UUID; running it again returns the same Customer with created false.

.envShell
INDIANA_API_URL=https://api.tinker.cashINDIANA_API_KEY=<SERVER_KEY>INDIANA_PROJECT_ID=<APP_UUID>
first-request.tsTypeScript
import { createIndianaServer } from "@tinkerlandai/indiana-sdk/server"; const indiana = createIndianaServer({  baseUrl: process.env.INDIANA_API_URL!,  apiKey: process.env.INDIANA_API_KEY!,  scope: { projectId: process.env.INDIANA_PROJECT_ID!, environment: "sandbox" },}); async function main() {  const { customer, created } = await indiana.getOrCreateCustomer({    externalUserId: "user-42",  });  console.log(customer.id, created);} main().catch((error) => {  console.error(error);  process.exitCode = 1;});
  • 401: the Key is incomplete, expired or revoked. 403: the Key lacks customers:write, or the App UUID or environment does not match the Key. Server Key requests must not carry a browser Origin.
  • 400 UNSUPPORTED_PROTOCOL_VERSION: add the X-Indiana-Protocol header to direct HTTP calls; the SDKs send it automatically.

Related: Create a Server Key·Environments·Customers and sessions