# Superwall.shared

The shared Superwall instance that provides access to all SDK methods.

> **Warning**

You must call [`configure()`](/docs/flutter/sdk-reference/configure) before accessing `Superwall.shared`, or the app will crash.



Purpose [#purpose]

Provides access to the configured Superwall instance after calling `configure()`.

Signature [#signature]

```dart
static Superwall get shared
```

Returns / State [#returns--state]

Returns the configured `Superwall` instance that can be used to access all SDK methods.

Usage [#usage]

Accessing the shared instance:

```dart
// After calling configure()
await Superwall.shared.registerPlacement('premium_feature');
await Superwall.shared.identify('user_123');
```

Reset the user:

```dart
await Superwall.shared.reset();
```

> **Note**

Avoid calling `Superwall.shared.reset()` repeatedly. Resetting rotates the anonymous user ID, clears local paywall assignments, and requires the SDK to re-download configuration state. Only trigger a reset when a user explicitly logs out or you intentionally need to forget their identity. See [User Management](/docs/flutter/quickstart/user-management) for more guidance.



Common usage pattern:

```dart
void _upgradeUser() async {
  await Superwall.shared.registerPlacement(
    'upgrade_prompt',
    feature: () {
      // Feature unlocked after purchase
      Navigator.pushNamed(context, '/premium-content');
    },
  );
}
```

With subscription status:

```dart
class _MyWidgetState extends State<MyWidget> {
  @override
  void initState() {
    super.initState();
    
    // Listen to subscription status changes
    Superwall.shared.subscriptionStatus.listen((status) {
      setState(() {
        // Update UI based on subscription status
      });
    });
  }
}
```