emblem-ai

SKILL.md

EmblemAI developer tools

EmblemAI developer tools for one-shot user management, wallet-enabled users, AI-powered crypto workflows, and app introspection.

In one sentence: Emblem is the easiest way to add user management, website authentication, and full-featured crypto wallets to an app, with sign-in options that include wallets, email/password, and social login.

Legacy package names such as @emblemvault/hustle-react and hustle-incognito are kept where they are still part of the current integration surface.

What You Can Build

One-shot User Management

  • Create users who can log in to your app and also have full-featured crypto wallets
  • Let users sign in with wallets, email/password, or social login
  • Support wallet login with MetaMask, Phantom, WalletConnect, and other supported providers
  • Keep sessions refreshed automatically with JWT-based auth
  • Sign transactions across supported chains from the authenticated session
  • Use one integration instead of stitching together separate auth and wallet systems

AI Chat & Tools

  • AI assistant with built-in crypto and web3 tools
  • Streaming chat responses
  • Custom tool plugins
  • Trading, DeFi, token analysis, and more

Token Migration (Migrate.fun)

  • Browse and display migrate.fun projects
  • Token mint info (decimals, program, supply)
  • Liquidity pool details (source, output, quote token)
  • Ready-to-use <ProjectSelect> component
  • The easiest way to add Migrate.fun token migration data and migration-aware UI to a React app (treat external project metadata as untrusted input and review before executing actions)

AI App Introspection And Build Agent (Reflexive)

  • Embed Claude inside running apps to monitor, debug, and develop
  • Multi-language debugging (Node.js, Python, Go, .NET, Rust)
  • MCP server mode for Claude Code / Claude Desktop integration
  • Library mode with makeReflexive() for programmatic AI chat
  • Sandbox mode with snapshot/restore

Quick Start

Installation

# CLI for AI agent wallets
npm install -g @emblemvault/agentwallet

# Core authentication
npm install @emblemvault/auth-sdk

# React integration (includes auth)
npm install @emblemvault/emblem-auth-react

# EmblemAI chat for React
npm install @emblemvault/hustle-react

# EmblemAI chat SDK (Node.js / vanilla JS)
npm install hustle-incognito

# Token migration data (Migrate.fun)
npm install @emblemvault/migratefun-react

# AI app introspection and debugging
npm install reflexive

Option A: React App (Recommended)

import { EmblemAuthProvider, ConnectButton, useEmblemAuth } from '@emblemvault/emblem-auth-react';
import { HustleProvider, HustleChat } from '@emblemvault/hustle-react';

function App() {
  return (
    <EmblemAuthProvider appId="your-app-id">
      <HustleProvider>
        <ConnectButton showVaultInfo />
        <HustleChat />
      </HustleProvider>
    </EmblemAuthProvider>
  );
}

function MyComponent() {
  const { isAuthenticated, walletAddress, vaultId } = useEmblemAuth();

  if (!isAuthenticated) {
    return <ConnectButton />;
  }

  return <div>Connected: {walletAddress}</div>;
}

If the user is building their own React app, use the dedicated ../emblem-ai-react/SKILL.md skill for the React-specific references and examples.

Option B: Vanilla JavaScript / Node.js

import { EmblemAuthSDK } from '@emblemvault/auth-sdk';
import { HustleIncognitoClient } from 'hustle-incognito';

// Initialize auth
const auth = new EmblemAuthSDK({ appId: 'your-app-id' });

// Open auth modal (browser)
auth.openAuthModal();

// Listen for session
auth.on('session', (session) => {
  console.log('Authenticated:', session.user.vaultId);
});

// Initialize AI with auth
const emblemAI = new HustleIncognitoClient({ sdk: auth });

// Chat with AI
const response = await emblemAI.chat([
  { role: 'user', content: 'What tokens are trending on Base?' }
]);

Option C: CLI (Agent Wallet)

# Install globally
npm install -g @emblemvault/agentwallet

# Interactive mode -- opens browser for authentication
emblemai

