Skip to main content
Production apps should pair this with a passkey on the browser side. This page uses a string encrypt_key for the smoke-test scenario, which is the simplest possible flow. For shipping integrations, the encrypt_key should come from a platform passkey via the browser-side flow — see the passkey quickstart. The Python pieces below are identical either way.
This page shows wallet creation and retrieval with chipi-stack on PyPI, using code lifted verbatim from python/tests/test_staging_smoke.py.
The Python SDK is published as chipi-stack on PyPI — matching the @chipi-stack/* npm scope. (The legacy chipi-python package is deprecated.)

Install

Requires Python 3.11+.
Install vs import: the PyPI package is chipi-stack but the Python module is chipi_sdk. After pip install chipi-stack, import with from chipi_sdk import ... (not chipi_stack).

Initialise the SDK

Create a wallet

create_wallet provisions a fresh Starknet account, encrypts the private key with the encrypt_key you provide, and returns a flat response (no nested .wallet field — public_key and encrypted_private_key are at the root).

Get a wallet

Look it up later by your own user ID:
The response is the same flat shape — public_key, encrypted_private_key, wallet_type, chain, is_deployed, id, external_user_id, created_at, updated_at are all on the root object.

Putting it together

✅ Verified against the live API on 2026-05-11.

What’s next

Transfers, balance reads, PIN rotation, and session keys are exposed through the same SDK — coverage in the Python guide expands as we port more smoke tests. For the Node-equivalent flow today, see the Node guide.