NEU: Helius übernimmt Light Protocol
Was sind Solana Smart Wallets?
Blog/Entwicklung

Was sind Solana Smart Wallets? Vergleich und Implementierungsleitfaden

Growth bei CrossmintDwight Torculas auf XDwight Torculas auf LinkedIn
8 Min. Lesezeit

Eingebettete Smart Wallets (auch als Account-Abstraction-Wallets bezeichnet) sind jetzt für Entwickler auf Solana verfügbar. Dadurch können Apps ihren Nutzern ein einfacheres Onboarding und eine bessere User Experience bieten.

Gleichzeitig profitieren Entwickler von mehr Flexibilität, Sicherheit und Compliance. Das führt letztlich zu sichereren und benutzerfreundlicheren Onchain-Erlebnissen. 

Anders als nicht ausführbare Konten (Datenkonten) und traditionelle eingebettete Wallets sind Smart Wallets programmierbar. Das ermöglicht eine völlig neue Generation von Funktionen: Gebühren-Sponsoring, mehrere Unterzeichner pro Wallet, Ausgabenlimits und mehr.

In diesem Artikel erfährst du die wichtigsten Unterschiede zwischen eingebetteten Smart Wallets auf Solana und anderen Wallet-Lösungen.

Du erfährst außerdem, wie Smart Wallets auf Solana funktionieren und wie du eingebettete Smart Wallets in deine Anwendung integrierst.

Was ist eine Smart Wallet?

Smart Wallets sind ausführbare Programmkonten, die ausführbaren Code enthalten. Traditionelle Wallets sind einfache Schlüsselpaare, die von einem einzelnen privaten Schlüssel kontrolliert werden. Smart Wallets auf Solana werden dagegen als Programme mit spezieller Logik und besonderen Funktionen implementiert.  

Welche Vorteile bieten Smart Wallets?

Smart Wallets machen Seed-Phrasen und das damit verbundene Verlustrisiko überflüssig. Stattdessen können Nutzer einen oder mehrere „Unterzeichner“ beziehungsweise Schlüssel festlegen, die die Wallet kontrollieren.

Diese Flexibilität ermöglicht benutzerfreundlichere Optionen zur Schlüsselverwaltung, etwa biometrische Verfahren wie Face ID, Touch ID oder Passkeys. Sie unterstützt außerdem erweiterte Sicherheitsmodelle wie Multisig und Kontrollen auf Unternehmensebene, beispielsweise einen serverseitigen Admin-Schlüssel.

Smart Wallets ermöglichen gebührenfreie Transaktionen. Entwickler können Gebühren mit SOL oder anderen SPL-Token wie USDC sponsern und vollständig vor dem Endnutzer verbergen. So entsteht eine vertrautere, Web2-ähnliche User Experience.  

Du kannst damit Apps ohne Aufforderungen zur Transaktionsfreigabe und ohne Seed-Phrasen oder private Schlüssel entwickeln, die verloren gehen könnten. Programme (Smart Contracts) setzen dabei programmierbare Sicherheitsregeln durch.

Eingebettete Smart Wallets vs. eingebettete Wallets vs. nicht ausführbare Konten

