Skip to main content
Production apps should pair this with a passkey on the browser side. This page uses a string encryptKey for the smoke-test scenario, which is the simplest possible flow. For shipping integrations, the encryptKey should come from a platform passkey — see the passkey quickstart for the browser flow. The server pieces below are identical either way.
This page shows the full create-wallet → transfer round trip, lifted from the Chipi staging smoke test that runs in CI on every release. Code is verbatim from the test, with secrets (CHIPI_PUBLIC_KEY, CHIPI_SECRET_KEY, CHIPI_BASE_URL, encrypted private keys) read from environment variables.

Install

Initialise the SDK

Create a wallet

createWallet provisions a fresh Starknet account, encrypts the private key with the encryptKey you provide, and returns the public key + encrypted private key. Chipi’s paymaster covers the deploy transaction.
Look it up later by your own user ID:

Transfer USDC (gasless)

The transfer is paid for by your service wallet’s USDC balance. Check that balance in the dashboard at /configure/billing.

Putting it together

End-to-end, mirroring the smoke test:
✅ Verified against the live API on 2026-05-11.

What’s next

Reading token balances, PIN/passkey rotation, and session keys are covered by their own smoke tests (staging-reads.test.ts, staging-update-encryption.test.ts, staging-sessions.test.ts) and will land in follow-up doc PRs.