El ecosistema de NFTs ha seguido creciendo y ha encontrado un nuevo hogar en Solana gracias a sus tiempos de transacción rápidos y bajo costo de gas. En este video exploramos cómo crear una colección vía Metaplex y Candy Shop, herramientas que nos facilitan la creación y venta de NFTs.
1. Instala las dependencias
Instalamos Phatom, Rust, Solana CLI, SPL Token CLI, Metaplex CLI y una versión reciente de Node (yo estoy usando la 14).
Instalamos la biletera desde el siguiente enlance: https://phantom.app/
Todo lo demás desde la terminal (linux):
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Solana CLI
sh -c "$(curl -sSfL https://release.solana.com/v1.7.12/install)"
# SPL Token CLI
cargo install spl-token-cli
# Metaplex
git clone git@github.com:metaplex-foundation/metaplex.git ~/metaplex-foundation/metaplex
cd ~/metaplex-foundation/metaplex/js/packages/cli
yarn install
yarn build
yarn run package:linuxb
sudo cp bin/linux/metaplex ~/usr/bin
# Node (via nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
nvm install 14
nvm use 14
Documentación oficial:
- https://www.rust-lang.org/tools/install
- https://docs.solana.com/cli/install-solana-cli-tools
- https://spl.solana.com/token
- https://github.com/metaplex-foundation/metaplex
- https://github.com/nvm-sh/nvm
2. Prepara tu billetera vía Solana CLI
solana config set --url https://api.devnet.solana.com
solana-keygen new --outfile ~/.config/solana/devnet.json
solana config set --keypair ~/.config/solana/devnet.json
solana airdrop 10
3. Crea una carpeta con tu colección
Crea una carpeta que se llame .assets
dentro de ella coloca todas las imágenes con nombre secuencial (1.png
, 2.png
, 3.png
etc..). Por cada imágen crea un archivo json (1.json
, 2.json
, 3.json
, etc..) que siga el formato siguiente:
{
"name": "Mi NFT",
"symbol": "SYM",
"description": "Este es un ejemplo de descripción.",
"seller_fee_basis_points": 250,
"image": "image.png",
"animation_url": "",
"external_url": "",
"attributes": [
{
"trait_type": "web",
"value": "yes"
},
{
"trait_type": "mobile",
"value": "yes"
},
{
"trait_type": "extension",
"value": "yes"
}
],
"collection": {
"name": "Mi Colección",
"family": "Mi Familia"
},
"properties": {
"files": [
{
"uri": "image.png",
"type": "image/png"
}
],
"category": "image",
"creators": [
{
"address": "76ArC667SfU2iBFvV2ECLh5Fo69qfeSSBDejfzP4jwpR",
"share": 100
}
]
}
}
4. Lanza la colección
# metaplex sign -k ~/.config/solana/devnet.json
metaplex upload ./assets -k ~/.config/solana/devnet.json
metaplex create_candy_machine -p 0.1 -k ~/.config/solana/devnet.json
metaplex update_candy_machine -d "04 Dec 1995 00:12:00 GMT" -k ~/.config/solana/devnet.json
metaplex mint_one_token -k ~/.config/solana/devnet.json
5. Crea una interfaz gráfica
Descargamos el proyecto
git clone https://github.com/exiled-apes/candy-machine-mint.git
cd candy-machine-mint
yarn install
Creamos un archivo llamado .env
y lo llenamos con los siguientes valores dependiendo de los valores que generó Metaplex.
.env
REACT_APP_CANDY_MACHINE_CONFIG="HASHUBICADOENCACHEDEVNETTEMP"
REACT_APP_CANDY_MACHINE_ID="HASHMOSTRADOLUEGODECREATECANDYMACHINE"
REACT_APP_CANDY_START_DATE=NUMEROMOSTRADOLUEGODEUPDATECANDYMACHINE
REACT_APP_SOLANA_NETWORK=devnet
REACT_APP_SOLANA_RPC_HOST=https://explorer-api.devnet.solana.com
REACT_APP_TREASURY_ADDRESS="TUADDRESSENSOLANACLIADDRESS"
Corremos el proyecto y lanzamos la interfaz web.
yarn start
Minteamos nuestro proyecto desde localhost:3000
y vemos la colección desde nuestra billetera de Phantom.
Documentacion no oficial (recomendada):
¡Gracias por ver este tutorial!
Sígueme en dev.to y en Youtube para todo lo relacionado al desarrollo en Blockchain en Español.