Eingebettete Smart WalletsEingebettete WalletsNicht ausführbar
ImplementierungSmart Contract mit individueller LogikIn die App eingebettetes Konto ohne Smart ContractEigenständige Anwendung oder Browsererweiterung
KontokontrolleFlexibel – Nutzer können einen oder mehrere Unterzeichner festlegen, von EOAs wie Phantom bis zu Passkeys und Wallets mit Social Login, optional mit programmatischen RegelnDurch Social Login geschütztes Schlüsselpaar, üblicherweise in einem TEE- oder MPC-ClusterDirekt durch ein nutzereigenes Schlüsselpaar kontrolliert
VerwahrungsmodellFlexibel. Die Wallet kann zur Selbstverwahrung durch den Nutzer, zur Verwahrung durch den Entwickler oder als Hybrid aus beiden Varianten eingerichtet werdenÜblicherweise ohne Fremdverwahrung – einige Wiederherstellungsmethoden können jedoch zu einem Verwahrungsmodell führenSelbstverwahrung durch den Endnutzer
SchlüsselverwaltungMehrere Autorisierungsmethoden (MPC, soziale Wiederherstellung usw.)Üblicherweise durch die Anwendung verwaltetVom Nutzer verwaltete Seed-Phrase bzw. privater Schlüssel
TransaktionsautorisierungIndividuelle Verifizierungslogik (Multisig, Zeitsperren, Limits)Anwendung signiert mit eingebettetem privaten SchlüsselNutzer genehmigt jede Transaktion ausdrücklich
GebührenzahlungUnterstützt abstrahierte und gesponserte Gebühren und ermöglicht Zahlungen mit anderen SPL-Token wie USDC oder USDTNutzer zahlt alle Transaktionsgebühren. Erfordert in jeder App eine OnrampNutzer zahlt alle Transaktionsgebühren
SicherheitsmodellSicherheit wird durch Open-Source-Code im Smart Contract durchgesetzt, optional mit programmierbaren EinschränkungenSicherheit hängt vom proprietären Code des Anbieters der eingebetteten Wallet abSicherheit hängt von clientseitigem, proprietärem Code ab
WiederherstellungsoptionenProgrammierbare Wiederherstellung (sozial, Guardian-Schlüssel)Von der Anwendung bereitgestellte WiederherstellungsmethodenNur Wiederherstellung per Seed-Phrase
AusgabenkontrollenProgrammierbare Ausgabenlimits und FreigabeprozesseEinige eingebettete Wallets unterstützen serverseitige Transaktionsrichtlinien. Vorsicht: Eine fehlerhafte Implementierung kann zu einer Verwahrungsarchitektur führenKeine
Regulatorische AspekteFlexibel – die Verwahrung lässt sich programmieren und Wallets können an regulatorische Änderungen angepasst werdenWende dich an den jeweiligen Wallet-AnbieterGeringere regulatorische Prüfung – vom Nutzer kontrolliert
UnternehmensfunktionenRollenbasierte Zugriffskontrolle und FreigabeprozesseEinige eingebettete Wallets bieten eingeschränkte serverseitige KontrollenKeine
AnbieterbindungGering. Smart Wallets basieren auf Open-Source-Programmen. Nutzer können zu einem anderen Infrastrukturanbieter migriert werden, ohne dass sich ihre Adresse ändert.Hoch. Nutzer können eingebettete Wallets nur verlassen, indem jeder einzelne seinen privaten Schlüssel wiederherstellt. Das kann unsicher sein und manuelle Schritte erfordernGering. Vom Nutzer abhängig

Typische Anwendungsfälle für Smart Wallets

Solana Smart Wallets eignen sich, wenn du flexible Verwahrungsarchitekturen benötigst, zum Beispiel:

  • Treasury-Wallets von Unternehmen, die mehrere Mitarbeiter verwalten
  • Wallets für KI-Agenten in Anwendungsfällen rund um agentenbasierte Finanzsysteme, bei denen der Besitzer des Agenten einen Schlüssel und der Agent selbst einen weiteren benötigt
  • Neobanken und Finanz-Apps, bei denen Nutzer ihre Assets selbst verwahren, der Bank aber erlauben, Geld einzuziehen, etwa für wiederkehrende Zahlungen

Delegierte Unterzeichner lassen sich auf bestimmte Berechtigungen für die Wallet beschränken, beispielsweise durch Limits für Ausgaben oder Assetklassen.

Wie funktionieren Smart Wallets konkret auf Solana?

Smart Wallets auf Solana kombinieren Onchain-Programme mit Offchain-Infrastruktur und weisen einige besondere Solana-spezifische Merkmale auf:

Programmbasierte Architektur