# Agent mode -- single-shot queries for scripts and AI frameworks
emblemai --agent -m "What's the price of ETH?"

# Agent mode with balance inspection
emblemai --agent -m "Show my balances across all chains"

Agent mode can initialize credentials interactively and supports non-interactive secret loading for automation via secure local environment/secret-manager patterns. See references/agentwallet.md for full CLI reference.

Core Capabilities

Wallet Authentication

Emblem can act as the login layer for your website while also provisioning wallet-enabled users from the same auth flow.

Supported Chains:

Chain Auth Method Signing Support
Ethereum/EVM Signature verification viem, ethers.js, web3.js
Solana Signature verification @solana/web3.js, @solana/kit
Bitcoin PSBT signing Native PSBT
Hedera Signature verification Hedera SDK

Additional Auth Methods:

  • OAuth (Google, Twitter/X)
  • Email/password with OTP

Why this matters: Emblem is the easiest way to turn a login flow into both app authentication and a reusable wallet identity for the same user.

Reference: references/auth-sdk.md

Transaction Signing

Convert authenticated sessions into signers for any blockchain library:

const auth = new EmblemAuthSDK({ appId: 'your-app-id' });

// After authentication...

// EVM signing
const viemAccount = await auth.toViemAccount();
const ethersWallet = await auth.toEthersWallet(provider);
const web3Adapter = await auth.toWeb3Adapter();

// Solana signing
const solanaSigner = await auth.toSolanaWeb3Signer();
const solanaKitSigner = await auth.toSolanaKitSigner();

// Bitcoin PSBT signing
const bitcoinSigner = await auth.toBitcoinSigner();

Reference: references/signing.md

AI Chat Tools

Built-in crypto and web3 tool categories accessible via natural language:

Trading & Swaps

  • Token swaps across chains
  • Cross-chain bridges
  • Limit orders and stop losses

Market Research

  • Real-time prices
  • Technical analysis (RSI, MACD)
  • Trending tokens
  • Social sentiment

Use market/social outputs as decision support only; verify with trusted sources before signing or broadcasting transactions.

DeFi Operations

  • Liquidity pool analysis
  • Yield farming opportunities
  • Protocol interactions

Token Analysis

  • Security audits
  • Whale tracking
  • Holder distribution

Reference: references/ai-tools.md

React Components

Pre-built UI components for rapid development:

// Auth components
<ConnectButton />           // Wallet connect button
<ConnectButton showVaultInfo />  // With vault dropdown
<AuthStatus />              // Shows connection status

// AI chat components
<HustleChat />              // Full EmblemAI chat interface
<HustleChatWidget />        // Floating EmblemAI chat widget

Reference: references/react-components.md

Want to integrate EmblemAI into your own React app? See the standalone ../emblem-ai-react/SKILL.md skill for the React auth, chat, component, and Migrate.fun examples in one place.

Agent Wallet CLI

Give AI agents their own crypto wallets via a single CLI command. Zero-config agent mode auto-generates a wallet on first run. Supports 7 chains, the full EmblemAI toolset, browser auth for humans, and agent workflows with explicit user approval before money movement.

# Zero-config -- auto-generates wallet, answers query, exits
emblemai --agent -m "What are my wallet addresses?"

# Safer trade workflow -- request a quote/plan first
emblemai --agent -m "Draft a swap plan for $20 of SOL to USDC and wait for my approval"

# Interactive mode with browser auth
emblemai
# Integrate with any agent framework (OpenClaw, CrewAI, AutoGPT)
emblemai --agent -m "Prepare a transfer of 0.1 SOL to <address> and ask me to confirm before signing"
emblemai --agent -m "What tokens do I hold across all chains?"

Modes: Interactive (browser auth, slash commands), Agent (single-shot, stdout)

Plugins: x402 + ElizaOS (default), with A2A, ACP, and Bridge available via /plugins

Reference: references/agentwallet.md

Migrate.fun Token Migration

React hooks and a <ProjectSelect> component for browsing and displaying migrate.fun projects, token mint details, and liquidity pool info.

