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

# So finden Sie eine Solana Wallet-Identität

> Ermitteln Sie bekannte Solana-Wallets anhand von Adresse oder SNS/ANS-Domain. Suchen Sie einzelne Einträge oder verarbeiten Sie bis zu 100 Adressen und Domains gleichzeitig.

<Note>
  Die Wallet API befindet sich im Beta-Stadium. Endpunkte und Antwortformate können sich ändern.
</Note>

## Überblick

Der Wallet Identity Endpoint identifiziert bekannte Wallet-Adressen auf Solana, einschließlich zentralisierter Börsen, DeFi-Protokolle, Institutionen und anderer anerkannter Einheiten. Verwenden Sie ihn für Compliance, Analysen und zur Anzeige von menschenlesbaren Namen für bekannte Adressen.

Sowohl der einzelne (`GET /v1/wallet/{wallet}/identity`) als auch der Batch-Endpunkt (`POST /v1/wallet/batch-identity`, bis zu 100 Einträge) akzeptieren **SNS `.sol` Domains** und **ANS benutzerdefinierte TLDs** (z. B. `.bonk`, `.poor`, `.abc`) zusätzlich zu rohen Solana-Adressen. Die Domain-Auflösung erfolgt nur im Mainnet.

Dieser Endpunkt verwendet dasselbe Identitätssystem, das [Orb](https://orbmarkets.io/), den Helius Solana Block Explorer, antreibt. Die Datenbank umfasst über 32.500 Labels (menschenlesbare primäre Namen, darunter über 3.000 Programme) und mehr als 21,5 Millionen Tags (kategorische Eigenschaften wie "Binance-Einzahlungsadresse" oder "Seeker Phone") und wächst kontinuierlich.

Sowohl der einzelne (`GET /v1/wallet/{wallet}/identity`) als auch der Batch-Endpunkt (`POST /v1/wallet/batch-identity`) erfordern einen kostenpflichtigen Plan. Anfragen mit einem Free-Plan-API-Schlüssel geben `403 Forbidden` zurück. Siehe [Plananforderungen](/docs/de/wallet-api/overview#plananforderungen) für die vollständige Abdeckungstabelle.

## Wann sollte man dies verwenden

Verwenden Sie die Wallet Identity API, wenn Sie:

* **Exchange-Wallets identifizieren müssen**: bestimmen, ob eine Wallet zu Binance, Coinbase, Kraken und anderen gehört.
* **Protokollaktivitäten verfolgen**: DeFi-Protokoll-Wallets und Treasury-Adressen identifizieren.
* **Compliance und AML**: Transaktionen mit bekannten Entitäten kennzeichnen.
* **Analytik**: Wallet-Typen in Ihrer Datenpipeline kategorisieren.
* **Benutzererfahrung**: "Gesendet an Binance 1" anstelle einer rohen Adresse anzeigen.
* **Batch-Verarbeitung**: Hunderte von Adressen effizient nachschlagen.

## Schnellstart

### Einzelnes Wallet-Nachschlagen

Identitätsinformationen für eine einzelne Wallet-Adresse nachschlagen:

<Tabs>
  <Tab title="JavaScript">
    ```javascript theme={"system"}
    const getWalletIdentity = async (address) => {
      const url = `https://api.helius.xyz/v1/wallet/${address}/identity?api-key=YOUR_API_KEY`;

      const response = await fetch(url);
      if (!response.ok) {
        if (response.status === 404) {
          console.log("No identity found for this address");
          return null;
        }
        throw new Error(`HTTP error! status: ${response.status}`);
      }

      const identity = await response.json();
      console.log(`Found: ${identity.name} (${identity.category})`);
      return identity;
    };

    // Example: Binance wallet
    getWalletIdentity("HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664");
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={"system"}
    import requests

    def get_wallet_identity(address: str):
        url = f"https://api.helius.xyz/v1/wallet/{address}/identity"
        headers = {"X-Api-Key": "YOUR_API_KEY"}

        response = requests.get(url, headers=headers)

        if response.status_code == 404:
            print("No identity found for this address")
            return None

        response.raise_for_status()
        identity = response.json()
        print(f"Found: {identity['name']} ({identity['category']})")
        return identity

    # Example: Binance wallet
    get_wallet_identity("HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664")
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={"system"}
    curl "https://api.helius.xyz/v1/wallet/HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664/identity?api-key=YOUR_API_KEY"
    ```
  </Tab>
</Tabs>

#### Nachschlagen nach Domainnamen

Sie können auch eine SNS `.sol` Domain oder eine ANS benutzerdefinierte TLD direkt übergeben — der Endpunkt löst die Domain auf und gibt die Identität der Besitzeradresse zurück:

<Tabs>
  <Tab title="JavaScript">
    ```javascript theme={"system"}
    // Works identically — the endpoint resolves the domain first.
    const identity = await getWalletIdentity("toly.sol");

    // ANS custom TLD
    await getWalletIdentity("miester.bonk");
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={"system"}
    # Works identically — the endpoint resolves the domain first.
    identity = get_wallet_identity("toly.sol")

    # ANS custom TLD
    get_wallet_identity("miester.bonk")
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={"system"}
    # SNS (.sol) domain
    curl "https://api.helius.xyz/v1/wallet/toly.sol/identity?api-key=YOUR_API_KEY"

    # ANS custom TLD
    curl "https://api.helius.xyz/v1/wallet/miester.bonk/identity?api-key=YOUR_API_KEY"
    ```
  </Tab>
</Tabs>

Die Antwort des Einzelnachschlageendpunkts ist das Standard-Identitätsobjekt für die **aufgelöste** Adresse — es gibt keinen `inputDomain` Marker. Wenn Sie Eingaben mit Ausgaben korrelieren müssen (zum Beispiel, wenn Sie viele Domains auf einmal nachschlagen), verwenden Sie den Batch-Endpunkt.

<Note>
  Die Domain-Auflösung erfolgt nur im Mainnet. Auf devnet/testnet gibt eine Domain-Eingabe zu diesem Endpunkt `400` zurück. Positive Auflösungen werden bis zu 2 Stunden zwischengespeichert, sodass eine kürzlich übertragene Domain möglicherweise kurzzeitig auf die Identität des vorherigen Besitzers aufgelöst wird.
</Note>

### Batch-Nachschlagen (bis zu 100 Einträge)

Suchen Sie mehrere Einträge in einer einzigen Anfrage für eine bessere Leistung. Jeder Eintrag kann entweder eine Adresse oder ein Domainname sein:

<Tabs>
  <Tab title="JavaScript">
    ```javascript theme={"system"}
    const batchIdentityLookup = async (addresses) => {
      const url = "https://api.helius.xyz/v1/wallet/batch-identity?api-key=YOUR_API_KEY";

      const response = await fetch(url, {
        method: "POST",
        headers: {
          "Content-Type": "application/json"
        },
        body: JSON.stringify({ addresses })
      });

      if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
      }

      const identities = await response.json();
      return identities;
    };

    // Example: Mix addresses and domains in a single request
    const addresses = [
      "HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664", // Binance (address)
      "toly.sol",                                      // SNS domain
      "miester.bonk"                                   // ANS custom TLD
    ];

    batchIdentityLookup(addresses).then(identities => {
      identities.forEach(identity => {
        if (identity.unresolved) {
          console.log(`${identity.inputDomain}: could not be resolved`);
          return;
        }
        const label = identity.inputDomain
          ? `${identity.inputDomain} → ${identity.address}`
          : identity.address;
        console.log(`${label}: ${identity.name}`);
      });
    });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={"system"}
    import requests

    def batch_identity_lookup(addresses: list[str]):
        url = "https://api.helius.xyz/v1/wallet/batch-identity"
        headers = {
            "X-Api-Key": "YOUR_API_KEY",
            "Content-Type": "application/json"
        }

        response = requests.post(
            url,
            headers=headers,
            json={"addresses": addresses}
        )

        response.raise_for_status()
        return response.json()

    # Example: Mix addresses and domains in a single request
    addresses = [
        "HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664",  # Binance (address)
        "toly.sol",                                       # SNS domain
        "miester.bonk"                                    # ANS custom TLD
    ]

    identities = batch_identity_lookup(addresses)
    for identity in identities:
        if identity.get("unresolved"):
            print(f"{identity['inputDomain']}: could not be resolved")
            continue
        label = f"{identity['inputDomain']} -> {identity['address']}" if identity.get("inputDomain") else identity["address"]
        print(f"{label}: {identity['name']}")
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={"system"}
    curl -X POST "https://api.helius.xyz/v1/wallet/batch-identity?api-key=YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "addresses": [
          "HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664",
          "toly.sol",
          "miester.bonk"
        ]
      }'
    ```
  </Tab>
</Tabs>

## Antwortformat

Ein erfolgreiches Einzelnachschlagen gibt das Identitätsobjekt für die aufgelöste Adresse zurück:

```json theme={"system"}
{
  "address": "HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664",
  "type": "exchange",
  "name": "Binance 1",
  "category": "Centralized Exchange",
  "tags": ["Centralized Exchange"]
}
```

In einer **Batch**-Antwort trägt jeder Eintrag, dessen Eingabe ein Domainname war, ein zusätzliches `inputDomain` Feld, damit Sie die Antwort zurück zur ursprünglichen Anfrage korrelieren können:

```json theme={"system"}
{
  "address": "7v91N7iZ9mNicL8WfG6cgSCKyRXydQjLh6UYBWwm6y1Q",
  "type": "wallet",
  "name": "toly",
  "category": "Key Opinion Leader",
  "tags": ["Key Opinion Leader"],
  "inputDomain": "toly.sol"
}
```

Wenn eine Domain in einer Batch-Anfrage nicht aufgelöst werden kann, schlägt der Batch nicht fehl — der Eintrag wird an Ort und Stelle mit `address: null`, `type: "unknown"` und `unresolved: true` zurückgegeben. Die Anfragenreihenfolge bleibt erhalten:

```json theme={"system"}
{
  "address": null,
  "type": "unknown",
  "inputDomain": "nonexistent-xyz.sol",
  "unresolved": true
}
```

Beim **einzelnen** Endpunkt wird eine 404 zurückgegeben, wenn das Wallet keinen Identitätseintrag hat **oder** wenn eine Domaineingabe nicht aufgelöst werden konnte:

```json theme={"system"}
{
  "error": "No identity information available for this address",
  "code": 404
}
```

```json theme={"system"}
{
  "error": "Domain 'nonexistent-xyz.sol' could not be resolved",
  "code": 404
}
```

### Identitätskategorien

Wallets und Programme werden in Kategorien klassifiziert, die von der Orb-Identitätsdatenbank betrieben werden. Konten und Programme verwenden separate Kategorie-Sets. Die folgenden Tabellen listen jede unterstützte Kategorie auf.

<AccordionGroup>
  <Accordion title="Kontotyp-Tags">
    | Kategorie                  | Beschreibung                               | Beispiele                                                       |
    | -------------------------- | ------------------------------------------ | --------------------------------------------------------------- |
    | Centralized Exchange       | CEX-Wallets und Hot Wallets                | Binance 1, Coinbase 1, Kraken, OKX Exchange 1, Bybit Hot Wallet |
    | Cross-chain Bridge         | Bridge-Protokolladressen                   | Wormhole Bridge, AllBridge, Portal Bridge, deBridge             |
    | DeFi                       | DeFi-Protokolladressen                     | Jupiter, Raydium, Orca, Marinade Finance, Kamino                |
    | Key Opinion Leader         | Bedeutende Persönlichkeiten und Influencer | Anatoly Yakovenko, Raj Gokal                                    |
    | Market Maker               | Market-Making-Firmen                       | Jump Trading, Wintermute, GSR Markets                           |
    | Trading Firm               | Proprietäre Handelsfirmen                  | Alameda Research, DRW Trading                                   |
    | Validator                  | Validator- und Stake-Pool-Adressen         | Coinbase Validator, Jito Validator, Figment Validator           |
    | Treasury                   | Projekte und Protokollschätze              | Marinade Treasury, Helium Treasury, Solana Foundation Treasury  |
    | DAO                        | Dezentralisierte autonome Organisationen   | Mango DAO, Grape DAO, MonkeDAO Treasury                         |
    | NFT                        | NFT-Marktplätze und Projekte               | Magic Eden, Tensor, OpenSea Solana, DeGods Treasury             |
    | Stake Pool                 | Liquiditätsbetreuungsadressen              | Marinade Stake Pool, Jito Stake Pool, BlazeStake                |
    | Multisig                   | Multi-Signatur-Wallets                     | Squads Multisig, Solana Foundation Multisig                     |
    | Oracle                     | Preis-Feed- und Orakel-Anbieter            | Pyth Network, Switchboard Oracle, Chainlink Solana              |
    | Game                       | Gaming- und GameFi-Projekte                | Star Atlas, Aurory, Genopets Treasury                           |
    | Payments                   | Zahlungsprozessoren                        | Solana Pay, Sphere, Helio Pay                                   |
    | Tools                      | Entwickler-Tools und Dienstprogramme       | Phantom Wallet, Backpack, Solflare Wallet                       |
    | Airdrop                    | Airdrop-Verteilungsadressen                | Jupiter Airdrop, Pyth Airdrop Distributor                       |
    | Governance                 | Governance-Programm-Adressen               | Realms Governance, SPL Governance                               |
    | Authority                  | Programmbehörden und -administratoren      | Token Program Authority, Metaplex Authority                     |
    | Jito                       | Jito-spezifische Adressen                  | Jito Tip 1, Jito Tip 2, Jito MEV Payment                        |
    | Memecoin                   | Memecoin-Projekte                          | Bonk Treasury, Dogwifhat, Book of Meme                          |
    | Casino & Gambling          | Glücksspiel- und Casino-dApps              | Stake.com Hot Wallet, Rollbit, DexSport                         |
    | DePIN                      | Dezentralisierte physische Infrastruktur   | Helium Network, Render Network, Hivemapper                      |
    | Proprietary AMM            | Custom AMM Implementierungen               | Phoenix DEX, GooseFX                                            |
    | Restaking                  | Restaking-Protokolle                       | Solayer, Fragmetric                                             |
    | Vault                      | Tresor- und Verwahradresssen               | Solend Vault, Tulip Vault, Francium Vault                       |
    | Fees                       | Gebühreneinzugsadressen                    | Jupiter Fee Collector, Raydium Fees                             |
    | Fundraise                  | Fundraising- und ICO-Adressen              | Token Sale Wallet, Fundraise Multisig                           |
    | Genesis Block Distribution | Genesis-Verteilungsadressen                | Solana Genesis Distribution                                     |
    | Non-Circulating Supply     | Nicht zirkulierende Token-Adressen         | Team Vesting Wallet, Foundation Reserve                         |
    | Transaction Sending        | Transaktionssendungsdienste                | Jito Tip 1, Jito Tip 2, Helius Sender Tip 1                     |
    | System                     | Solana-Systemprogramme                     | System Program, Config Program                                  |
    | X402                       | X402-Protokoll-Adressen                    | X402 Protocol                                                   |
    | Other                      | Nicht kategorisierte bekannte Adressen     | Verschiedene bekannte Wallets                                   |
  </Accordion>

  <Accordion title="Bösartige Kategorien">
    | Kategorie                  | Beschreibung                        | Beispiele                                                         |
    | -------------------------- | ----------------------------------- | ----------------------------------------------------------------- |
    | Exploiter, Hackers & Scams | Bekannte Exploit- und Hack-Adressen | Wormhole Exploiter Wallet, SagaDAO Hacker Wallet, Mango Exploiter |
    | Hacker                     | Bestätigte Hacker-Adressen          | Solana Hack 2022, DeFi-Protokoll-Hacker                           |
    | Rugger                     | Rug-Pull-Verursacher                | Squid Game Token Rugger, Bekannte Rug-Pull-Wallet                 |
    | Scammer                    | Bestätigte Betrugsadressen          | Fake Airdrop Scammer, Phishing Scam Wallet                        |
    | Spam                       | Spam-Token-Ersteller                | Spam-Token-Ersteller, Airdrop-Spammer                             |
  </Accordion>

  <Accordion title="Programmkategorien">
    Programme (Smart Contracts) werden separat klassifiziert:

    | Kategorie                 | Beschreibung                   | Beispiele              |
    | ------------------------- | ------------------------------ | ---------------------- |
    | Swap                      | Token-Swap-Protokolle          | Jupiter, Raydium, Orca |
    | DeFi                      | Allgemeine DeFi-Protokolle     | Drift, Mango           |
    | Borrow Lend               | Kreditvergabeprotokolle        | Solend, MarginFi       |
    | NFT                       | NFT-Marktplätze                | Magic Eden, Tensor     |
    | Staking                   | Staking-Programme              | Marinade, Jito         |
    | Bridge                    | Cross-Chain-Brücken            | Wormhole, AllBridge    |
    | Aggregator                | DEX-Aggregatoren               | Jupiter Aggregator     |
    | Perpetuals                | Perpetual-Futures              | Drift, Mango           |
    | Oracle                    | Orakel-Anbieter                | Pyth, Switchboard      |
    | Launchpad                 | Token-Launchpads               | Raydium Launchpad      |
    | Governance                | Governance-Programme           | SPL Governance         |
    | Game or Casino            | Gaming-Programme               | Star Atlas             |
    | Prediction Market         | Vorhersagemärkte               | Drift Predictions      |
    | Payments                  | Zahlungsprotokolle             | Solana Pay             |
    | Privacy                   | Datenschutzprotokolle          | Elusiv                 |
    | Compression               | Zustandkompression             | Bubblegum              |
    | Infrastructure            | Kerninfrastruktur              | Metaplex               |
    | Tools                     | Entwicklerwerkzeuge            | Clockwork              |
    | RWA                       | Reale Vermögenswerte           | Ondo Finance           |
    | DePIN                     | Dezentralisierte Infrastruktur | Helium, Render         |
    | DeSci                     | Dezentralisierte Wissenschaft  | VitaDAO                |
    | Airdrop                   | Airdrop-Programme              | Merkle distributors    |
    | Web3                      | Web3-Anwendungen               | Verschiedene           |
    | Native                    | Solana-native Programme        | System Program         |
    | Proprietary AMM           | Custom AMM Designs             | Phoenix                |
    | Trading Sniper            | Handels-Bots                   | MEV bots               |
    | Arbitrage or Sandwich Bot | MEV- und Arb-Bots              | Jito bundles           |
    | Spam                      | Spam-Programme                 | Spam tokens            |
    | Other                     | Nicht kategorisierte Programme | Verschiedene           |
  </Accordion>
</AccordionGroup>

## Anwendungsfälle

### Exchange-Einzahlungen kennzeichnen

Ermitteln, wann Gelder an eine zentralisierte Börse gesendet werden:

```javascript theme={"system"}
const checkIfExchange = async (address) => {
  try {
    const identity = await getWalletIdentity(address);
    if (identity && identity.category === "Centralized Exchange") {
      console.log(`Funds sent to ${identity.name}`);
      return true;
    }
  } catch (error) {
    // Not a known exchange
  }
  return false;
};
```

### Anzeigen von menschenlesbaren Namen

Zeigen Sie in Ihrer Benutzeroberfläche freundliche Namen anstelle von Adressen an:

```javascript theme={"system"}
const getDisplayName = async (address) => {
  try {
    const identity = await getWalletIdentity(address);
    return identity ? identity.name : shortenAddress(address);
  } catch (error) {
    return shortenAddress(address);
  }
};

