NOUVEAU : Helius acquiert Light Protocol
que sont les portefeuilles intelligents solana
Blog/Développement

Que sont les portefeuilles intelligents Solana ? Comparatif et guide d’implémentation

Croissance chez CrossmintDwight Torculas sur XDwight Torculas sur LinkedIn
8 min de lecture

Les portefeuilles intelligents intégrés (également appelés portefeuilles d’abstraction de compte) sont désormais disponibles pour les développeurs sur Solana. Les applications peuvent ainsi simplifier l’intégration et l’expérience utilisateur.

Dans le même temps, les développeurs bénéficient d’une flexibilité, d’une sécurité et d’une conformité accrues, ce qui se traduit par des expériences onchain plus sûres et plus conviviales. 

Contrairement aux comptes non exécutables (comptes de données) et aux portefeuilles intégrés traditionnels, les portefeuilles intelligents sont programmables, ce qui ouvre la voie à une toute nouvelle génération de fonctionnalités : prise en charge des frais de gas, plusieurs signataires par portefeuille, plafonds de dépenses, etc.

Dans cet article, vous découvrirez les principales différences entre les portefeuilles intelligents intégrés sur Solana et les autres solutions de portefeuille.

Vous comprendrez également comment fonctionnent les portefeuilles intelligents sur Solana et comment les intégrer à votre application.

Qu’est-ce qu’un portefeuille intelligent ?

Les portefeuilles intelligents sont des comptes de programme exécutables qui contiennent du code exécutable. Contrairement aux portefeuilles traditionnels, qui sont de simples paires de clés contrôlées par une seule clé privée, les portefeuilles intelligents sur Solana sont implémentés sous forme de programmes dotés d’une logique et de fonctionnalités spécifiques.  

Quels sont les avantages des portefeuilles intelligents ?

Les portefeuilles intelligents éliminent le besoin de phrases de récupération et le risque de perte associé. Ils permettent aux utilisateurs de désigner à la place un ou plusieurs « signataires », ou clés, pour contrôler le portefeuille.

Cette flexibilité permet de proposer des options de gestion des clés plus conviviales, telles que la biométrie (par exemple Face ID, Touch ID ou les clés d’accès), ainsi que des dispositifs de sécurité avancés (par exemple la signature multiple) ou des contrôles adaptés aux entreprises (par exemple une clé d’administration côté serveur).

Les portefeuilles intelligents rendent possibles les transactions sans frais en permettant aux développeurs de prendre en charge les frais en SOL ou dans d’autres tokens SPL comme l’USDC, puis de les masquer facilement à l’utilisateur final. L’expérience utilisateur se rapproche ainsi de celle du web2.  

Vous pouvez ainsi créer des applications sans demandes d’approbation de transaction, sans phrase de récupération ni clé privée susceptible d’être perdue, et avec une sécurité programmable appliquée par des programmes (contrats intelligents).

Portefeuilles intelligents intégrés, portefeuilles intégrés et comptes non exécutables

