AURA
DOCS
AuraMaxxGG
wallet-core/src/loginWithAuraSdk.ts

Sign In With Aura

Add a Login with Aura button, open the hosted popup join flow, and receive the user email and wallet for read-only app state.

START HERE

Sign In With Aura

What This Gives You

Current Scope

  • A hosted `Aura.SigninButton` and React-friendly `Aura.SigninWithAura` button that open the Aura join flow in a popup, like Sign in with Apple or Google.
  • A read-only login result with the Aura user id, email, username, display name, avatar, and wallet address.
  • The popup asks the user to finish Aura email and passkey setup before it resolves.
  • The SDK saves only that read-only result locally so `Aura.getSession()` can show connected state after reload.
  • If the Aura popup opens for an already connected user, it stays open as an account/funding panel instead of instantly closing.
  • If the user disconnects inside that account panel, the SDK clears the saved read-only result and the button returns to Login with Aura.
  • After login, hosted buttons show the user's avatar plus @username, or a shortened wallet address when no username exists.
  • Guest wallet entry is disabled by default for SDK login; pass `allowGuest: true` only for legacy or internal flows.
  • Read-only SDK helpers for public user, inventory, pack, and marketplace data.
  • No bearer token export and no write permission. Use the delegated-user developer lane when you need writes later.
Need Higher Rate Limits?
Register your app and use its browser-safe read token with the SDK. Unregistered calls fall back to dev-mode attribution.

Browser Install

Live Example

Light Mode
Dark Mode
Loading SDK

Production

<div id="aura-login"></div>
<script src="https://auramaxx.gg/login-with-aura/sdk.js" data-aura-origin="https://auramaxx.gg"></script>
<script>
  Aura.configure({
    clientId: "your-app",
    readToken: "aura_pk_..."
  });

  Aura.SigninButton({
    container: "#aura-login",
    clientId: "your-app",
    onSuccess(result) {
      console.log(result.walletAddress);
      console.log(result.user);
    }
  });
</script>

React Button

const { SigninWithAura } = Aura;

function LoginPanel() {
  return (
    <SigninWithAura
      mode="light"
      clientId="your-app"
      onSuccess={async (session) => {
        const user = await Aura.getUser({ refresh: true });
        const inventory = await Aura.getCurrentInventory({
          collection: "slug-or-address",
          limit: 200
        });
        console.log(session.walletAddress, user, inventory);
      }}
    />
  );
}

Full SDK API

For every hosted SDK method, alias, and read helper, use https://auramaxx.gg/docs/sdk-api. Agents and tools can use https://auramaxx.gg/agents/sdk/skill.md first, then https://auramaxx.gg/login-with-aura/sdk.manifest.json.

Result Shape

Read-Only Payload

{
  "authenticated": true,
  "clientId": "your-app",
  "hasEmail": true,
  "hasPasskey": true,
  "walletAddress": "0xUSER...",
  "user": {
    "id": "user-id",
    "username": "aura-user",
    "displayName": "Aura User",
    "email": "user@example.com",
    "avatar": null,
    "address": "0xUSER...",
    "addresses": ["0xUSER..."],
    "verifiedExternalAddresses": []
  }
}

Optional Direct Promise API

const result = await Aura.signIn({
  auraOrigin: "https://auramaxx.gg",
  clientId: "your-app"
});

const walletAddress = result.walletAddress;

Read Helpers

Aura.configure({
  clientId: "your-app",
  readToken: "aura_pk_..."
});

const session = await Aura.signIn({
  clientId: "your-app",
  mode: "light"
});

const user = await Aura.getUser({ refresh: true });
const inventory = await Aura.getCurrentInventory({
  collection: "slug-or-address",
  limit: 200
});
const profileInventory = await Aura.getInventory({
  userAddress: "0xUSER...",
  collections: ["slug-one", "0xCOLLECTION..."],
  limit: 200
});
const created = await Aura.getCreatedPacks({ limit: 12 });
const capabilities = await Aura.getDeveloperCapabilities();
const catalog = await Aura.getMarketplaceCatalog({ project: "auramaxxgg" });
const offers = await Aura.getMarketplaceOffers({
  address: session.walletAddress
});
const v2Offers = await Aura.getMarketplaceV2Offers({
  address: session.walletAddress
});

Agent Notes

Bare Minimum

  • Load https://auramaxx.gg/login-with-aura/sdk.js in the browser app.
  • Render Aura.SigninButton into a DOM container, or use <SigninWithAura mode="light" /> when React is already loaded.
  • Expect a popup window by default. Use `uxMode: 'iframe'` only if a legacy embedded modal is required.
  • On localhost, this live demo forces the same-origin `/login-with-aura/sdk.js` and keeps the popup open after success for debugging.
  • Treat result.walletAddress as the read-only wallet identity for public profile, inventory, and marketplace reads.
  • Use Aura.getUser, Aura.getCurrentInventory, Aura.getInventory, Aura.getCreatedPacks, Aura.getDeveloperCapabilities, and marketplace read helpers before reaching for auth.
  • Use the full SDK API reference when choosing a read helper or React/DOM button surface.
  • Do not ask for or store an Aura session token or passkey secret from this hosted flow.
Write Actions
Sign in with Aura is read-only today. For create, buy, sell, offer, transfer, or mint flows, switch to the delegated-user developer lane and use a user-approved access key bundle.
Document Reference
wallet-core/src/loginWithAuraSdk.ts