// Usage in UI
const displayName = await getDisplayName("HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664");
// Returns: "Binance 1" instead of "HXsKP...G664"
```

### Batch-Verarbeitung von Transaktionsgegenparteien

Identifizieren Sie effizient alle Gegenparteien in einer Liste von Transaktionen:

```javascript theme={"system"}
const identifyTransactionCounterparties = async (transactions) => {
  // Extract all unique addresses
  const addresses = [...new Set(
    transactions.map(tx => tx.counterparty)
  )];

  // Batch lookup (up to 100 at a time)
  const allIdentities = [];
  for (let i = 0; i < addresses.length; i += 100) {
    const chunk = addresses.slice(i, i + 100);
    const identities = await batchIdentityLookup(chunk);
    allIdentities.push(...identities);
  }

  // Create a map for quick lookup
  const identityMap = new Map(
    allIdentities.map(id => [id.address, id])
  );

  // Enrich transactions with identity info
  return transactions.map(tx => ({
    ...tx,
    counterpartyName: identityMap.get(tx.counterparty)?.name || "Unknown"
  }));
};
```

## Best Practices

* **Verwenden Sie den Batch-Endpunkt für mehrere Nachschlagen.** Wenn Sie mehr als eine Adresse nachschlagen, ist `POST /v1/wallet/batch-identity` erheblich schneller als einzelne Anfragen zu stellen.
* **Behandeln Sie 404-Antworten mit Sorgfalt.** Nicht alle Wallets haben Identitätsinformationen. Zeigen Sie stattdessen die rohe Adresse an.
* **Ergebnisse zwischenspeichern.** Identitätsdaten ändern sich selten. Lokal zwischenspeichern, um API-Aufrufe zu reduzieren.
* **Beachten Sie die Batch-Größenbegrenzung.** Der Batch-Endpunkt unterstützt bis zu 100 Einträge pro Anfrage. Größere Datensätze entsprechend aufteilen.

## Häufige Fehler

| Fehlercode | Beschreibung                                                                      | Lösung                                                                                                                                                                                                      |
| ---------- | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 400        | Ungültiges Wallet-Adresse- oder Domain-Format oder Domaineingabe im Nicht-Mainnet | Überprüfen Sie, ob die Eingabe eine gültige Base58-Solana-Adresse oder eine gut geformte Domain (z. B. `toly.sol`) ist und dass das Mainnet anvisiert wird                                                  |
| 401        | Fehlender oder ungültiger API-Schlüssel                                           | Stellen Sie sicher, dass Ihr API-Schlüssel in der Anfrage enthalten ist                                                                                                                                     |
| 403        | Endpunkt erfordert einen kostenpflichtigen Plan                                   | Identitätsabfragen sind im kostenlosen Plan nicht verfügbar. [Upgrade Ihren Plan](https://dashboard.helius.dev) auf eine kostenpflichtige Stufe                                                             |
| 404        | Keine Identität gefunden oder Domain konnte nicht aufgelöst werden                | Nur für Einzelendpunkt — das Wallet hat keinen Identitätseintrag oder die Domain existiert nicht. In Batch-Anfragen werden nicht auflösbare Domains als `unresolved: true` Einträge statt 404 zurückgegeben |
| 429        | Ratenbegrenzung überschritten                                                     | Häufigkeit der Anfragen verringern oder Plan aktualisieren                                                                                                                                                  |

## Nächste Schritte

<CardGroup cols={3}>
  <Card title="Finanzierungsquelle" icon="money-bill-transfer" href="/docs/de/wallet-api/funded-by">
    Verfolgen Sie, wer ursprünglich ein Wallet finanziert hat — Finanzierungsarten verwenden diese Identitätskategorien erneut.
  </Card>

  <Card title="Wallet API Überblick" icon="wallet" href="/docs/de/wallet-api/overview">
    Alle Wallet API-Endpunkte und gemeinsamen Konventionen.
  </Card>

  <Card title="API-Referenz" icon="code" href="/docs/de/api-reference/wallet-api/identity">
    Anforderungs- und Antwortschemata für Identitätsabfrage.
  </Card>
</CardGroup>