Anders als nicht ausführbare Konten (Datenkonten) werden Solana Smart Wallets beziehungsweise ausführbare Programmkonten üblicherweise als Onchain-Programme implementiert, die ein oder mehrere Konten (PDAs) kontrollieren.

Transaktionsautorisierung

Statt eines einzelnen privaten Schlüssels verwenden Smart Wallets individuelle Autorisierungslogik:

  • Mehrere Unterzeichner können erforderlich sein (Multisig-Funktionalität)
  • Verschiedene Autorisierungsmethoden werden unterstützt (Schlüssel, Biometrie, soziale Verfahren)
  • Zeitsperren und Ausgabenlimits lassen sich programmatisch durchsetzen

Kontodelegierung

Nutzer können bestimmten Adressen gezielte Berechtigungen erteilen. Dadurch lässt sich genauer steuern, was jeder Schlüssel oder jedes Gerät tun darf.

Unterstützung versionierter Transaktionen

Smart Wallets verwenden das standardmäßige Format von Solana für versionierte Transaktionen.

Was ist Account Abstraction?

Account Abstraction (AA) ermöglicht Entwicklern, anpassbare Smart-Contract-Konten zu erstellen, die über nicht ausführbare, an ein einzelnes Schlüsselpaar gebundene Konten hinausgehen. So werden flexiblere User Experiences möglich.

AA ermöglicht individuelle Validierungslogik. Konten können dadurch Sicherheitsfunktionen wie soziale Wiederherstellung, Multisig-Anforderungen oder Ausgabenlimits implementieren, ohne sich auf die Standardregeln der Blockchain zu verlassen. 

Das Hauptziel von AA besteht darin, Blockchain-Technologie für Nutzer unsichtbar zu machen. Technische Hürden wie Transaktionsgebühren und Seed-Phrasen entfallen, während die Vorteile der Selbstverwahrung erhalten bleiben.

Wie funktionieren gebührenfreie Transaktionen auf Solana?

Der wichtigste Vorteil von Smart Wallets für gebührenfreie Transaktionen: Die Abstraktion findet auf Kontoebene statt und erfordert keine dApp-spezifischen Implementierungen. So entsteht eine nahtlosere User Experience, bei der Nutzer möglicherweise nicht einmal bemerken, dass Transaktionsgebühren existieren.

Entwickler können damit Folgendes implementieren:

Integrierte Gebührenabstraktion

Smart Wallets können das Gebühren-Sponsoring direkt in ihre Architektur integrieren. Der Wallet-Vertrag selbst kann festlegen, wer unter welchen Bedingungen die Gebühren zahlt.

Flexible Gebührenwährung

Wenn du die Transaktionsgebühren eines Nutzers nicht sponsern möchtest, kann er sie mit SOL oder Token wie USDC oder USDT bezahlen.

Freigabemechanismen

Smart Wallets können individuelle Verifizierungslogik implementieren, um festzulegen, wann gesponserte Transaktionen zulässig sind, etwa durch Ratenbegrenzungen oder die Beschränkung auf bestimmte Apps.

So fügst du deiner App Solana Smart Wallets mit Crossmint hinzu

Du kannst Smart Wallets auf verschiedene Arten in deine App integrieren: clientseitig, serverseitig oder mit Dual-Key-Architekturen für KI-Agenten.

Im folgenden Tutorial erfährst du, wie du deine erste Smart Wallet serverseitig bereitstellst.

Voraussetzungen

Erstelle zuerst ein Entwicklerkonto in der Crossmint Staging Console. 

Navigiere anschließend zu Settings > General und ändere den Wallet-Typ in „Smart Wallets“.

Du erhältst einen API-Schlüssel, indem du zu Integrate > API Keys gehst und im Abschnitt „Server-side keys“ die Option „Create new key“ auswählst.

Wähle in der Kategorie Wallets API die folgenden Berechtigungsbereiche aus:

  • wallets.create
  • wallets.read
  • wallets:signatures.create
  • wallets:transactions.create
  • wallets:transactions.read
  • wallets:transactions.sign

