> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rhinestone.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# createSession

> Create a smart session, resolving the chain's wrapped-native token from the orchestrator's chain catalog (GET /chains) so native-token wrapping is permitted automatically. Project-scoped — needs the API key but no account. Resolves served settlement addresses and verifies deployed UniversalActionPolicy copies against the canonical bytecode. Store the resolved session rather than rebuilding an authorized definition under changing catalog defaults. For a fully offline build, use the standalone toSession and pass wrappedNativeToken yourself. Use crossChainPermits for settlement scope; definition-input claimPolicies is rejected before any reads, even when empty or undefined. A stored Session is an artifact for enable/sign methods, not a new definition.

Method on a [`RhinestoneSDK`](/wallets/custom-signer/sdk-reference/rhinestone-sdk/rhinestone-sdk) instance.

## Usage

```ts theme={null}
const session = await sdk.createSession(definition)
```

## Parameters

<ParamField path="definition" type="SessionDefinition" required>
  The session definition
</ParamField>

## Returns

<ResponseField name="session" type="Session">
  The resolved session
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.