controller-setup

Configure Cartridge Controller and SessionConnector for Starknet session-key wallet integration.

1|Updated Mar 7, 2026
One-click install
npx skills add https://github.com/shariqazeem/Prophecy-Roguelite --skill controller-setup-shariqazeem
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: controller-setup
Source: https://github.com/shariqazeem/Prophecy-Roguelite/tree/main/.agents/skills/controller-setup
Command: npx skills add https://github.com/shariqazeem/Prophecy-Roguelite --skill controller-setup-shariqazeem

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides step-by-step guidance to integrate the Cartridge Controller smart contract wallet into Starknet applications so developers can enable session-key transactions, passkey authentication, and paymaster flows without breaking local development or runtime initialization. It addresses common integration friction such as choosing the right connector for web vs native apps, configuring session policies, setting RPC endpoints, and resolving local Katana deployment issues.

Core Features & Use Cases

  • Installation & Packages: Lists the required packages and compatible versions for controller and connector libraries.
  • Connector Selection: Explains when to use ControllerConnector for web apps and SessionConnector for native/mobile apps with local keypairs.
  • Session Policies & Execution: Describes why session policies are required, how missing policies cause execute() to fail, and how to configure them.
  • Chain & Local Dev Configuration: Covers custom chains, RPC overrides, and necessary Katana settings (paymaster/controllers) to deploy Controller contracts at genesis.
  • Performance & Troubleshooting: Advises lazy loading, cookie/HTTPS requirements, and common pitfalls like connector recreation in React.

Quick Start

Install the controller and connector packages, define session policies, configure your chain RPC or local Katana with paymaster/controllers enabled, then instantiate Controller or the appropriate connector and call connect() to begin executing session-based transactions.

Frequently Asked Questions about controller-setup

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I integrate Cartridge Controller into a Starknet app for session-key transactions?

To integrate Cartridge Controller into a Starknet app, install the required controller and connector packages, define your session policies, configure chain RPCs or a local Katana environment, then instantiate the connector and call connect() to execute popup-free transactions.

Why does execute() fail when using Cartridge Controller in my Starknet dapp?

The execute() function fails when session policies are missing or improperly configured. You must explicitly define session policies during Controller initialization to authorize session-authenticated signing and execute popup-free transactions successfully.

When should I use ControllerConnector versus SessionConnector for Starknet wallet integration?

Use ControllerConnector for web applications to enable standard wallet integration, and use SessionConnector for native or mobile apps where you need to manage local keypairs for session-authenticated signing.

Do I need cookies and HTTPS to initialize Cartridge Controller?

Yes, cookies and HTTPS are required environment prerequisites to initialize the Cartridge Controller properly. These ensure secure session handling and passkey authentication flows during runtime initialization.

How do I configure a local Katana development environment for Cartridge Controller contracts?

To configure a local Katana development environment for Controller contracts, enable paymaster and controllers in your Katana genesis configuration to ensure contracts deploy correctly and support session-based transactions.

What are common pitfalls when integrating Cartridge Controller with React?

A common pitfall in React is recreating the connector instance on re-renders, which breaks the session state. You should lazy load the connector and manage its lifecycle properly to avoid runtime initialization issues.