Klicke auf „Create server key“, um den Schlüssel für den nächsten Schritt zu speichern.

Erstelle deine erste Smart Wallet

Erstelle eine Datei (z. B. createWallet.ts) und füge diesen Code ein:

Code
const apiKey = "YOUR_API_KEY";
const walletType = "solana-smart-wallet";
const adminSigner = {
    // In production, you may want to use an MPC solution, like
    // crossmint-managed MPC keys
    type: "solana-keypair",
};

async function createWallet() {
    const response = await fetch("https://staging.crossmint.com/api/2022-06-09/wallets", {
        method: "POST",
        headers: {
            "X-API-KEY": apiKey,
            "Content-Type": "application/json",
        },
        body: JSON.stringify({
            type: walletType,
            config: {
                adminSigner,
            },
        }),
    });

    return await response.json();
}

createWallet()
    .then((json) => console.log(json))
    .catch((err) => console.error(`error: ${err}`));

Trage vor dem Ausführen bei YOUR_API_KEY den Schlüssel ein, den du im vorherigen Schritt erhalten hast.

Führe jetzt das Skript aus:

Code
npx tsx createWallet.ts

Die API gibt eine Antwort mit den Details deiner neuen Wallet zurück.

Speichere die Wallet-Adresse, da du sie im nächsten Schritt benötigst.

Mit deiner Wallet interagieren

Nachdem wir die Wallets auf deinem Server eingerichtet haben, können wir mit ihnen interagieren.

Öffne zuerst den Crossmint Testnet USDXM Faucet und füge die Wallet-Adresse aus dem vorherigen Schritt ein, um Test-USDXM auf Solana zu erhalten.

Da du jetzt einige Token besitzt, prüfen wir das Guthaben der Wallet (checkBalance.ts):

Code
const apiKey = "YOUR_API_KEY";
const walletAddress = "YOUR_WALLET_ADDRESS"; // From previous step
const tokens = ["sol", "usdc", "usdxm"]; // Tokens to fetch balances for
const chains = ["solana"]; // Chains to query balances from

async function getWalletBalance() {
    const url = new URL(`https://staging.crossmint.com/api/v1-alpha2/wallets/${walletAddress}/balances`);
    url.search = new URLSearchParams({
        tokens: tokens.join(','),
        chains: chains.join(',')
    }).toString();

    const response = await fetch(url, {
        method: "GET",
        headers: {
            "X-API-KEY": apiKey,
            "Content-Type": "application/json",
        },
    });

    return await response.json();
}

getWalletBalance()
    .then((json) => console.log(json))
    .catch((err) => console.error(`error: ${err}`));

Glückwunsch! Du hast jetzt Smart Wallets auf deinem Server bereitgestellt.

In der Dokumentation erfährst du, wie du deine erste Transaktion ausführst, delegierte Unterzeichner hinzufügst und mehr.

Fazit

Smart Wallets werden eine neue Generation von Apps auf Solana ermöglichen, die Onboarding, User Experience, Sicherheit und Compliance verbessern.

Bei Crossmint freuen wir uns, mit unserer einfachen API und unseren No-Code-Tools für Wallets, Zahlungen und Tokenisierung zahlreiche Anwendungsfälle abzudecken – von IP über Treueprogramme bis hin zu KI-Agenten. Unsere Infrastruktur skaliert zuverlässig auf Millionen von Nutzern. Mit der Einführung eingebetteter Solana Smart Wallets unterstützen wir jetzt auch Fintechs und Apps für KI-Agenten.

Wenn du mehr darüber erfahren möchtest, wie du Solana Smart Wallets in deinem Projekt implementierst, kontaktiere uns. Wir helfen dir gerne weiter.

Weitere Ressourcen

Helius abonnieren

Bleib bei der Solana-Entwicklung auf dem Laufenden und erhalte Updates, wenn wir neue Beiträge veröffentlichen

Vergrößertes Bild