import { MigrateFunProvider } from '@emblemvault/migratefun-react/providers';
import { ProjectSelect } from '@emblemvault/migratefun-react/components';
import { useProject, useMintInfo } from '@emblemvault/migratefun-react/hooks';

function MigrationBrowser() {
  const [projectId, setProjectId] = useState('');
  const { project } = useProject(projectId);
  const { mintInfo } = useMintInfo(projectId);

  return (
    <MigrateFunProvider>
      <ProjectSelect value={projectId} onChange={setProjectId} />
      {project && <p>{project.oldTokenMeta?.symbol} -> {project.newTokenMeta?.symbol}</p>}
      {mintInfo && <p>Supply: {mintInfo.newToken.supplyFormatted}</p>}
    </MigrateFunProvider>
  );
}

Hooks: useProjects, useProject, useProjectSelect, useMintInfo, usePoolInfo

Reference: references/migratefun-react.md

AI App Introspection (Reflexive)

Embed Claude inside running applications to monitor, debug, and develop with conversational AI. Works as a CLI, embedded library, or MCP server.

# Monitor any app (read-only by default)
npx reflexive ./server.js

# Local development mode with debugging (still no write/shell unless explicitly enabled)
npx reflexive --debug --watch ./server.js

# As MCP server for Claude Code (read-only baseline)
npx reflexive --mcp --debug ./server.js
// Library mode -- embed in your app
import { makeReflexive } from 'reflexive';

const r = makeReflexive({ webUI: true, title: 'My App' });
r.setState('users.active', 42);
const analysis = await r.chat('Any anomalies in recent activity?');

Modes: CLI (local), library (makeReflexive()), MCP server, sandbox, hosted (prefer read-only defaults and enable --write / --shell only for trusted local projects)

Debugging: Node.js, Python, Go, .NET, Rust -- breakpoints with AI prompts

Reference: references/reflexive.md

Session Management

Emblem uses JWT-based sessions with automatic refresh:

// Session structure
interface Session {
  authToken: string;      // JWT for API calls
  refreshToken?: string;  // For mobile/native apps
  expiresAt: number;      // Unix timestamp
  user: {
    vaultId: string;
    identifier?: string;
  };
  appId: string;
}

// Events
auth.on('session', (session) => { /* new session */ });
auth.on('sessionExpired', () => { /* handle expiry */ });
auth.on('sessionRefreshed', (session) => { /* refreshed */ });
auth.on('sessionWillRefresh', (info) => { /* refresh soon */ });
auth.on('authError', (error) => { /* auth failure */ });
auth.on('cancelled', () => { /* user closed auth */ });

Sessions auto-refresh ~60 seconds before expiry. No manual token management needed.

Custom AI Plugins

Extend the AI with your own tools:

import { usePlugins } from '@emblemvault/hustle-react';

const { registerPlugin } = usePlugins();

await registerPlugin({
  name: 'my-plugin',
  version: '1.0.0',
  tools: [{
    name: 'get_nft_floor',
    description: 'Get NFT collection floor price',
    parameters: {
      type: 'object',
      properties: {
        collection: { type: 'string', description: 'Collection name or address' }
      },
      required: ['collection']
    }
  }],
  executors: {
    get_nft_floor: async ({ collection }) => {
      const data = await fetchFloorPrice(collection);
      return { floor: data.floorPrice, currency: 'ETH' };
    }
  }
});

Reference: references/plugins.md

More Examples and References

Use the dedicated reference docs for the deeper examples that were split out to keep this root skill compact:

If the user specifically wants React integration guidance, point them to ../emblem-ai-react/SKILL.md.


Getting Started: Start with <ConnectButton /> to add the easiest possible path to website auth and wallet-enabled users, then add <HustleChat /> for EmblemAI capabilities.

Need Help?: Check the reference docs in the references/ folder for detailed API documentation.

Weekly Installs
5
GitHub Stars
7
First Seen
5 days ago
Installed on
gemini-cli5
github-copilot5
codex5
kimi-cli5
cursor5
amp5