Portefeuilles intelligents intégrésPortefeuilles intégrésNon exécutables
ImplémentationContrat intelligent avec logique personnaliséeCompte sans contrat intelligent intégré à l’applicationApplication autonome ou extension de navigateur
Contrôle du compteFlexible : les utilisateurs peuvent désigner un ou plusieurs signataires (des EOA comme Phantom aux clés d’accès et aux portefeuilles avec connexion sociale), avec des règles programmatiques facultativesPaire de clés protégée par une connexion sociale (généralement dans un TEE ou un cluster MPC)Contrôlé directement par une paire de clés appartenant à l’utilisateur
Modèle de conservationFlexible. Ils peuvent être configurés pour être en auto-conservation par l’utilisateur, en conservation par le développeur ou même selon un modèle hybride combinant les deuxGénéralement sans conservation, mais certaines méthodes de récupération peuvent les convertir en solutions avec conservationAuto-conservation par l’utilisateur final
Gestion des clésPlusieurs méthodes d’autorisation (MPC, récupération sociale, etc.)Généralement gérée par l’applicationPhrase de récupération ou clé privée gérée par l’utilisateur
Autorisation des transactionsLogique de vérification personnalisée (signature multiple, verrouillage temporel, limites)L’application signe avec une clé privée intégréeL’utilisateur approuve explicitement chaque transaction
Paiement des fraisPrend en charge l’abstraction et la prise en charge des frais, ce qui permet de payer dans d’autres tokens SPL comme l’USDC ou l’USDTL’utilisateur paie tous les frais de transaction. Nécessite une passerelle d’achat dans chaque applicationL’utilisateur paie tous les frais de transaction
Modèle de sécuritéSécurité appliquée dans le code open source du contrat intelligent, avec des contraintes programmables facultativesSécurité dépendante du code source fermé du fournisseur de portefeuille intégréSécurité dépendante du code source fermé côté client
Options de récupérationRécupération programmable (sociale, clés de gardiens)Méthodes de récupération fournies par l’applicationRécupération uniquement à partir d’une phrase de récupération
Contrôles des dépensesPlafonds de dépenses programmables, workflows d’approbationCertains portefeuilles intégrés prennent en charge des politiques de transaction côté serveur (attention : une implémentation incorrecte peut créer une architecture avec conservation)Aucun
Considérations réglementairesFlexibles : la conservation peut être programmée, ce qui permet d’adapter les portefeuilles à l’évolution de la réglementationConsultez le fournisseur de portefeuille concernéContrôle réglementaire moindre : contrôlé par l’utilisateur
Fonctionnalités pour les entreprisesContrôle des accès basé sur les rôles, workflows d’approbationCertains portefeuilles intégrés disposent de contrôles limités côté serveurAucune
Dépendance envers un fournisseurFaible. Les portefeuilles intelligents reposent sur des programmes open source. Il est possible de migrer les utilisateurs depuis un fournisseur d’infrastructure sans modifier leur adresse.Élevée. Pour quitter des portefeuilles intégrés, chaque utilisateur doit récupérer sa clé privée, ce qui peut être peu sûr et nécessiter des étapes manuellesFaible. Dépend de l’utilisateur

Cas d’usage courants des portefeuilles intelligents

Les portefeuilles intelligents Solana sont utiles lorsque vous avez besoin d’architectures de conservation flexibles, par exemple pour :

  • Les portefeuilles de trésorerie d’entreprise gérés par plusieurs employés
  • Les portefeuilles d’agents IA dans les cas d’usage de la finance agentique, où le propriétaire de l’agent a besoin d’une clé et l’agent lui-même d’une autre
  • Les néobanques et applications financières où l’utilisateur conserve lui-même ses actifs, mais autorise la banque à prélever des fonds (par exemple pour des paiements récurrents)

Une caractéristique essentielle des signataires délégués est que leurs autorisations sur le portefeuille peuvent être limitées, notamment par des restrictions de dépenses ou de catégories d’actifs.

Comment les portefeuilles intelligents fonctionnent-ils spécifiquement sur Solana ?

Sur Solana, les portefeuilles intelligents reposent sur une combinaison de programmes onchain et d’infrastructures offchain, avec certaines caractéristiques propres à Solana :

Architecture basée sur des programmes

Contrairement aux comptes non exécutables (comptes de données), les portefeuilles intelligents Solana (ou comptes de programme exécutables) sont généralement implémentés sous forme de programmes onchain qui contrôlent un ou plusieurs comptes (PDA).

Autorisation des transactions

Au lieu d’une seule clé privée, les portefeuilles intelligents utilisent une logique d’authentification personnalisée :

  • Plusieurs signataires peuvent être requis (fonctionnalité de signature multiple)
  • Différentes méthodes d’authentification peuvent être prises en charge (clés, biométrie, réseaux sociaux)
  • Des verrouillages temporels et des plafonds de dépenses peuvent être appliqués par programmation

Délégation de compte

Les utilisateurs peuvent déléguer des autorisations spécifiques à différentes adresses, ce qui permet un contrôle plus précis des actions que chaque clé ou appareil peut effectuer.

Compatibilité avec les transactions versionnées

Les portefeuilles intelligents utilisent le format standard de transaction versionnée de Solana.

Qu’est-ce que l’abstraction de compte ?

L’abstraction de compte (AA) permet aux développeurs de créer des comptes de contrat intelligent personnalisables qui vont au-delà des comptes non exécutables liés à une seule paire de clés, pour offrir des expériences utilisateur plus flexibles.

L’AA autorise une logique de validation personnalisée. Les comptes peuvent ainsi implémenter des fonctionnalités de sécurité comme la récupération sociale, des exigences de signature multiple ou des plafonds de dépenses, sans dépendre des règles par défaut de la blockchain. 

