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
Client
Package
Version
Runtime
Coverage
JavaScript / TypeScript
@tinkerlandai/indiana-sdk (npm)
0.6.2
Node.js 22+ backends, browsers
All server and browser capabilities: Customers, entitlements, balances, payments, offers, Features, Funnels, Paywalls, page experiments and screen rendering
Python
tinkerlandai-indiana-sdk(import indiana)
0.6.1
Python 3.11+
Server: Customers, holdings, entitlement checks and usage; sync and async clients
Go
tinker.cash/sdk/go
v0.6.0
Go 1.23+
Server: the same seven operations as Python; a goroutine-safe client
Indiana CLI
indiana
0.3.8
Node.js 22+
Console management, document validation and code-reference scanning
Swift / Kotlin
Not 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.
Server Key client, session issuing, Funnel start and decisions, Paywall start and AI usage
@tinkerlandai/indiana-sdk
Browser
Customer Token client, Features, Funnel and Paywall display
@tinkerlandai/indiana-sdk/page
Browser
Anonymous URL redirect experiments
@tinkerlandai/indiana-sdk/visual
Browser
Anonymous visual experiments
@tinkerlandai/indiana-sdk/popup
Browser
Standalone screen rendering, sanitizing and previews
@tinkerlandai/indiana-sdk/native-shell
WebView
Funnel shell assets for native WebViews
@tinkerlandai/indiana-sdk/openrouter
Trusted backend
OpenRouter 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.
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
1go get tinker.cash/sdk/go@v0.6.0
main.goGo
1import 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.
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.
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.