Comment puis-je airdrop une grande liste d'adresses sur Stacks ?

Carole
Carole
  • Mise à jour

Veuillez noter que ce processus ne s'applique qu'aux mints publiques et mints d'éditions lancés sur le site Gamma.

En raison de la limite de taille des transactions Stacks, vous ne pouvez pas airdrop une grande liste d'adresses à travers notre tableau de bord lorsque vous déployez votre contrat.

Il n'y a pas de façon typique de traiter ce problème, mais voici une façon de faire : vous pouvez passer des appels de contrat personnalisés.

Aperçu: puisque les propriétaires du contrat peuvent admin-mint, nous utiliserons cette fonction pour mettre à jour et transférer les NFT à votre liste de airdrop en déployant un contrat personnalisé.

 

1. Visitez https://create.gamma.io 

2. Sélectionnez la collection désirée

3. (Important) Pendant l'étape du mint, faites attention à désactiver le statut de mint.

Les détenteurs du contrat peuvent minter même quand la collection est en pause.

4. (Important) Veuillez définir le prix actuel à zéro.


Si vous ajoutez un prix au mint après l'airdrop, vous pourrez plus tard ajuster le prix du mint en utilisant le gestionnaire de contrats : https://support.gamma.io/hc/en-us/articles/6011061378963-How-can-I-manage-my-Stacks-collection-deployed-from-the-Collection-Mint-Page#h_01FSPY1Y96T31004DMT3ZPSJEE 

 

5. Soumettez votre collection et attendez la validation.

6. En attente d'approbation, préparez votre liste de airdrops.

Ci-dessous se trouve la structure prédéfinie du contrat de airdrop. Veuillez modifier uniquement les variables nécessaires comme indiqué ci-dessous:

```

(define-private (airdrop (id uint) (recipient principal))

(begin

(try! (contract-call? '[CONTRACT ID] claim))

(try! (contract-call? '[CONTRACT ID] transfer id tx-sender recipient))

(ok true)

)

)





(airdrop u1 '[AIRDROP ADDRESS])

(airdrop u2 '[AIRDROP ADDRESS])




...

..

.

and so on




```


[CONTRACT ID]is your collection contract. Vous pouvez le trouver sur la page des détails de votre collection en cliquant sur le lien du contrat sous la description.

[AIRDROP ADDRESS] sera l'adresse du airdrop Stacks.

Veuillez noter le `'` et ne le supprimez pas.

 

u1, u2 etc sont les IDs des NFTs qui doivent être mintés. Ceux-ci doivent être réglés de façon incrémentale en fonction du NFT que vous voulez airdrop et ne doivent pas excéder la taille totale de votre collection.

 

Dans l'exemple ci-dessus, nous avons créé un public mint de 10 NFTs et les avons distribués à des adresses différentes.

Collection link: https://stacks.gamma.io/collections/blobs-airdrop
Collection contract: https://explorer.hiro.so/txid/SP2XMGYYTA1KRBKBYJHTW8CFWB2QYZKZE4BMHG3PJ.blobs-airdrop

Collection contract id: SP2XMGYYTA1KRBKBYJHTW8CFWB2QYZKZE4BMHG3PJ.blobs-airdrop

Nous remplaçons [CONTRACT ID] avec l'ID de contrat de la collection, qui est SP2XMGYYTA1KRBKBYJHTW8CFWB2QYZKZE4BMHG3PJ.blobs-airdrop et remplaçons [AIRDROP ADDRESS] avec les adresses Stacks pour le airdrop.

```
(define-private (airdrop (id uint) (recipient principal))

(begin

(try! (contract-call? 'SP2XMGYYTA1KRBKBYJHTW8CFWB2QYZKZE4BMHG3PJ.blobs-airdrop claim))

(try! (contract-call? 'SP2XMGYYTA1KRBKBYJHTW8CFWB2QYZKZE4BMHG3PJ.blobs-airdrop transfer id tx-sender recipient))

(ok true)

)

)




(airdrop u1 'SPFBZVVVN43EF1TFES2PTSYWFT5827GCPV3TZ7ZY)

(airdrop u2 'SP2NHANKC8ENVBC788X7WJRA411TW293EVFMX5NFK)

(airdrop u3 'SP3WBND6QBPX9V9G9W7W0X2BMAW1ZRGQ09K3DYJV4)

(airdrop u4 'SP1DED2GN8CRRT6A29NTEP16BW15VC8VVGHVS9973)

(airdrop u5 'SP1QPDY8KDJZA86E8DK0CAFZ90DNYSTDJ8DK0SPJV)

(airdrop u6 'SP161VKTTXKPF2MCNTTZR4455WAZFFAMM8VAFW9XX)

(airdrop u7 'SP161VKTTXKPF2MCNTTZR4455WAZFFAMM8VAFW9XX)

(airdrop u8 'SPXCHF753FXEPQTN1B0C6TCY8Q1MA5TQ8X89V5J3)

(airdrop u9 'SPXCHF753FXEPQTN1B0C6TCY8Q1MA5TQ8X89V5J3)

(airdrop u10 'SPXCHF753FXEPQTN1B0C6TCY8Q1MA5TQ8X89V5J3)




```

Voici le lien vers le contrat personnalisé déployé : https://explorer.hiro.so/txid/SP2XMGYTA1KRBKBYJHTW8CFWB2QYZKZE4BMHG3PJ.blobs-demo-airdrop?chain=mainnet 

Notez qu'il y a des adresses répétées. Ceci est utile si vous souhaitez airdrop plusieurs NFT à la même adresse. Si vous n'êtes pas sûr de votre contrat personnalisé et que vous voulez le vérifier avant de vous lancer, vous pouvez nous joindre sur Discord sur https://discord.gamma.io

7. Enfin, vous pouvez maintenant exécuter et déployer le contrat personnalisé.

Visitez https://explorer. iro.so/sandbox/deploy?chain=mainnet

Il vous sera demandé de vous connecter à votre portefeuille. Veuillez vous assurer d'utiliser le wallet avec lequel vous avez déployé la collection.


Une fois que vous vous connectez, vous trouverez l'onglet Écrire & Déployer. Il y aura un nom de contrat et un code de contrat pré-rempli. Il suffit de les effacer.


Maintenant, copiez le code de votre contrat personnalisé dans le champ de rédaction.

Vous pouvez choisir n'importe quel nom pour le contrat. Dans notre cas, nous utilisons "blobs-airdrop-demo".

Enfin, cliquez sur déployer et approuvez la transaction.





Vous pouvez télécharger l'échantillon de contrat personnalisé ici et utiliser https://vscode.dev pour éditer le fichier.

 

Si vous envoyez un airdrop à des milliers d'adresses, vous devez peut-être le faire par lots et déployer plusieurs contrats personnalisés si le déploiement du contrat échoue.

 

Par exemple:

Le contrat 1 distribuera les NFT de u1 à u1000

Le contrat 2 distribuera les NFT de u1001 à u2000

et ainsi de suite...

Enfin, si vous faites beaucoup d'airdrops, vous devrez payer plus cher pour les frais de transaction. Vous pouvez vérifier les frais suggérés pour un appel de fonction ici.

Cet article vous a-t-il été utile ?

Utilisateurs qui ont trouvé cela utile : 0 sur 0

Vous avez d’autres questions ? Envoyer une demande

Commentaires

0 commentaire

Vous devez vous connecter pour laisser un commentaire.