L’objectif principal de l’AA est de rendre la technologie blockchain invisible aux utilisateurs en supprimant les obstacles techniques, comme les frais de transaction et les phrases de récupération, tout en conservant les avantages de l’auto-conservation.

Comment fonctionnent les transactions sans frais sur Solana ?

Pour les transactions sans frais, le principal avantage des portefeuilles intelligents est que l’abstraction s’effectue au niveau du compte, sans nécessiter d’implémentation propre à chaque dApp. L’expérience est ainsi plus fluide, au point que les utilisateurs peuvent ne même pas se rendre compte que des frais de transaction existent.

Les développeurs peuvent ainsi implémenter :

Abstraction des frais intégrée

Les portefeuilles intelligents peuvent intégrer directement la prise en charge des frais à leur architecture. Le contrat du portefeuille lui-même peut définir des règles déterminant qui paie les frais et dans quelles circonstances.

Devise de paiement des frais flexible

Si vous ne souhaitez pas prendre en charge les frais de transaction d’un utilisateur, celui-ci peut les payer en SOL ou avec des tokens tels que l’USDC ou l’USDT.

Mécanismes d’approbation

Les portefeuilles intelligents peuvent implémenter une logique de vérification personnalisée pour déterminer quand les transactions prises en charge sont autorisées, par exemple en limitant leur fréquence ou en les restreignant à certaines applications.

Comment ajouter des portefeuilles intelligents Solana à votre application avec Crossmint

Il existe de nombreuses façons d’intégrer des portefeuilles intelligents à votre application : côté client, côté serveur ou avec des architectures à deux clés pour les agents IA.

Dans le tutoriel ci-dessous, vous apprendrez à déployer votre premier portefeuille intelligent côté serveur.

Prérequis

Commencez par créer un compte développeur dans la console de préproduction Crossmint. 

Accédez ensuite à Paramètres du projet > Général et définissez le type de portefeuille sur « Portefeuilles intelligents ».

Pour obtenir une clé API, accédez à Intégrer > Clés API et sélectionnez « Créer une nouvelle clé » dans la section « Clés côté serveur ».

Dans la catégorie API des portefeuilles, sélectionnez les autorisations suivantes :

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

Cliquez sur « Créer une clé serveur » pour enregistrer la clé en vue de l’étape suivante.

Créez votre premier portefeuille intelligent

Créez un fichier (par exemple createWallet.ts) et saisissez ce code :

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}`));

Avant de l’exécuter, renseignez YOUR_API_KEY avec la clé obtenue à l’étape précédente.

Exécutez maintenant le script :

Code
npx tsx createWallet.ts

L’API renverra une réponse contenant les informations de votre nouveau portefeuille.

Enregistrez l’adresse du portefeuille, car vous l’utiliserez à l’étape suivante.

Interagissez avec votre portefeuille

Maintenant que les portefeuilles sont configurés sur votre serveur, interagissons avec eux.

Commencez par accéder au faucet USDXM Testnet de Crossmint, puis collez l’adresse de portefeuille obtenue à l’étape précédente pour recevoir des USDXM de test sur Solana.

Maintenant que vous disposez de quelques tokens, vérifions le solde du portefeuille (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}`));

Félicitations, vous avez maintenant déployé des portefeuilles intelligents sur votre serveur !

Vous pouvez maintenant consulter la documentation pour découvrir comment effectuer votre première transaction, ajouter des signataires délégués et bien plus encore.

Conclusion

Les portefeuilles intelligents ouvriront la voie à une nouvelle génération d’applications conçues sur Solana, avec une intégration, une expérience utilisateur, une sécurité et une conformité améliorées.

Chez Crossmint, nous sommes ravis de prendre en charge un large éventail de cas d’usage, de la propriété intellectuelle aux programmes de fidélité, en passant par les agents IA, grâce à notre API simple et à nos outils no-code pour les portefeuilles, les paiements et la tokenisation, capables de s’adapter de manière fiable à des millions d’utilisateurs. Désormais, avec le lancement des portefeuilles intelligents intégrés Solana, nous accompagnons également les fintechs et les applications d’agents IA.

Si vous souhaitez en savoir plus sur l’implémentation des portefeuilles intelligents Solana dans votre projet, contactez-nous. Nous serons ravis de vous aider.

Ressources supplémentaires

Abonnez-vous à Helius

Suivez les dernières actualités du développement sur Solana et recevez une notification à chaque publication

Image agrandie