<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>thirdweb ES</title>
        <link>https://paragraph.com/@samusarmiento</link>
        <description>Blog y guías oficiales de la comunidad hispanohablante de  @thirdweb .</description>
        <lastBuildDate>Thu, 03 Sep 2026 23:45:09 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>thirdweb ES</title>
            <url>https://storage.googleapis.com/papyrus_images/fec6a59b9d551b0e728d902d73f3c264</url>
            <link>https://paragraph.com/@samusarmiento</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Por qué apostamos fuerte por el gaming con blockchain]]></title>
            <link>https://paragraph.com/@samusarmiento/apostamos-fuertes-en-blockchain-gaming</link>
            <guid>uUcpf0riDF27RBA9oi7j</guid>
            <pubDate>Sat, 17 Jun 2023 20:01:47 GMT</pubDate>
            <description><![CDATA[El año pasado, nos asociamos con Coinbase para lanzar GamingKit de thirdweb: el kit de herramientas todo en uno para que los desarrolladores creen los...]]></description>
            <content:encoded><![CDATA[<img src="https://storage.googleapis.com/papyrus_images/b2bfb8f2bd26c172de5a24d3137cacf2.png" alt="The next evolution of games is web3 — and thirdweb is here for it" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAARCAIAAAAzPjmrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGIUlEQVR4nE2Ue0wbhx3Hf7Y5+3x3Pp9t8AOMDcYG7EBwfH5w9jnYPAx1eB42JIBLjAOxqd2ILBtZk6UthDRJSfMiTZsRyHAT1iTdtDaLRjd1UQXbGjURTUugbZL2j3Wdpj7UTpr2x6abnGnSpM/f39cfX1ADTQOtBloGDhIcONBScEjBIQMnJWJIEUuAS2YYBHUH4EGQNwAREJRF4w3hcy2ND2taP2zN7KwfPhRNYNYIgDMPnEKg/x+QgUMJNAVOWU7XSYAHBbcEXBJw40IfjrIk4lUpwpg5CUQg56HpG+9KTj/dfvHYsXum1kc1kRMXZg639V7qnESBFYBLDG4EnKL/ARQ4hLnsbhJoPBfcgwGDCn0o1GLAEFhATgYVhL+4JCbURADxdQ6NTV98Zend2S+mzvINGX7HK1++9sbyc099PteUjg0B+ABqAGwAVoBKgAow5sZxUuAhgVaBK+ckZkkJKxYyKJJroKDqFQVNZYXbKq37SCq89tzQo/dOnk6PbfjLb4753xjeu7LjJzePDK5fnvj5RESKMZsgGoBhF8Q3QdwMQ6AGZyE4lY+np8ClwVilxIfn+VDEJxWzMqJOX9ptqUkZq4Y8oZdUmsQToQNnbv9iY/zIIh37XebVm9y+z+2x3yzcSx2/2mXz0oIdX9bcWdu0tmReXzA+PFb4GWjAqQWXVuRRCz1FBKvBfFQeQyAsjvoxjFUXdZRUJy11k1XBI3UNk1XeMyItd2p6/+svpP5wbu6bU0tfZVcWp84eOPj8wXMnQNv5rin7b9f91cq7vzV/lDVuvKB7ABWEtwKvtVOMmfDqcUaD+ZQSH4H6CMxPKZsM1UlUHjZ6nzU0X7A9cd5e/QOhLLYvNHzj7uWJl8Pje7vOHaqfuRhfvvWrWF1vVJjm/atf2/+0brvzjuWDrGHtROGnoFG3lxVHS4siRep2HRXSShkVypJSVkbVaQ1caXncVBkODQzrTV3GnitIecKs30XpYouzb568PHNrYvb3e0ZvHA69vnhDpev/u/0q73/EX+H5OZ5f5O8NfH9cdx+A7ABNzGAZxUxJKEmLi2Iq3E9K2SJdk7M4YNS1calUpie5LTxWkXhb7vyx1bK7mOqTIkGj7km1rEtDtpfqt0N+Q48wybPv8973+L/w/AbPf8vzy/xM0QaAvAPyoybz7nxND2o7TtDTyvJRmzbgzmdsAocWb7F5E307hyavPVh4yLcf/dSgTqsV3Nayp+Y3Hz3cdmmqLfuq46SdHhMr2/9Fv8Wzf+S5P/8j+rcvur/e2P7dheKPAaRhUHAg4/Iso9iWo6beWyXWPdZCrgS2GMFdLaLtFs5QsZPuv5qY/SYY+3WFcBBRcq2bz1ypmZnunH+Ze+169XQrfR6KosNIKlfCtfzXmturlXdvln0wb1gHVBgAvE1MhAWWzGbraEHwZ8rS3aQmZoZqh6x2sz5kpYeqvJnCsgFQRkpgsEzdP5i4/tO92fm+Uzd2LWR75847py6NnN114E0o6b5fMc+zq1/Zb9+3rb5j+ShrXAc5Uqclm7yqoFYfo7ZMKn1ziLxTYxgsF9v1+cGCwg51YZtatw3XNOrxbhds5/YtPHP67R9xIwPNLQe5VHpbssvTmX12/trpFWfPca+ol69d+afzzoOq1ZXytWuln4ASq9fKm1x141TwJXPv+1Cc1JuH9QVhXMwQ0iCJ+UmyXkbV41SDFwariSi3P2sOxAbqOmLNI9FQYsDbGPcFMtEX46E9qfQMGDmPoCcsHvVKkw5J0oqmQAduCguKKsZN3LKu+Toi75Rb0mqhS4H4qDwvifgI8VaJhLGKezzAGYBl3eORJ0dYpj/ZkXhmcGiA6X6xPxiPZqKdIx42BmgjYFtBygLOAvkYEcHhwCLyCGh2oUgItIkCAaMCl1JQSwkZmYDBhIwiLxCAWBkETOCrJrrT2ZW+7PL2gf3ptv5D8UxL+Ie7f3m39+ySShOWolslRKMIyyHEmkDWBFrwKMCjBrsRqsi85nzwFIBDBW4VuB8/YK0YaBdEHNBSCj4z1JeAq6P71N7ZpXDjfndoqq1lT2BTb3ziLWbnmdxRyhoIPJhHBAV4/X/5D8ZozWqhUX8TAAAAAElFTkSuQmCC" nextheight="1260" nextwidth="2400" class="image-node embed"><p>El año pasado, nos asociamos con Coinbase para lanzar <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/solutions/gaming?ref=blog.thirdweb.com">GamingKit</a> de thirdweb: el kit de herramientas todo en uno para que los desarrolladores creen los mejores juegos web3.</p><p><strong>Ahora estamos redoblando la apuesta por el gaming, lanzando una nueva división de juegos dentro de thirdweb para facilitar más que nunca a los desarrolladores de juegos el desarrollo onchain. A continuación te explicamos cómo.</strong></p><p></p><h1>¿Por qué crear juegos en la blockchain?</h1><img src="https://storage.googleapis.com/papyrus_images/ca7ee6e321ef72dac2b04b2588182f8f.gif" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAE8klEQVR4nI2Ua1ATVxTH7+7m3s2LbDZANisEQTc8NBoJD2mJCjogvmg7FaozqJEMVuUxKSqNrSJIQSMiFmJQQgwQYCGGCVCGl9pOacGODlUs+kGnjq1IK21tv7UfOkML0+lrbOH/9c79//7nnDkHgH8IwwFBYkIpQSkIhkUhahQRTsYsRwY9mRSHUuLJlBjh+hWkIQLFhKAoFoUoCEaKUSQmJAABAAYWIAwHOARIjEv9cDlNMEoYpEKhQZALhlwQ1ARBjoWhShikIBg/nBJhEggQPuu+UGEA4DiGEBQJoVQMZX6IpmCgHKloyNCQkUOGgoEypJAiSgwlJBQhiAQQEYQAwxZQASlADCURzUXCASABEAEBBBgJCDFAfkDkB0TC2cgv+gtJCOE8ADEBWYEoI8l4IN1SmF66MykvfZ0pd1Px7pTCjWv2JOq3J8ZkbFyfnbO9uHCntWBX+YFdpWbTqQP7ynZlWmhSiWMvRP9NFIYiIXO66oar7WveNW2/9LDaec/DPz9be6eobCDvXV/ucd9J22j/h7+Mj81MPp6Zej7z868zd57OjIzPhLMxc6P+X8kxpBWxB9/3ZJ9oNeY3VDvvtPZ/Ve4arXLfPM9PVLjHj9Vet1QPnPGMO64/aRqdbr415R3/znFjsu3WJLdoJQHma5EcQ8sQe7jBt7fRm+X0FviG87uHc1qHchoG2q5Nd1+bLun+pKLnZp13wuoZO9r56dHOkUL+o8IrH+e5+llFJJyd2jwAMgqpDtt5o4vfdtHx6qXGbY6WXJfXenGo7faPRZ3DGXUNWfW803fvyuBjV/d9V9+DxqsPbX1fFDUPMXT4ggCRSJV+qjrNZt9qq3+trukVR1uxo9dh5Sv7Jmq8V9s/+/yC5wN7xw3f4GTXtWe+/qc9Q990DX3r7nygVmoJgOYBUDgZjpjEt0+sKatcU2xNtda+cbkj60xLduaJQzbn6RZPQUOTs7Wzxtnn6Bjruj7VOTjF9zziex43ttxXBywIINQgJs5UoM8vissvTLKUbKqs3mouW5e0z3LWdqrLa25oNtqdRrvTZGuxto/wvV/yvY/cvY/KG4dZejkxb4soXMxBRpe5W2/ck5BnfvnIsURLcWpZxeuWyoKTNUUdfLazZb+TP+TyZNguZ9mbrfzw5c677r4HFle/go4QYKK5W/DilZ59kBPSpZDRbtken7ln9V5zrMmcsP+I4a13NheVGEvfy62qyj93ofSi+7jdnVNV/+b5xoM1bnNNW7ljoLJuUEVrISEDGPFfDBxgkEKKxZDlxFy4dJlGptPI9OHy1WH0S0v81y4JSOICN3DKlLDAFHVgSnDABtZ/nYo2BFCrFbJYf9kquVgjlSwCuBhgcO7Q/Cs+BjFcLCCVSMIhWaxIkSphd1AhebSmWLn8PLuiIUjnDo5uV0d7gqM7FumaVFpHYNQ5miuWhuSKVTtIxQYoj4PSJQRSYn8w/ioCAxgx644CoGSpgIoXKrdI1SY5d5zR2oL1HWEJAxrDaPjascjku5HJE5HJExFrb2sMo2EJA8H6dkZbK+eOSdUmMmALpOIEkqUC6A9wEQCCPxkYwIUEpKE4FFJxoln3HEVEKbvSuTi+R2MYjUq+p019sjLtmS7t++i0n1al/aBLm9amPolMnuAMI4vje1hdPR1RIlXnkMrNkIqF4lAC0gAX/u78G6PwijjNQbk6AAAAAElFTkSuQmCC" nextheight="360" nextwidth="640" class="image-node embed"><p>Los juegos han experimentado un crecimiento explosivo en la última década y, <strong>solo en 2020, los jugadores gastaron más de </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/solutions/gaming?ref=blog.thirdweb.com"><strong>54.000 millones de dólares</strong></a><strong> en artículos de juego</strong>. Juegos como Fortnite, Minecraft y Roblox han creado comunidades globales masivas a través de economías de juego, objetos desbloqueables y mercados abiertos.</p><p><strong>Pero construir la infraestructura para soportar todo esto lleva años</strong>, lo que aumenta drásticamente las barreras de entrada para los nuevos desarrolladores de juegos.</p><p><strong>Como resultado, los desarrolladores están recurriendo a web3 para crear juegos de forma mucho más rápida, barata y sencilla</strong>, con la blockchain como plataforma subyacente y sustituyendo a los sistemas backend que han tardado años en crearse para los juegos tradicionales.</p><p>Con la innovación acelerándose más que nunca para conseguir escalabilidad en Ethereum, las redes de capa 2 están haciendo más accesible construir en la blockchain. Y con la esperada <strong>actualización de Cancún</strong> para Ethereum, que reducirá los costes de transacción 10 veces, la cadena de bloques está a punto de experimentar su mayor cambio de paradigma hasta la fecha:</p><blockquote><p><em>En lugar de limitarse a añadir una capa de complejidad a los juegos, la cadena de bloques puede servir ahora como la mejor plataforma de su clase que sustituye a la infraestructura tradicional de backend y potencia el proceso de desarrollo de juegos.</em></p></blockquote><p>Construir sobre la cadena de bloques reduce el tiempo de desarrollo de los juegos de <strong>años</strong> a <strong>semanas</strong>, y cientos de estudios ya la utilizan para almacenar datos y ejecutar la lógica de los juegos, de modo que puedan centrarse en lo que más importa: crear grandes juegos y, al mismo tiempo, permitir una verdadera propiedad digital para los jugadores con activos de juego interoperables basados en la blockchain.</p><p></p><hr><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p></p><h2>Redoblamos la apuesta por el juego: así lo hacemos</h2><p>Lanzamos <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/solutions/gaming">GamingKit</a> en diciembre de 2022 para permitir a los desarrolladores de juegos crear los mejores juegos web3. Desde entonces, hemos:</p><ul><li><p>Continuado construyendo el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/unity?ref=blog.thirdweb.com">UnitySDK</a> con mayor rendimiento del mercado, con nuevas funciones semanales y planes para llevarlas a Unreal Engine.</p></li><li><p>Desarrollado cientos de juegos onchain, trabajando con líderes de la industria como <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://blog.thirdweb.com/case-studies/pixels-builds-an-onchain-ecosystem-for-its-web3-game/">Pixels</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://blog.thirdweb.com/case-studies/dreamworks-launches-nft-avatars-for-web3-games-with-gala-and-the-sims-creators-voxverse/">Gala Games</a> y <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://blog.thirdweb.com/case-studies/fractal-web3-gaming-platform-and-marketplace-for-blockchain-games-expands-to-evm-chains/">Fractal</a>.</p></li><li><p>Y utilizado GamingKit para crear <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/web3-warriors-en-tres-semanas">nuestro propio juego web3 a gran escala en sólo 3 semanas.</a></p></li></ul><p>Y ahora, estamos encantados de anunciar que estamos lanzando una nueva división de juegos dentro de thirdweb: <strong>la incorporación de </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.linkedin.com/in/atifkhan31"><strong>Atif Khan</strong></a><strong> en el equipo como nuestro nuevo vicepresidente de juegos</strong> - un ex ejecutivo de Facebook con más de 15 años de experiencia en la industria.</p><p><strong>Más información sobre todas estas novedades y sobre lo que está por llegar a thirdweb Gaming.</strong></p><h2>Los mejores juegos web3 con thirdweb GamingKit</h2><img src="https://storage.googleapis.com/papyrus_images/3ef5ba310012b3080a57172e970cb788.png" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAARCAIAAAAzPjmrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF/0lEQVR4nE2UW0xbhxnHv3N8bOwa28fH9rn4hsHAwfbxDdv42MfGl+A7xCQkpNxKEsLFBFhcGoKBQhNK0sBIF0YmErK4abJJa5umW6s0U7duqhapWxV60dTtYVJf9rCXbQ+TJu0pE2k6Tfo9/76/9H3fH6xYoQErWLFCvaRgqskZpFmjPM88lyVrDugkCa04TmACKU0blIfp5/KUNK2rSWrEMUIkqJE2HPw4+NTgUoFdCTYFsEpoUkCzHJpqgf0WsGKFRnGnCdI00kGhKR2WqoWIAqI40k5KDzwbIMvWqXu5+mmbaYw1jjYZShZ61Ei/QFH9GvIorinKiZwET4kVMbEsJJa0SjCXGLVJ0CYpYgUKYguntt/Y+vBy5U5160FpcH3pzO72+rvnz91cKu9YiLwKQqQ0xdIn8+FqOngz4nk96N7yu7Y5x4bVdoFhF/DmsthaEtUfR/S9QOdBGwdVG8g5kDSC2ABmyCTZ0eH8cl96vjddEbiTw90rfZ2LxUS50D5jUHSo0RBZ09HCnOrib6Vd1XTrrahr28ku2tlKC1uxNs7Rlim1ZUxSN4wYe4HpBiYL2ihIXSBphpp60ENHkS+vzFxfnrl+rnRt9Vy1mJhNh6deObvLWXo0WFQnjugkHXbDROn4Jxvnv5448buhY+93du10Fq7n8jcyhd2evntdvT9Ldb/Z3nnLe+CHDcKa3r8UL25x8WXcPgkUJPrTlbWXqv3pykB2oS9fyUVnupOzg91LjDIpAo8aDZI1B+ym8VJp79Llz1+a+2J88uHA8bcO97+ZPbTTdax6ZuHLidm9vtFHxaFPgoX3yPCPCPfrvVO/asn9WOlYAxriOd/Uhdnd0Z7VYqy8VN65/MrdzfM/nZvaOjt1dXV+16xO4kjMbS39+qO/fLH397t3fk9RGZLJ6qiESicotLxIahPJHDjVpmaCGkOINIRoS0xJCyo6Ila695ecaZ2YPHap/ML3Rw6tTA+vnx68dCj5vf6Dle5U+UjuRaY2SiDtnvqJDx98s7f3z2vXHsoxMwoyFGQIIhNjuFyqp3RNIhQDABTEMjklwrS4osFkiDi5GJjEKQ1EFRAgQNBCWA4+KXhk4MfAi4EbA04Ffh2W4Mxjm5ufvbb1+GTpJiFrAhDTZOvA4TVfaw9JBS11UQSRYJgyVtx46+G/qz/5zGLN1Jny3cUR0KMJoyhpEif1aIxBY3osQdfESCyqwwQtFtKKwwT4NWjcUz/24IM/7z3+x82dj1U1jQqlodU9sD7481fn3nPaTzU35RBEYqK9h6cf3X7y5KvPn8TjC6xt6MjRGWCeehk0yqAxGomQIOggpEWCavQp0IaDV4O2uy1j99/+028//tvVzY8IWVOtypyun709cP/x3r8y6Q2Ho0+Eyiizfyy1+ejTJ9Xf/CcaXeT5+Z6eWaCRCI1EKBAoCJH78FqE/84eIMCvAhcBEZdl9E71q1/c/+vFCw9JuQ1A3qBN9HW9PHxqI9q+KgizABiGaTyOnurVRxOLd5vZ0/Hk1pGeeaAgxIDAgEACTwKvgaAaaVNDGwF+Anw4eFXAEYjgNI/cuPbl3dvfVOY+MBABgmjWkjZGHzEbcm5u3OXox1V6iURH0V4T2+l0jly58qBU+mVEOA008ArwScCpgYD2aWQCfN+iBo8SnEqwExBymk6uX/rDDza/nh6/ZySCTrZgY3Mk4WMoXoN7aCpia+mMtY8GfIMuRx/nGFqY381mF1l2BBTQmkAOHpdOMhDGwfs/u+qZ3akEuwZ4h3H4/Mufrq788cTgPYrwN5oTFmNUg3soitczUbMxWWfO5jJn+eCYteGow37CZOpn2RG/fxbk4IoinePyuTqIK8FJgPe74M9QgE0NfDM1cCS/deL5d4e63zkY3y7Gt5PBihCYjASmw4Ez4cCLwbaK4F9OCRvpyJWYcLEttORtPePkJoDYv3pOtF/lThW4/l+t2n8CrhZYHPyN2t64bzET3s6EbmWFN1L8jYj31bBrmXfN+53zPsc5n30pwF0McK+5bWtcy0pjY7mubsRgGPgvNFmLNINUv0AAAAAASUVORK5CYII=" nextheight="938" nextwidth="1788" class="image-node embed"><p><strong>Creemos que web3 es el futuro de gaming</strong>, pero para que alcance una adopción masiva, los desarrolladores de juegos necesitan las herramientas para crear experiencias de juego basadas en blockchain de primera clase que rivalicen o mejoren las de los juegos tradicionales.</p><p>Por eso hemos creado <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/solutions/gaming?ref=blog.thirdweb.com"><strong>GamingKit</strong></a><strong>: el conjunto de herramientas todo en uno para que los desarrolladores creen grandes juegos web3.</strong></p><p>Lanzado a finales de 2022, hemos seguido invirtiendo en nuestras herramientas de Gaming durante los últimos 6 meses - construyendo el SDK de juegos web3 más potente del mercado, con potentes características como:</p><ul><li><p><strong>Soporte multiplataforma</strong>: Nuestro Unity SDK soporta web, móvil (iOS, Android), escritorio (Mac, Windows), consola y desarrollo de juegos AR/VR - en cualquier blockchain compatible con EVM.</p></li><li><p><strong>Experiencia Wallet sin fisuras</strong>: Nuestro Wallet SDK permite a los juegos adaptar sus experiencias "Connect Wallet" a cualquier audiencia - con soporte para más de 170 de las billeteras más populares, integración de inicio de sesión social web2, experiencias de billetera invisible con características sin gas y sin firma, y las herramientas para integrar billeteras inteligentes ERC-4337 totalmente personalizables en cualquier juego.</p></li><li><p><strong>Componentes Web3 UI:</strong> Nuestro Unity SDK te permite arrastrar y soltar potentes características web3 en tu juego fácilmente - con pre-fabs para botones Connect Wallet, renderizadores NFT, y mucho más.</p></li><li><p><strong>Creación de billeteras móviles</strong>: Hemos integrado Walletconnect de forma nativa para ofrecer a los usuarios la posibilidad de crear una cartera escaneando un código QR en sus teléfonos. Una integración más fluida para los usuarios no nativos de Web3.</p></li><li><p><strong>Soporte de almacenamiento</strong>: Carga y descarga fácilmente archivos a IPFS y gestiona todas tus necesidades de almacenamiento sin tener que salir de nuestro panel de control.</p></li><li><p><strong>Contratos inteligentes para cualquier caso de uso</strong>: Implementa sin problemas NFT, marketplaces, monederos inteligentes y otros componentes onchain con nuestros contratos inteligentes auditados pre-construidos - construidos con extensiones personalizadas para cualquier caso de uso imaginable.</p></li><li><p><strong>Monetización integrada:</strong> Crea múltiples flujos de ingresos con una fácil rampa de entrada de fiat a cripto (integración de Coinbase Pay), mercados con tarifas de royalties configurables y divisiones para compartir ingresos.</p></li></ul><p><strong>Y lo mejor de todo: Nuestras herramientas son completamente modulares, lo que significa que los desarrolladores pueden utilizar nuestra pila completa, o pueden optar por utilizar algunos de nuestros productos y rellenar los huecos con otros proveedores de su elección.</strong></p><blockquote><p><strong><em>Los desarrolladores de juegos están empezando a darse cuenta de que los usuarios quieren modularidad, quieren poder elegir. No necesitan estar atascados o encerrados en una sola cartera, ya sea inteligente, local, con o sin custodia. Los usuarios tienen preferencias diferentes.</em></strong></p><p>- Atif Khan, vicepresidente de juegos de thirdweb</p></blockquote><p>Estamos muy contentos de seguir construyendo el mejor SDK de juegos para cualquier juego web3, con planes para seguir mejorando nuestra oferta de Unity y llevar las mismas herramientas de primera clase a Unreal Engine.</p><p>Obtenga más información y comience con thirdweb <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/solutions/gaming">GamingKit</a> - es gratis:</p><div data-type="embedly" src="https://thirdweb.com/solutions/gaming?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Build web3 games with our Unity SDK for all supported platforms, including: Native, Mobile, Console, Browser, and VR.&quot;,&quot;title&quot;:&quot;thirdweb GamingKit | SDKs, Smart Contracts &amp; Dev Tools for Web3 Games | thirdweb&quot;,&quot;thumbnail_width&quot;:1788,&quot;url&quot;:&quot;https://thirdweb.com/solutions/gaming&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdwebxcoinbase.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:938}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/solutions/gaming?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdwebxcoinbase.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb GamingKit | SDKs, Smart Contracts &amp; Dev Tools for Web3 Games | thirdweb</h2><p>Build web3 games with our Unity SDK for all supported platforms, including: Native, Mobile, Console, Browser, and VR.</p></div></div></a></div></div><h2>Reducción del tiempo de desarrollo de juegos con web3, de <em>años</em> a <em>semanas</em></h2><p>Los juegos basados en blockchain tienen fama de ser menos inmersivos y divertidos que los juegos tradicionales, pero como constructores a la vanguardia del sector, hemos visto cómo esto ha cambiado drásticamente en los últimos años.</p><p>El GamingKit de thirdweb ya se ha utilizado para lanzar cientos de juegos web3, acelerando el desarrollo de líderes del sector como <strong>Pixels</strong>, <strong>Gala Games</strong> y <strong>Fractal</strong>:</p><div data-type="embedly" src="https://blog.thirdweb.com/case-studies/pixels-builds-an-onchain-ecosystem-for-its-web3-game/" data="{&quot;provider_url&quot;:&quot;https://blog.thirdweb.com&quot;,&quot;description&quot;:&quot;Pixels is an open-world game built on the blockchain, using web3 to enable digital ownership for its players &amp; build an ecosystem. Learn more.&quot;,&quot;title&quot;:&quot;Pixels Builds an On-Chain Ecosystem for its Open-World Web3 Game&quot;,&quot;thumbnail_width&quot;:2000,&quot;url&quot;:&quot;https://blog.thirdweb.com/case-studies/pixels-builds-an-onchain-ecosystem-for-its-web3-game/&quot;,&quot;thumbnail_url&quot;:&quot;https://blog.thirdweb.com/content/images/2023/04/Pixels-Builds-an-Onchain-Ecosystem-for-its-Web3-Game-thirdweb-Case-Study.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1050}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://blog.thirdweb.com/case-studies/pixels-builds-an-onchain-ecosystem-for-its-web3-game/" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://blog.thirdweb.com/content/images/2023/04/Pixels-Builds-an-Onchain-Ecosystem-for-its-Web3-Game-thirdweb-Case-Study.png" class="false"><div class="twitter-summary-card-text"><span>https://blog.thirdweb.com</span><h2>Pixels Builds an On-Chain Ecosystem for its Open-World Web3 Game</h2><p>Pixels is an open-world game built on the blockchain, using web3 to enable digital ownership for its players &amp; build an ecosystem. Learn more.</p></div></div></a></div></div><div data-type="embedly" src="https://blog.thirdweb.com/case-studies/dreamworks-launches-nft-avatars-for-web3-games-with-gala-and-the-sims-creators-voxverse/" data="{&quot;provider_url&quot;:&quot;https://blog.thirdweb.com&quot;,&quot;description&quot;:&quot;Gala is reimagining your favorite DreamWorks Trolls characters as NFT avatars in the VOXverse. Learn more about the successful launch.&quot;,&quot;title&quot;:&quot;DreamWorks launches NFT avatars for web3 games with Gala&quot;,&quot;mean_alpha&quot;:116.670238095,&quot;thumbnail_width&quot;:2000,&quot;url&quot;:&quot;https://blog.thirdweb.com/case-studies/dreamworks-launches-nft-avatars-for-web3-games-with-gala-and-the-sims-creators-voxverse/&quot;,&quot;thumbnail_url&quot;:&quot;https://blog.thirdweb.com/content/images/2022/10/DreamWorks-Launches-NFT-Avatars-with-Gala-s-VOX---thirdweb-Case-Study-2.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1050}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://blog.thirdweb.com/case-studies/dreamworks-launches-nft-avatars-for-web3-games-with-gala-and-the-sims-creators-voxverse/" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://blog.thirdweb.com/content/images/2022/10/DreamWorks-Launches-NFT-Avatars-with-Gala-s-VOX---thirdweb-Case-Study-2.png" class="false"><div class="twitter-summary-card-text"><span>https://blog.thirdweb.com</span><h2>DreamWorks launches NFT avatars for web3 games with Gala</h2><p>Gala is reimagining your favorite DreamWorks Trolls characters as NFT avatars in the VOXverse. Learn more about the successful launch.</p></div></div></a></div></div><div data-type="embedly" src="https://blog.thirdweb.com/case-studies/fractal-web3-gaming-platform-and-marketplace-for-blockchain-games-expands-to-evm-chains/" data="{&quot;provider_url&quot;:&quot;https://blog.thirdweb.com&quot;,&quot;description&quot;:&quot;thirdweb is proud to power Fractal's expansion to EVM, allowing game studios to unlock blockchain utility on the Ethereum ecosystem. Learn more.&quot;,&quot;title&quot;:&quot;Fractal, web3 Platform and Marketplace for Blockchain Games, Expands to EVM Chains&quot;,&quot;mean_alpha&quot;:90.3116666667,&quot;thumbnail_width&quot;:2000,&quot;url&quot;:&quot;https://blog.thirdweb.com/case-studies/fractal-web3-gaming-platform-and-marketplace-for-blockchain-games-expands-to-evm-chains/&quot;,&quot;thumbnail_url&quot;:&quot;https://blog.thirdweb.com/content/images/2022/11/Fractal.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1050}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://blog.thirdweb.com/case-studies/fractal-web3-gaming-platform-and-marketplace-for-blockchain-games-expands-to-evm-chains/" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://blog.thirdweb.com/content/images/2022/11/Fractal.png" class="false"><div class="twitter-summary-card-text"><span>https://blog.thirdweb.com</span><h2>Fractal, web3 Platform and Marketplace for Blockchain Games, Expands to EVM Chains</h2><p>thirdweb is proud to power Fractal's expansion to EVM, allowing game studios to unlock blockchain utility on the Ethereum ecosystem. Learn more.</p></div></div></a></div></div><p>Y para acabar con este estereotipo obsoleto, hemos ido un paso más allá.<strong> El mes pasado, utilizamos GamingKit para crear </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://web3warriors.thirdweb.com/?ref=blog.thirdweb.com"><strong>Web3 Warriors</strong></a><strong>, nuestro propio juego de rol a gran escala</strong>, para demostrar cómo deberían ser los juegos de blockchain.</p><img src="https://storage.googleapis.com/papyrus_images/6140823d5428aab45f63f301b64a6038.png" alt="Gameplay from Web3 Warriors, an onchain RPG built by thirdweb" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFoUlEQVR4nC1VS28cVRr9qrreXe/qruqu6m4/ul1uG6cfdetd1c/E7oc7MbFxiDxBCZ6RE1kKimCUhyBejBhlwUMgsUEsQCCBhGCD2Mx2xD9AbGfNfmafodpIR1d3c79zvnPv+S5w4HDg8NAtA/IAlQAp0JXAEcERAAmARPBkLFCwUMJCGQ8UIpTBEyBkIWHBVcArglcFL8a8ac7vArLAsQF9t5q+HE+GmAcMdBjokNCpgNMCTwbEZwQoDx4FLgUuB77MpBqTilSssEOVH2pMWi+/phZuKLhv0HEp59uY1wD3CrivU8FfaP8uE3xgxH/lAhw6wIFjZGIdAhADrgx+HhANKI9HdC6m8IjBQ56IJLGvigND3rUKuxV9moxe1FdumVxoF/pblL8KqApumPN6dLibC+8y4Qnt24AAOlACVAHHWrpBgCfioQCuCK6AByyVCFxK0wlHxZI4UJSxoe/p2ni6cnRv8dlmbb9tjqLVvXZpvIVHiPFNLl5hkjYX9/JRgAUUOBmBAY4ETgNcE/NkPJDxgAdXxnyJDFW+rwh9mkloNhWEnq6P1tYPrdWDvfTp0fyF19i7urMY2ZOovtsyx1Up0fhEJSMR/BIeaOACdDOUAMmACuAWwL3sgwakkGFFGWpCj+dSTkgZPpXV0XrzTmf4dKf3NJm+31582mydDls3elvTVm1YU1KJTVgiJMCHDM6f1aELKeaWwFPBK4FrksG6nKzIvTVtUBJSVUhEocdLA14aWvXjDe98O30e3/vXdPbR7PYPsnVor8879n7DHFpKvyAkeTKkweMy7c4SKFuv4v4WEdblpGVcc4p9ZA4acrQixxWlV1RSUeyL8lDVJ830MasfVjpn6M6X9etf9Y+/lIozQpvVnfNycVRUBnw+kcFlsqKXcP/c2DnfyUcl84CtntS3zyr109rGack8NuWeJiYZgT6uNQ63u/e3vaPTJ49Ho1uV3Y823/jGbLxm1Pat9sPNxrGpX5PUAZ6LcAjwzJlLAi9bN4Sh4b9PV05AOWSq97fajwX7kdq8EO13dGOuqYN6bdKvD5rm9WunD19cvPfs7OL2x7+Nn/xa3jk3Gzfr6NxcmVerc8uaCUqfp2IyK51hSYagXP97o3ZHLC5ypdukdbe+9ahQvbcWf7sx+d50Lzx70StEO+BXYdR45ezgzpvPv/7l3y9f/vi/l/b8C6v90EYPdHPPqi4K2pTl+jkqglwMEFzKz7ppyNc9umtwA0w9wovHuHqioWe1/ifJW/9pus93Gmer4KxB5FBevLXYROd2+o9bH//++j9/k155u9z8m1m5YZT3C8ZEkXdJboDhmUsArgF+ZZkw2CHcTTraZEKgd6niIS0stPaF77/TPPhJv/JM1k9taIVK6NnzbfSmP39iuw+I8jGwE1D2cWUu6XNBHYvKNVYcSPlYwsOlP44B7g7mJpgLTfAbmLfJpRgzaeizUXVibT2qxp83939mS29U1h5scK2qcbVovWqtHxWqC712kzfmVGFGagtKnXLqHisOaDbNC72ZER/pYZP2lv4gChwZHKgDqgNaxwOe262VbgbHnzWPfhy//V929X7jypNV8ybPx4I0ktWRpF2V9Ymg7VH5IUb2GHVCCSNWGNFclnaSTLpcuCf4PuXhy6zloItBFxRAOsQFcqpAzEvXS50P0we/N/d/xrXbauvdIhUoXE/me6LQzwvDvDDkpRGOx8uUBhTd44UhzSQUEeewkICgAN4muNuX15uhA/py7gN9DNwJAYOcekpq9wh6xlbeUslYJkKJiiQ6yVNJnk45rk8R0dLl7DyORXk6ZYmEwkIK/Fwm3DUA7YBLg4NBNxvXZUAr0NWhrWV/SKhB14I2QR9I4CuAZCyU8FDMRXk8pImIxSLycgAsXzoGPgPhEj4J7hKIXLpPQYeCzh8W/R9Y2gTX3zZzhwAAAABJRU5ErkJggg==" nextheight="1152" nextwidth="2080" class="image-node embed"><p><strong>Construimos el juego utilizando tecnología blockchain en lugar de la infraestructura backend tradicional</strong>, lo que aceleró el desarrollo y nos permitió incorporar potentes funciones habilitadas para web3, como:</p><ul><li><p><strong>Una moneda del juego para comprar y vender objetos,</strong> basada en contratos inteligentes.</p></li><li><p><strong>Objetos digitales que los jugadores realmente poseen en la cadena</strong>, creando un ecosistema abierto.</p></li><li><p><strong>Generación automática de monederos</strong> para los jugadores cuando crean un nombre de usuario.</p></li><li><p><strong>Sin costes de transacción ni ventanas emergentes de firma</strong> para una gran experiencia de juego y web3 UX</p></li></ul><p>Construir los sistemas backend necesarios para un juego a gran escala nos habría llevado años. Pero al sustituirlos por la cadena de bloques, pudimos reducir drásticamente el tiempo de desarrollo: lanzamos Web3 Warriors en sólo 3 semanas.</p><p>Más información sobre cómo utilizamos la cadena de bloques para crear <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/web3-warriors-en-tres-semanas">un juego a gran escala:</a></p><div data-type="embedly" src="https://paragraph.xyz/@samusarmiento/web3-warriors-en-tres-semanas" data="{&quot;provider_url&quot;:&quot;https://paragraph.xyz&quot;,&quot;description&quot;:&quot;¡Bienvenido a la entrada del blog técnico de Web3 Warriors! En este artículo, exploramos cómo construimos la experiencia de juego inmersiva de Web3 Warriors utilizando el GamingKit...&quot;,&quot;title&quot;:&quot;Cómo se creó Web3 Warriors en solo 3 semanas&quot;,&quot;thumbnail_width&quot;:400,&quot;url&quot;:&quot;https://paragraph.xyz/@samusarmiento/web3-warriors-en-tres-semanas&quot;,&quot;thumbnail_url&quot;:&quot;https://storage.googleapis.com/papyrus_images/942d7b6924320873e9daecf3c889d928&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Paragraph&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:400}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://paragraph.xyz/@samusarmiento/web3-warriors-en-tres-semanas" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://storage.googleapis.com/papyrus_images/942d7b6924320873e9daecf3c889d928" class="false"><div class="twitter-summary-card-text"><span>https://paragraph.xyz</span><h2>Cómo se creó Web3 Warriors en solo 3 semanas</h2><p>¡Bienvenido a la entrada del blog técnico de Web3 Warriors! En este artículo, exploramos cómo construimos la experiencia de juego inmersiva de Web3 Warriors utilizando el GamingKit...</p></div></div></a></div></div><h2>Presentamos a Atif Khan, VP de Gaming de thirdweb</h2><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5dbdca53adcf10001c95bc15294b9e78.jpg" class="image-node embed"><figcaption htmlattributes="[object Object]" class=""><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.linkedin.com/in/atifkhan31/">Atif Khan</a>, VP de Gaming en thirdweb</figcaption></figure><p>Acelerar el cambio transformador hacia los juegos web3 requiere un liderazgo de primer nivel y experiencia en el sector: Por eso nos complace anunciar que <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.linkedin.com/in/atifkhan31/">Atif Khan</a> se ha unido a thirdweb como <strong>VP de Gaming</strong>.</p><p>Con más de 15 años de experiencia en la industria del gaming, Atif se une a nosotros después de pasar 8 años en Facebook - más recientemente como Jefe de Mid-Market &amp; In-App Ads para Global Gaming - antes de entrar en el espacio de juego web3.</p><blockquote><p><strong><em>Queremos construir una gran y completa ventanilla única para que los desarrolladores no tengan que ir a siete u ocho sitios diferentes</em></strong></p><p>- Atif Khan, Vicepresidente de juegos de thirdweb</p></blockquote><p>Estamos muy contentos de que Atif lidere la tarea de llevar grandes juegos a la cadena de bloques, dando prioridad a la jugabilidad inmersiva y permitiendo a los desarrolladores incorporar potentes funciones web3 en sus juegos. Este es el primer paso hacia nuestro objetivo más amplio de crear una división de juegos de pleno derecho dentro de thirdweb.</p><h3>El futuro de los juegos es web3</h3><p>Mientras seguimos invirtiendo en juegos, nos entusiasma la idea de impulsar la próxima evolución de los juegos, utilizando la cadena de bloques para acelerar el desarrollo de los creadores y facilitar la propiedad digital a los jugadores.</p><blockquote><p><strong><em>Creo que en los próximos 18 meses empezaremos a hablar mucho menos de la perspectiva de la cadena de bloques y más de lo que la cadena de bloques está aportando realmente en términos de valor a los usuarios y desarrolladores de ambas partes.</em></strong></p><p>- Atif Khan, vicepresidente de juegos de thirdweb</p></blockquote><p>Si quieres saber más sobre cómo acelerar el proceso de desarrollo de juegos con la cadena de bloques, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/fMIj602T?ref=blog.thirdweb.com&amp;typeform-source=blog.thirdweb.com">ponte en contacto</a> con el equipo. <strong>Y si estás listo para construir, empieza con las herramientas de juego y SDK web3 de thirdweb: ¡son gratuitas!</strong></p><div data-type="embedly" src="https://thirdweb.com/solutions/gaming" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Build web3 games with our Unity SDK for all supported platforms, including: Native, Mobile, Console, Browser, and VR.&quot;,&quot;title&quot;:&quot;thirdweb GamingKit | SDKs, Smart Contracts &amp; Dev Tools for Web3 Games | thirdweb&quot;,&quot;thumbnail_width&quot;:1788,&quot;url&quot;:&quot;https://thirdweb.com/solutions/gaming&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdwebxcoinbase.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:938}" format="large"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/solutions/gaming" target="_blank" rel="noreferrer"><div class="twitter-summary-large-image"><img src="https://thirdweb.com/thirdwebxcoinbase.png" class="large-summary-image"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb GamingKit | SDKs, Smart Contracts &amp; Dev Tools for Web3 Games | thirdweb</h2><p>Build web3 games with our Unity SDK for all supported platforms, including: Native, Mobile, Console, Browser, and VR.</p></div></div></a></div></div><hr><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdweb_es</category>
            <category>gaming</category>
            <category>blockchaingaming</category>
        </item>
        <item>
            <title><![CDATA[Documentación thirdweb: Infraestructura II]]></title>
            <link>https://paragraph.com/@samusarmiento/thirdweb-storage-and-wallets</link>
            <guid>g5xsoVIkbx0SDyQigP3o</guid>
            <pubDate>Fri, 09 Jun 2023 08:25:09 GMT</pubDate>
            <description><![CDATA[Storage es una solución descentralizada de gestión de archivos para almacenar y recuperar información "fuera de la cadena" utilizando IPFS...]]></description>
            <content:encoded><![CDATA[<h1>Almacenamiento</h1><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/storage"><strong><em>Storage</em></strong></a> es una solución descentralizada de gestión de archivos para almacenar y recuperar información "fuera de la cadena" utilizando <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/glossary/ipfs">IPFS</a>. Te permite subir y <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.ipfs.tech/concepts/persistence/">fijar</a> archivos a IPFS, y recuperarlos en cualquier momento a través de nuestra <strong>pasarela IPFS</strong>.</p><p>Mediante el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/dashboard/storage">panel de control</a>, el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-cli-deploy-publish">CLI</a> o el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-evm-sdk">SDK</a>, puedes subir y anclar fácilmente archivos individuales o directorios enteros a IPFS, lo que resulta ideal para almacenar archivos de forma permanente, descentralizada y resistente a la censura.</p><p>El almacenamiento potencia la funcionalidad de varios de nuestros otros productos, como la carga de contratos inteligentes ABI en el despliegue, nuestro componente <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react/react.mediarenderer">IPFS Renderer UI</a> y las capacidades de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react/react.usenft">obtención de metadatos NFT</a> en el SDK, y la carga de metadatos NFT en el panel de control.</p><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>Biblioteca de código abierto</strong></p><p>La biblioteca de almacenamiento es de código abierto. Puede consultar el código fuente y contribuir a él en <strong>GitHub</strong>.</p><div data-type="embedly" src="https://github.com/thirdweb-dev/js/tree/main/packages/storage" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;Best in class decentralized storage SDK for Browser and Node Install the latest version of the SDK with either npm or yarn: npm install @thirdweb-dev/storage yarn add @thirdweb-dev/storage Once you have the Thirdweb Storage SDK installed, you can use it to easily upload and download files and other data using&quot;,&quot;title&quot;:&quot;js/packages/storage at main · thirdweb-dev/js&quot;,&quot;mean_alpha&quot;:251.02,&quot;author_name&quot;:&quot;thirdweb-dev&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://github.com/thirdweb-dev/js/tree/main/packages/storage&quot;,&quot;thumbnail_url&quot;:&quot;https://opengraph.githubassets.com/a897e4a5e5d31c9038a90ae78fd200917843dcac10b6c950816afbc972987795/thirdweb-dev/js&quot;,&quot;author_url&quot;:&quot;https://github.com/thirdweb-dev&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://github.com/thirdweb-dev/js/tree/main/packages/storage" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://opengraph.githubassets.com/a897e4a5e5d31c9038a90ae78fd200917843dcac10b6c950816afbc972987795/thirdweb-dev/js" class="false"><div class="twitter-summary-card-text"><span>https://github.com</span><h2>js/packages/storage at main · thirdweb-dev/js</h2><p>Best in class decentralized storage SDK for Browser and Node Install the latest version of the SDK with either npm or yarn: npm install @thirdweb-dev/storage yarn add @thirdweb-dev/storage Once you have the Thirdweb Storage SDK installed, you can use it to easily upload and download files and other data using</p></div></div></a></div></div></div></div></div></div><h2>Pasarela IPFS</h2><p>Para leer datos de IPFS, se necesita una <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.ipfs.tech/concepts/ipfs-gateway/">pasarela IPFS</a>, que te permite acceder a datos del protocolo IPFS en navegadores y otros clientes HTTP, como cuando se crea una aplicación utilizando nuestro SDK.</p><p>Te proporcionamos una pasarela IPFS pública y sin restricciones en <code>https://ipfs.thirdwebcdn.com/ipfs/[cid]</code>, que puedes utilizar para acceder a cualquier archivo disponible en IPFS de forma gratuita, sin límites de velocidad ni restricciones.</p><h2>Cómo empezar</h2><p>Aprende a utilizar el almacenamiento para cargar archivos a través de la interfaz de usuario o la línea de comandos, o a utilizar el SDK para cargar archivos mediante programación.</p><p>Carga archivos directamente en IPFS mediante el panel o la CLI:</p><ul><li><p><strong>Panel de control: </strong></p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/dashboard/storage"><strong>https://thirdweb.com/dashboard/storage</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-panel-de-control"><strong>https://paragraph.xyz/@samusarmiento/thirdweb-panel-de-control</strong></a></p></li></ul></li><li><p><strong>CLI: </strong></p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-cli-deploy-publish"><strong>https://paragraph.xyz/@samusarmiento/thirdweb-cli-deploy-publish</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/cli/upload">https://portal.thirdweb.com/cli/upload</a></p></li></ul></li></ul><p></p><h1>Billeteras</h1><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet"><strong><em>Wallet</em></strong></a> es una <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/thirdweb-dev/js/tree/main/packages/wallets">librería</a> que te permite integrar capacidades de conexión de monederos en aplicaciones web3.</p><p>Se puede utilizar como un paquete independiente para permitir a los usuarios conectar sus carteras a tu aplicación, y se integra con nuestro <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-evm-sdk">SDK</a> para utilizar la cartera conectada para interactuar con contratos inteligentes, utilizar <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-auth">autenticación</a>, <strong>almacenamiento</strong> y más.</p><h2>Billeteras compatibles</h2><p>Accede al mayor catálogo de monederos, desde custodia a MPC y contratos inteligentes.</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/smart-wallet">Smart Wallet</a>: Implementa carteras de contratos inteligentes para sus usuarios</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/local-wallet">Local Wallet</a>:<strong> </strong>Genera carteras para nuevos usuarios sobre la marcha</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/safe">Safe</a>:<strong> </strong>Conéctate a un monedero multisig a través de Safe</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/magic">Magic Link</a>: Conéctate con email o un número de teléfono a través de Magic</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/paper">Paper</a>: Conéctate con email a través de Paper</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/metamask">MetaMask</a>: Conéctate con MetaMask</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/coinbase-wallet">Coinbase Wallet</a>: Conéctate con Coinbase Wallet</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/wallet-connect-v2">WalletConnect</a>: Conéctate con AWS Key Management Service</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/aws-kms">AWS KMS</a>: Conéctate con AWS Key Management Service</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/aws-secrets-manager">AWS Secret Manager</a>: Conéctate con AWS Secret Manager</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/ethers">Ether.js</a>: Conecta cualquier wallet compatible con Ether.js</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/private-key">Private Key</a>: Conecta una wallet directamente con una clave privada</p></li></ul><h2>Características</h2><p>Es compatible con una amplia gama de los monederos de navegador más populares como <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/metamask">MetaMask</a>, WalletConnect <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/wallet-connect-v1">V1</a> y <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/wallet-connect-v2">V2</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/coinbase-wallet">Coinbase Wallet</a>, monederos no custodiados como <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/magic">Magic</a> y <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/paper">Paper</a>, monederos multi-sig como <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/safe">Safe (Gnosis)</a>, y más; cada uno con un control detallado sobre el flujo de conexión para crear experiencias personalizadas, o componentes de interfaz de usuario pre-construidos para ponerte en marcha rápidamente.</p><p>También admite <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/smart-wallet">monederos inteligentes</a> que siguen la especificación <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://eips.ethereum.org/EIPS/eip-4337">ERC-4337</a> y la capacidad de crear <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet/local-wallet">monederos locales</a> sin transacciones que permiten a los usuarios incorporarse fácilmente a aplicaciones web3 con una experiencia de "pago de invitado".</p><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>Biblioteca de código abierto</strong></p><p>La biblioteca de carteras es de código abierto. Puedes ver el código fuente y contribuir a ella en <strong>GitHub.</strong></p><div data-type="embedly" src="https://github.com/thirdweb-dev/js/tree/main/packages/wallets" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;Best in class web3 SDKs for Browser, Node and Mobile apps - js/packages/wallets at main · thirdweb-dev/js&quot;,&quot;title&quot;:&quot;js/packages/wallets at main · thirdweb-dev/js&quot;,&quot;mean_alpha&quot;:251.02,&quot;author_name&quot;:&quot;thirdweb-dev&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://github.com/thirdweb-dev/js/tree/main/packages/wallets&quot;,&quot;thumbnail_url&quot;:&quot;https://opengraph.githubassets.com/a897e4a5e5d31c9038a90ae78fd200917843dcac10b6c950816afbc972987795/thirdweb-dev/js&quot;,&quot;author_url&quot;:&quot;https://github.com/thirdweb-dev&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://github.com/thirdweb-dev/js/tree/main/packages/wallets" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://opengraph.githubassets.com/a897e4a5e5d31c9038a90ae78fd200917843dcac10b6c950816afbc972987795/thirdweb-dev/js" class="false"><div class="twitter-summary-card-text"><span>https://github.com</span><h2>js/packages/wallets at main · thirdweb-dev/js</h2><p>Best in class web3 SDKs for Browser, Node and Mobile apps - js/packages/wallets at main · thirdweb-dev/js</p></div></div></a></div></div></div></div></div></div><h2>Cómo empezar</h2><p>Para empezar, instale el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/thirdweb-dev/js/tree/main/packages/wallets">paquete</a> en su proyecto.</p><p><strong>npm</strong></p><pre class="dont-break-out text-sm md:text-base"><code>npm i @thirdweb-dev/wallets</code></pre><p><strong>yarn</strong></p><pre class="dont-break-out text-sm md:text-base"><code>yarn add @thirdweb-dev/wallets</code></pre><p><strong>pnpm</strong></p><pre class="dont-break-out text-sm md:text-base"><code>pnpm add @thirdweb-dev/wallets</code></pre><p>Ahora ya estás listo para utilizar cualquiera de nuestros monederos compatibles, solicitar al usuario que se conecte con el monedero, acceder a información como el firmante y la dirección del monedero, y mucho más.</p><pre class="dont-break-out text-sm md:text-base"><code>// 1. Importa el monedero que deseas utilizar desde el paquete
import { CoinbaseWallet } from "@thirdweb-dev/wallets";

// 2. Instanciar la clase monedero
const coinbaseWallet = new CoinbaseWallet();

// 3. Conectarse al monedero (avisa al usuario cuando es necesario)
const walletAddress = await coinbaseWallet.connect();

// 4. Utiliza el monedero conectado para acceder a información como el firmante
const signer = await coinbaseWallet.getSigner();</code></pre><h3>Integraciones con nuestros SDK</h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react/connecting-wallets">React</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react-native/wallets">React Native</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/typescript/sdk.thirdwebsdk.fromwallet">TypeScript</a></p></li></ul><hr><p></p><h2>Recursos adicionales</h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/"><strong>Documentación thirdweb</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/community/Gu%C3%ADas%20&amp;%20Documentaci%C3%B3n%20thirdweb"><strong>Documentación (No oficial) ES</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/"><strong>Blog Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/guides/"><strong>Guías Oficiales</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento"><strong>Blogs y guías en Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates"><strong>Plantillas</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/thirdweb"><strong>Youtube Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes"><strong>Youtube Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.com/events"><strong>Eventos</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb"><strong>Discord Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://support.thirdweb.com/"><strong>Support</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb"><strong>Twitter Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es"><strong>Twitter Oficial ES</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_jp"><strong>Twitter Oficial JP</strong></a></p></li></ul><p></p><hr><p style="text-align: center"><strong><em>Suscríbete para recibir las guías, tutoriales y noticias de&nbsp;@thirdweb en español</em></strong></p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p>Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb?ref=blog.thirdweb.com">Discord</a>, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/ZV3gUhiP?typeform-source=thirdweb.com&amp;ref=blog.thirdweb.com">ponte en contacto</a> directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.</p><p>Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!</p><div data-type="embedly" src="https://thirdweb.com/?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.&quot;,&quot;title&quot;:&quot;thirdweb: The complete web3 development framework&quot;,&quot;thumbnail_width&quot;:2400,&quot;url&quot;:&quot;https://thirdweb.com/&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdweb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1260}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdweb.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb: The complete web3 development framework</h2><p>Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.</p></div></div></a></div></div><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdweb_es</category>
            <category>documentacion-thirdweb</category>
        </item>
        <item>
            <title><![CDATA[Documentación thirdweb: Infraestructura I ]]></title>
            <link>https://paragraph.com/@samusarmiento/thirdweb-auth</link>
            <guid>UAMO0Nr1vUo1VrtzE8ap</guid>
            <pubDate>Thu, 08 Jun 2023 13:02:57 GMT</pubDate>
            <description><![CDATA[Auth es un SDK para desarrolladores que te permite integrar autenticación y autorización nativa web3 sin contraseña en tus aplicaciones.]]></description>
            <content:encoded><![CDATA[<h1>Auth</h1><p><strong>Auth</strong> es un SDK para desarrolladores que te permite integrar autenticación y autorización nativa web3 sin contraseña en tus aplicaciones.</p><p>Permite a los usuarios iniciar sesión con sus carteras, lo que permite a las aplicaciones acceder a datos enriquecidos a nivel de blockchain e interactuar con sus usuarios <em>on-chain</em>.</p><p>Con <strong>Auth</strong>, los desarrolladores pueden crear aplicaciones con autenticación <em>web3-first,  </em>segura y auto custodiada. </p><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>Biblioteca de código abierto</strong></p><p>La biblioteca auth es de código abierto. Puede ver el código fuente y contribuir a él en <strong>GitHub</strong>.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/thirdweb-dev/js/tree/main/packages/auth">https://github.com/thirdweb-dev/js/tree/main/packages/auth</a></p></div></div></div></div><h2>Instalación</h2><p><strong>npm</strong></p><pre class="dont-break-out text-sm md:text-base"><code>npm install @thirdweb-dev/auth</code></pre><p><strong>Yarn</strong></p><pre class="dont-break-out text-sm md:text-base"><code>yarn add @thirdweb-dev/auth</code></pre><p><strong>pnpm</strong></p><pre class="dont-break-out text-sm md:text-base"><code>pnpm add @thirdweb-dev/auth</code></pre><h2>Aplicaciones</h2><p>Auth desbloquea una variedad de nuevas posibilidades al permitir la conexión de flujos web2 y web3. Añade la autenticación basada en monedero a las aplicaciones existentes o crea experiencias web3 que utilicen la arquitectura del lado del servidor.</p><p>A continuación se indican algunas de las aplicaciones que permite Auth:</p><ul><li><p><strong>Autenticación sin contraseña:</strong> Permite que los usuarios inicien sesión sin problemas en sus aplicaciones sólo con sus monederos.</p></li><li><p><strong>Verificación de identidad:</strong> Verifica de forma segura las identidades en la cadena de los usuarios existentes.</p></li><li><p><strong>Recursos bloqueados:</strong> Bloquea el acceso a recursos protegidos basándose en criterios de la cadena, como la propiedad de NFT.</p></li><li><p><strong>Interacción en la cadena:</strong> Interactúa con los usuarios en la cadena, por ejemplo enviándoles NFT de recompensa.</p></li><li><p><strong>Pagos on-chain:</strong> Permite a los usuarios pagar por tus servicios con activos en la cadena como ETH o tokens ERC20.</p></li><li><p><strong>Acceso a datos on-chain:</strong> Acceda a datos enriquecidos en la cadena asociados a tus usuarios.</p></li></ul><h2>Frameworks</h2><p>Auth se integra con una variedad de marcos de desarrollo, tanto del lado del servidor como del lado del cliente. Siempre estamos añadiendo soporte para más frameworks, así que si no ves el tuyo, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb">háznoslo saber</a>, ¡y podemos explorar la posibilidad de añadir soporte!</p><h3>Frameworks de servidor</h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/server-frameworks/next">Next</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/server-frameworks/express">Express</a></p></li></ul><h3>Frameworks de cliente</h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/client-frameworks/react">React</a></p></li></ul><h3>Integraciones</h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/integrations/next-auth">NextAuth</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/integrations/supabase">Supabase</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/integrations/firebase">Firebase</a></p></li></ul><p></p><h1>Primeros pasos con Auth</h1><p>En esta guía, recorreremos el proceso de agregar Auth a una aplicación simple de pila completa para habilitar la autenticación basada en billetera (en este caso, permitiremos que las billeteras EVM se autentiquen, pero configurarlo para billeteras Solana también es una opción).</p><p>En concreto, vamos a integrar Auth con una aplicación <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://nextjs.org/">Next.js</a>, que tiene su propia API integrada, así como un frontend <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://react.dev/">React</a>. Con esta configuración podemos añadir puntos finales de la API de Auth a nuestra aplicación para gestionar la autenticación y autorización, y luego podemos construir un frontend simple para iniciar sesión, mostrar el usuario, y cerrar la sesión.</p><p>Si quieres ver el código completo de esta guía, usaremos el siguiente repositorio de ejemplos:</p><div data-type="embedly" src="https://github.com/thirdweb-example/thirdweb-auth-next" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;This example demonstrates how to use thirdweb Auth with NextJS. To run the project, first clone this repository, and then run one of the following commands to install the dependencies: npm install yarn install Next, you need to create a .env.local file and set the THIRDWEB_AUTH_PRIVATE_KEY variable to the admin private key you want to use for Auth, as well as the NEXT_PUBLIC_THIRDWEB_AUTH_DOMAIN variable to the domain you want to use for Auth.&quot;,&quot;title&quot;:&quot;GitHub - thirdweb-example/thirdweb-auth-next: Enable wallet-based login with thirdweb Auth &amp; Next&quot;,&quot;mean_alpha&quot;:251.02,&quot;author_name&quot;:&quot;thirdweb-example&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://github.com/thirdweb-example/thirdweb-auth-next&quot;,&quot;thumbnail_url&quot;:&quot;https://opengraph.githubassets.com/187c1bea694e7802100e91ae7aa0821dd0a78f51542c792c472a0ec289aa77ae/thirdweb-example/thirdweb-auth-next&quot;,&quot;author_url&quot;:&quot;https://github.com/thirdweb-example&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://github.com/thirdweb-example/thirdweb-auth-next" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://opengraph.githubassets.com/187c1bea694e7802100e91ae7aa0821dd0a78f51542c792c472a0ec289aa77ae/thirdweb-example/thirdweb-auth-next" class="false"><div class="twitter-summary-card-text"><span>https://github.com</span><h2>GitHub - thirdweb-example/thirdweb-auth-next: Enable wallet-based login with thirdweb Auth &amp; Next</h2><p>This example demonstrates how to use thirdweb Auth with NextJS. To run the project, first clone this repository, and then run one of the following commands to install the dependencies: npm install yarn install Next, you need to create a .env.local file and set the THIRDWEB_AUTH_PRIVATE_KEY variable to the admin private key you want to use for Auth, as well as the NEXT_PUBLIC_THIRDWEB_AUTH_DOMAIN variable to the domain you want to use for Auth.</p></div></div></a></div></div><h2>Instalación y configuración</h2><p>Podemos empezar clonando el repositorio de ejemplo utilizando el comando <code>npx thirdweb create</code>:</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb create --template thirdweb-auth-next</code></pre><p>Esto utilizará el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-cli-deploy-publish">CLI de Thirdweb</a> para clonar el repositorio de ejemplo e instalar las dependencias necesarias para nosotros de forma automática.</p><p>Una vez clonado el repositorio, tendremos que configurarlo añadiendo algunas variables de entorno. Crea un nuevo archivo <code>.env.local</code> en el directorio raíz del repositorio, y copia el formato del archivo <code>.env.example</code>. Necesitaremos añadir una clave privada y un dominio auth para nuestra API Auth.</p><div><div class="callout-base callout-tip" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/tip-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>CONSEJO</strong></p><p>Si no quieres utilizar tu propia clave privada para este ejemplo, puede crear una nueva fácilmente ejecutando el siguiente fragmento:</p><pre class="dont-break-out text-sm md:text-base"><code>const ethers = require("ethers");
console.log(ethers.Wallet.createRandom().privateKey);</code></pre></div></div></div></div><p><strong>.env.local</strong></p><pre class="dont-break-out text-sm md:text-base"><code>NEXT_PUBLIC_THIRDWEB_AUTH_DOMAIN=example.com # tu dominio aquí
THIRDWEB_AUTH_PRIVATE_KEY=... # tu clave privada aquí</code></pre><h2>Backend</h2><p>Primero echemos un vistazo al código backend de nuestra aplicación. Si miras en la carpeta <code>pages/api</code>, verás dos archivos: <code>pages/api/secret.ts</code> y <code>pages/api/auth/[...thirdweb].ts</code>.</p><p><code>pages/api/auth/[...thirdweb].ts</code> es donde se encuentra el núcleo de nuestra configuración de la API de autenticación, así que podemos verlo primero. En el proyecto de ejemplo, hay un poco de configuración extra que puedes explorar más adelante y que te muestra cómo utilizar algunas de las características más avanzadas de Auth, pero por ahora vamos a echar un vistazo a cómo es la configuración básica de este archivo (ten en cuenta que este fragmento de código está simplificado para excluir la configuración avanzada):</p><p><strong>page/api/auth/[...thirdweb].ts</strong></p><pre class="dont-break-out text-sm md:text-base"><code>import { ThirdwebAuth } from "@thirdweb-dev/auth/next";
import { PrivateKeyWallet } from "@thirdweb-dev/auth/evm";

// Aquí configuramos thirdweb auth con un dominio y un monedero
export const { ThirdwebAuthHandler, getUser } = ThirdwebAuth({
  domain: process.env.NEXT_PUBLIC_THIRDWEB_AUTH_DOMAIN || "",
  wallet: new PrivateKeyWallet(process.env.THIRDWEB_AUTH_PRIVATE_KEY || ""),
});

// Utiliza ThirdwebAuthHandler como export por defecto para gestionar todas las solicitudes a /api/auth/*.
export default ThirdwebAuthHandler();</code></pre><p>Este archivo es una ruta <em>Next.js catch all</em>, que capturará cualquier petición a los endpoints <code>/api/auth/*</code>. La función <code>ThirdwebAuth</code> toma la configuración de tu API Auth. Tiene muchos parámetros opcionales que no se usan aquí (puedes leer más sobre ellos en la página <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/server-frameworks/next">Auth Next.js</a>), pero los dos parámetros obligatorios son domain y wallet.</p><p><code>domain</code> se utiliza para prevenir ataques de phishing a tus usuarios - puedes aprender más sobre esto en la sección <strong>cómo funciona auth</strong>, pero lo importante es que este dominio coincida con el dominio que configuraremos más tarde en el frontend.</p><p><code>wallet</code> te permite configurar el monedero de administración que emitirá y verificará los JWTs para tus usuarios. En este ejemplo, estamos usando un monedero simple de clave privada, pero también puedes usar monederos más avanzados, como se indica en la sección de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/wallet-configuration">configuración de monederos</a>.</p><div data-type="embedly" src="https://portal.thirdweb.com/auth/wallet-configuration" data="{&quot;provider_url&quot;:&quot;https://portal.thirdweb.com&quot;,&quot;description&quot;:&quot;Auth makes use of a server-side wallet to sign and verify JWTs, as covered in the how auth works section. You can configure this wallet using a variety of wallet management options, giving you the freedom to choose the most convenient and secure setup for your project.&quot;,&quot;title&quot;:&quot;Auth | Wallet Configuration | thirdweb developer portal&quot;,&quot;thumbnail_width&quot;:4800,&quot;url&quot;:&quot;https://portal.thirdweb.com/auth/wallet-configuration&quot;,&quot;thumbnail_url&quot;:&quot;https://portal.thirdweb.com/img/portal.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:2520}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://portal.thirdweb.com/auth/wallet-configuration" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://portal.thirdweb.com/img/portal.png" class="false"><div class="twitter-summary-card-text"><span>https://portal.thirdweb.com</span><h2>Auth | Wallet Configuration | thirdweb developer portal</h2><p>Auth makes use of a server-side wallet to sign and verify JWTs, as covered in the how auth works section. You can configure this wallet using a variety of wallet management options, giving you the freedom to choose the most convenient and secure setup for your project.</p></div></div></a></div></div><p>La función <code>ThirdwebAuth</code> nos devuelve un <code>ThirdwebAuthHandler</code>, que configura automáticamente varios puntos finales de autenticación para que los utilicemos para gestionar los inicios de sesión, la autenticación y los cierres de sesión (como se explica en la <strong>descripción general de la API de autenticación</strong>). También devuelve una función <code>getUser</code>, que podemos utilizar en otros puntos finales para autenticar al usuario que envió una solicitud.</p><p>Esto es exactamente lo que usaremos en el endpoint <code>/api/secret</code>, que es un endpoint simple que devuelve un mensaje secreto si el usuario está autenticado. Podemos ver que usamos la función <code>getUser</code> para obtener el usuario de la petición, y luego devolver el mensaje secreto si el usuario está autenticado:</p><p><strong>pages/api/secret.ts</strong></p><pre class="dont-break-out text-sm md:text-base"><code>import { getUser } from "./auth/[...thirdweb]";
import { NextApiRequest, NextApiResponse } from "next";

const handler = async (req: NextApiRequest, res: NextApiResponse) =&gt; {
  // Obtener el usuario de la solicitud
  const user = await getUser(req);

  // Comprobar si el usuario está autentificado
  if (!user) {
    return res.status(401).json({
      message: "Not authorized.",
    });
  }

  // Devolver el mensaje secreto al usuario autenticado
  return res.status(200).json({
    message: `This is a secret for ${user.address}.`,
  });
};

export default handler;</code></pre><h2>Frontend</h2><p>Ahora podemos echar un vistazo al frontend que interactúa con estos endpoints. El frontend también tiene sólo dos archivos importantes.</p><p>Primero, veamos el archivo <code>pages/_app.tsx</code>. Aquí queremos configurar el SDK <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react">@thirdweb-dev/react</a> para utilizarlo con el paquete Auth. Para ello, tenemos que envolver nuestra aplicación con el componente <code>ThirdwebProvider</code> y añadir <code>authConfig</code> a la misma para que nuestro frontend sepa que tenemos una configuración Auth backend.</p><p><strong>pages/_app.tsx</strong></p><pre class="dont-break-out text-sm md:text-base"><code>function MyApp() {
  return (
    &lt;ThirdwebProvider
      activeChain="ethereum"
      authConfig={{
        // Este dominio debe coincidir con el backend
        domain: process.env.NEXT_PUBLIC_THIRDWEB_AUTH_DOMAIN || "",
        // Pasa la URL de los puntos finales de autenticación
        authUrl: "/api/auth",
      }}
    &gt;
      &lt;Component {...pageProps} /&gt;
    &lt;/ThirdwebProvider&gt;
  );
}</code></pre><p>Aquí, nos aseguramos de que el <code>domain</code> utilizado para el anti-phishing coincide con el que configuramos en nuestro backend, y también establecemos el <code>authUrl</code> a la URL donde configuramos nuestros puntos finales de la API Auth.</p><p>Ahora, el último paso es construir nuestro Auth UI real que nos permite conectar nuestra cartera, iniciar y cerrar sesión, lo que hacemos en el archivo <code>pages/index.tsx</code>:</p><p><strong>pages/index.tsx</strong></p><pre class="dont-break-out text-sm md:text-base"><code>const Home: NextPage = () =&gt; {
  const address = useAddress();
  const connect = useMetamask();
  const { login } = useLogin();
  const { logout } = useLogout();
  const { user, isLoggedIn } = useUser();
  const [secret, setSecret] = useState();

  const getSecret = async () =&gt; {
    const res = await fetch("/api/secret");
    const data = await res.json();
    setSecret(data.message);
  };

  return (
    &lt;div&gt;
      {isLoggedIn ? (
        &lt;button onClick={() =&gt; logout()}&gt;Logout&lt;/button&gt;
      ) : address ? (
        &lt;button onClick={() =&gt; login()}&gt;Login&lt;/button&gt;
      ) : (
        &lt;button onClick={() =&gt; connect()}&gt;Connect&lt;/button&gt;
      )}
      &lt;button onClick={getSecret}&gt;Get Secret&lt;/button&gt;

      &lt;pre&gt;Connected Wallet: {address}&lt;/pre&gt;
      &lt;pre&gt;User: {JSON.stringify(user, undefined, 2) || "N/A"}&lt;/pre&gt;
      &lt;pre&gt;Secret: {secret || "N/A"}&lt;/pre&gt;
    &lt;/div&gt;
  );
};</code></pre><p>Parece que hay varias cosas en marcha, así que vamos a dividirlo en unos pocos componentes simples:</p><ol><li><p>En primer lugar, añadimos la posibilidad de que los usuarios conecten sus carteras con MetaMask, e inicien sesión en nuestra aplicación utilizando los hooks <code>useMetaMask</code> y <code>useLogin</code> del paquete <code>@thirdweb-dev/react</code>. Usamos el hook <code>useAddress</code> para comprobar si el usuario está actualmente conectado con su monedero obteniendo su dirección de monedero conectado, y mostramos la dirección del monedero conectado.</p></li><li><p>A continuación, usamos el hook <code>useUser</code> para comprobar si el usuario ha iniciado sesión en nuestro backend, y mostramos la dirección del usuario en nuestra página. También usamos el hook <code>useLogout</code> para que el usuario cierre la sesión en nuestro backend.</p></li><li><p>Por último, utilizamos la función <code>getSecret</code> para realizar una petición autenticada a nuestro endpoint <code>/api/secret</code>, y mostramos la respuesta de la API en nuestra página.</p></li></ol><h2>Ejecución de la App</h2><p>Ahora que hemos revisado todo el código relevante, podemos ejecutar nuestra aplicación y verla en acción, ejecutando el siguiente comando:</p><p><strong>npm</strong></p><pre class="dont-break-out text-sm md:text-base"><code>npm run dev</code></pre><p><strong>Yarn</strong></p><pre class="dont-break-out text-sm md:text-base"><code>yarn dev</code></pre><p><strong>pnpm</strong></p><pre class="dont-break-out text-sm md:text-base"><code>pnpm run dev</code></pre><p>Si ejecutas la aplicación y navegas a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="http://localhost:3000">localhost:3000</a>, o donde sea que la aplicación se esté ejecutando para ti localmente, deberías ver un simple botón de <code>ConnectWallet</code>. Si haces clic en él y conectas tu MetaMask, verás una pantalla como esta:</p><img src="https://storage.googleapis.com/papyrus_images/3a24b0b46f5807c57030b459f14c823c.png" alt="getting-started-1" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAABJklEQVR4nK3RoY6EMBAGYBIcDoPAIjEIDAJTg0FgqhAoBApTjUGNqaqpqqmqwVShMCgUb4FHreoGmuwld8mZ5VMzaSbTzO8IIcIwjKKoKArf9z3Pc103CIKu64wxrz/O8/yn/cUY42itnRvGOAxDz/Ns27ateYKzrqtSapomKeU8z7Ze13Xf923bAEAIAQCEELgNwyCE0FozxoYbAHDOp2ninNtxxhilVEp5LVBKYYyrqmrblhDS932e5xhjSqlSCiGEMU7TNIoihFCapnEcN00zjmNZlnEcJ0mSZZkdRwjVdW2LPM8JIdcCKWVd18uyCCEIIed5PnKZD2dZlqZp9I1S+gnNPr++DxkAqhtjjHOOEDqO4+cDX7tCthFt27bv+zzPz17pDUASUfXN//SxAAAAAElFTkSuQmCC" nextheight="254" nextwidth="988" class="image-node embed"><p>Así que puedes ver que hemos conectado nuestro monedero pero no hay ningún usuario conectado. Si intentas obtener el <code>Secret</code>, verás que aún no estás autorizado para acceder al backend:</p><img src="https://storage.googleapis.com/papyrus_images/de081af7e4407803407946150973322a.png" alt="getting-started-2" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAJCAIAAADcu7ldAAAACXBIWXMAABYlAAAWJQFJUiTwAAABOElEQVR4nKWRIY+EMBSEy89ZjyBBbIKoQOAqVlQgEAhEBYKfgOUPIFcgalasIcHUVFSsWYGowVZgME/s5Xh3m566u/CpeWIyM3lkWRattTFGKTVNk/rm+XwCwOswREpJdiilQRCgJoRwzjEAdnzPr8G+hVhrlVLGmHmeH4+H3jHGWGsBYNs2AFh3tm1zzvkCNeKfaMEMMgwDY4xznud5VVVCiHyn6zopZRzHjLE4jk+nU5Zl5/M5iqKyLNu2pZSGYZgkSRRFjLGiKCilZVnWdZ1lWZIkdV1/BszzrJTC+uM4Og8AQLGu67s7Nn3P8ouj8Bd/LUjTdBiG6/UqhHDOHX+sDzHGTDs44n6/W2tvt9s4jlprFD8c/4T0fX+5XKqq6vseR0gpi6IQQnRdxzlvmuZQwBHzXwI+ALpm1Z6b7pcFAAAAAElFTkSuQmCC" nextheight="264" nextwidth="992" class="image-node embed"><p>Sin embargo, si hacemos clic en iniciar sesión y firmamos el mensaje que aparece, podremos iniciar sesión en el backend. Ahora, si hacemos clic en el botón <code>Get Secret</code>, podemos ver que estamos autorizados a acceder al backend:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/908518cd5506df130c026f60a013ad43.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">getting-started-3</figcaption></figure><p>Por último, si cierras la sesión y vuelves a obtener el <code>secret</code>, deberías ver que ya no estás conectado.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f8999facb71d664b70c4352e84033fb6.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">getting-started-2</figcaption></figure><p>¡Llegados a este punto, hemos implementado un sistema de autenticación totalmente funcional utilizando Auth! Podemos iniciar sesión, acceder a puntos finales protegidos y cerrar sesión, al igual que un flujo de autenticación tradicional, ¡pero utilizando sólo nuestra cartera!</p><p></p><h1>Guía de actualización</h1><div><div class="callout-base callout-tip" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/tip-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>CONSEJO</strong></p><p>Esta guía le ayudará a actualizar de <strong>Auth v2</strong> a <strong>Auth v3</strong>, para personas que estaban usando <code>@thirdweb-dev/auth@^2</code>. Si es la primera vez que utiliza Auth, sigue los pasos previos en esta guía.</p></div></div></div></div><p>Hay algunos cambios importantes de la actualización de Auth v2 a v3. En las siguientes secciones, veremos cómo realizar las actualizaciones necesarias en el código para poder utilizar Auth v3.</p><h2>React</h2><p>Para actualizar, primero podemos eliminar la propiedad <code>loginRedirect</code> de authConfig en nuestro componente ThirdwebProvider en el nivel superior de la aplicación, ya que Auth ya no utiliza redirecciones en el inicio o cierre de sesión (de hecho, Auth nunca redirigirá a tus usuarios ahora):</p><pre class="dont-break-out text-sm md:text-base"><code>import { ThirdwebProvider } from "@thirdweb-dev/react";

export default function MyApp({ Component, pageProps }) {
  return (
    &lt;ThirdwebProvider
      // Required configuration for the provider, but doesn't affect Auth.
      activeChain="ethereum"
      authConfig={{
        domain: "example.com",
        authUrl: "/api/auth",
        // We no longer need the loginRedirect option
      }}
    &gt;
      &lt;Component {...pageProps} /&gt;
    &lt;/ThirdwebProvider&gt;
  );
}</code></pre><p>Si estás utilizando el componente de botón <code>ConnectWallet</code> para gestionar Auth, y no estás utilizando los hooks <code>useLogin</code> y <code>useLogout</code>, entonces este es el único cambio que tendrá que hacer. Sin embargo, si utiliza estos hooks, deberá realizar un cambio más. En Auth v2, estos hooks solían devolver sus respectivas funciones, pero en Auth v3, devuelven objetos que contienen funciones así como estados <code>isLoading</code>. Así que puede utilizar los nuevos ganchos desestructurándolos de la siguiente manera:</p><pre class="dont-break-out text-sm md:text-base"><code>import { useLogin, useLogout } from "@thirdweb-dev/react";

export default function Component() {
  const { login, isLoading: loginIsLoading } = useLogin();
  const { logout, isLoading: logoutIsLoading } = useLogout();

  return (
    &lt;div&gt;
      &lt;button onClick={login} disabled={loginIsLoading}&gt;
        Login
      &lt;/button&gt;
      &lt;button onClick={logout} disabled={logoutIsLoading}&gt;
        Logout
      &lt;/button&gt;
    &lt;/div&gt;
  );
}</code></pre><p>Para una visión más completa de cómo utilizar Auth con React, consulta la guía completa Auth y React.</p><div data-type="embedly" src="https://portal.thirdweb.com/auth/client-frameworks/react" data="{&quot;provider_url&quot;:&quot;https://portal.thirdweb.com&quot;,&quot;description&quot;:&quot;Once you've setup an Auth API for your application, you can use the @thirdweb-dev/react and @thirdweb-dev/auth packages to add Auth support to your React apps.&quot;,&quot;title&quot;:&quot;React | thirdweb developer portal&quot;,&quot;thumbnail_width&quot;:4800,&quot;url&quot;:&quot;https://portal.thirdweb.com/auth/client-frameworks/react&quot;,&quot;thumbnail_url&quot;:&quot;https://portal.thirdweb.com/img/portal.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:2520}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://portal.thirdweb.com/auth/client-frameworks/react" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://portal.thirdweb.com/img/portal.png" class="false"><div class="twitter-summary-card-text"><span>https://portal.thirdweb.com</span><h2>React | thirdweb developer portal</h2><p>Once you've setup an Auth API for your application, you can use the @thirdweb-dev/react and @thirdweb-dev/auth packages to add Auth support to your React apps.</p></div></div></a></div></div><h2>Next</h2><p>Si utilizas Next.js como backend de Auth, también tendrás que actualizar la configuración de tu backend de Auth. El principal cambio es que Auth ya no acepta una <code>privateKey</code> en su configuración, y en su lugar acepta la propiedad de cartera más genérica y flexible del tipo <code>GenericAuthWallet</code>. Así es como puedes actualizar tu archivo <code>pages/api/auth/[...thirdweb].ts</code>:</p><pre class="dont-break-out text-sm md:text-base"><code>import { ThirdwebAuth } from "@thirdweb-dev/auth/next";
import { PrivateKeyWallet } from "@thirdweb-dev/auth/evm";

export const { ThirdwebAuthHandler, getUser } = ThirdwebAuth({
  domain: "example.com",
  wallet: new PrivateKeyWallet(process.env.THIRDWEB_AUTH_PRIVATE_KEY || ""),
});

export default ThirdwebAuthHandler();</code></pre><p>Este es el principal cambio que tendrás que hacer en la configuración de Auth de tu backend. Para obtener más información sobre cómo utilizar Auth con Next.js, consulta la guía completa sobre Auth y Next.</p><div data-type="embedly" src="https://portal.thirdweb.com/auth/server-frameworks/next" data="{&quot;provider_url&quot;:&quot;https://portal.thirdweb.com&quot;,&quot;description&quot;:&quot;This page will focus mainly on integrating Auth on the server-side with Next.js by implementing the Auth API. To add support for Auth to your Next backend, you'll need to install the @thirdweb-dev/auth package (as well as any other packages you'll need for your wallet configuration, we'll need the ethers package for this example as we'll be using the PrivateKeyWallet): Now we can setup our Next.js server by using the @thirdweb-dev/auth/next entrypoint.&quot;,&quot;title&quot;:&quot;Next | thirdweb developer portal&quot;,&quot;thumbnail_width&quot;:4800,&quot;url&quot;:&quot;https://portal.thirdweb.com/auth/server-frameworks/next&quot;,&quot;thumbnail_url&quot;:&quot;https://portal.thirdweb.com/img/portal.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:2520}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://portal.thirdweb.com/auth/server-frameworks/next" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://portal.thirdweb.com/img/portal.png" class="false"><div class="twitter-summary-card-text"><span>https://portal.thirdweb.com</span><h2>Next | thirdweb developer portal</h2><p>This page will focus mainly on integrating Auth on the server-side with Next.js by implementing the Auth API. To add support for Auth to your Next backend, you'll need to install the @thirdweb-dev/auth package (as well as any other packages you'll need for your wallet configuration, we'll need the ethers package for this example as we'll be using the PrivateKeyWallet): Now we can setup our Next.js server by using the @thirdweb-dev/auth/next entrypoint.</p></div></div></a></div></div><h2>Express</h2><p>Si está utilizando Express para tu backend Auth, también tendrás que actualizar la configuración de su backend Auth. Auth ya no acepta una <code>privateKey</code> en su configuración, y en su lugar acepta la propiedad de cartera más genérica y flexible del tipo <code>GenericAuthWallet</code>.</p><p>Además, la configuración de <code>ThirdwebAuth</code> ahora expone middleware y un enrutador para que los utilices con tus aplicaciones express para seguir un patrón más idiomático con express. Así es como puedes actualizar tu archivo <code>pages/api/auth/[...thirdweb].ts</code>:</p><pre class="dont-break-out text-sm md:text-base"><code>import { ThirdwebAuth } from "@thirdweb-dev/auth/express";
import { PrivateKeyWallet } from "@thirdweb-dev/auth/evm";
import express from "express";

const PORT = 8000;
const app = express();

const { authRouter, authMiddleware, getUser } = ThirdwebAuth({
  domain: process.env.THIRDWEB_AUTH_DOMAIN || "",
  wallet: new PrivateKeyWallet(process.env.THIRDWEB_AUTH_PRIVATE_KEY || ""),
});

// Añade el router auth a nuestra aplicación para configurar los endpoints /auth/*.
app.use("/auth", authRouter);

// Añadir el middleware auth al resto de nuestra aplicación para permitir la autenticación de usuarios en otros puntos finales.
app.use(authMiddleware);

app.listen(PORT, () =&gt; {
  console.log(`Server listening on port ${PORT}`);
});</code></pre><p>Con esta configuración, deberías estar listo para utilizar Auth y Express. Para obtener más información sobre cómo utilizar Auth con Express, consulta la guía completa sobre Auth y Express.</p><div data-type="embedly" src="https://portal.thirdweb.com/auth/server-frameworks/express" data="{&quot;provider_url&quot;:&quot;https://portal.thirdweb.com&quot;,&quot;description&quot;:&quot;This page will help you get started with Auth using the Express.js framework. To add support for Auth to your Express.js backend, you'll need to install the @thirdweb-dev/auth package as well as its peer dependencies (as well as any other packages you'll need for your wallet configuration, we'll need the ethers package for this example as we'll be using the PrivateKeyWallet): Now we can setup our Express.js server by using the @thirdweb-dev/auth/express entrypoint.&quot;,&quot;title&quot;:&quot;Express | thirdweb developer portal&quot;,&quot;thumbnail_width&quot;:4800,&quot;url&quot;:&quot;https://portal.thirdweb.com/auth/server-frameworks/express&quot;,&quot;thumbnail_url&quot;:&quot;https://portal.thirdweb.com/img/portal.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:2520}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://portal.thirdweb.com/auth/server-frameworks/express" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://portal.thirdweb.com/img/portal.png" class="false"><div class="twitter-summary-card-text"><span>https://portal.thirdweb.com</span><h2>Express | thirdweb developer portal</h2><p>This page will help you get started with Auth using the Express.js framework. To add support for Auth to your Express.js backend, you'll need to install the @thirdweb-dev/auth package as well as its peer dependencies (as well as any other packages you'll need for your wallet configuration, we'll need the ethers package for this example as we'll be using the PrivateKeyWallet): Now we can setup our Express.js server by using the @thirdweb-dev/auth/express entrypoint.</p></div></div></a></div></div><p></p><h1>Cómo funciona Auth</h1><p>En esta sección, cubriremos los fundamentos de cómo Auth habilita la autenticación y autorización nativa de web3. Empecemos repasando brevemente los conceptos básicos de autenticación y autorización.</p><h2>Panorama general</h2><h3>¿Qué son la autenticación y la autorización?</h3><p>La <strong>autenticación</strong> es el proceso de verificar la identidad de un usuario. Mientras tanto, la <strong>autorización</strong> es el proceso de verificar a qué tiene acceso un usuario específico y qué se le permite hacer.</p><p>Ser capaz de autenticar y autorizar usuarios es una parte crítica de cualquier aplicación web. Nos permite almacenar, manipular y acceder a datos específicos del usuario, y nos permite restringir el acceso a determinadas funciones en función de la identidad del usuario. Son capacidades esenciales para todas las aplicaciones, incluidas las aplicaciones web3.</p><h3>¿Cómo funciona la autenticación?</h3><p>Un método común de autenticación web2 implica el uso de JSON Web Tokens (JWTs) para enviar datos de autenticación entre clientes y servidores. Un flujo JWT estándar tiene el siguiente aspecto:</p><img src="https://storage.googleapis.com/papyrus_images/f0dc19d79fa4966aae266f41319f1061.png" alt="how-auth-works-1" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAACcElEQVR4nHWRz2vTcBjG35sXT8KYhyEoXgT1oMzphOF/ICLeFMqGAxUvCvtR0c2bIAOH04Fjzjl0HkRxeFIHo2VrliVfm6ZpZ9KmadN9myZNsi1Z0rXdIl8rTgThwwvPy8v7wPMAhMahYxC6hqBr+BdDRF4Z1Tc8y/Erjm85/qpcxIZd0CpF3cqqGq6sq5qpaqbl+KbjWV4da1j4fIJ7B/z7Pb7PQnbhMsC5e7D/GrR2Q0uI0NpN5Mm7GbWcVTUpjwuayfI/4oJIoeQKl4pQKJ7ORChEc0LzIKMaKVFgpmF5DKgxWH5GoMdh6QnwHwDgwjB52tYLB3sIbb1EnhngxJyolKR8SVRwPJ2RcsVVmZDKKEkxJ+UxL8qigkUFS6ou52U0Q/5yk5CcIrATxEyYOwQkk5YQHL4BHWE4NQBHbsKBEJzu1yzXrweb1camVy9oFd12c2vlrFoq6jaurBe0CjZsvx64tR2vEWy6NjMD6AW8uQ+TffCyH76OAPschLm2vwzOP4Cuh3D0NjFo75fUsrym86K8EGMQv7rIcBRKLjGJhJiNIT6RzkRpFImxgqhkVINPJ+hXEJ+AmTA8ug4jt+DLnsF/IlI0q2RulG0XV9axYauaSaTllG1X1Uxs2Ao2VM3Ubadse0VcaEaUmAJh+p+I/pTc2rNX8vE7rCDRnBCh0AqXno8ur3CpKI0olKSQ8C1KRWLsIsMtMlwkxiJBlvNZZoqU3Gy4WTI9CqmP+wCuPoX2PugMw9lBQmeYyEuPvUZQCwK3tru1vbtVbTQnkWTuuLVdvx6QfbVe3Qm2617i0zH2LaDZ37BvgX4N4vzFn5gP1a6bNehAAAAAAElFTkSuQmCC" nextheight="432" nextwidth="1706" class="image-node embed"><p>Normalmente, el flujo se inicia cuando un usuario envía una solicitud para iniciar sesión en una aplicación. Esta solicitud debe contener algunos datos que demuestren al servidor que el usuario es quien dice ser, lo que llamaremos una prueba de identidad. Un ejemplo de <strong>prueba de identidad</strong> es que un usuario envíe al servidor un nombre de usuario y una contraseña.</p><p>A continuación, el servidor tiene que ser capaz de verificar esta prueba de identidad, tras lo cual puede identificar con éxito al usuario autenticado. Este proceso de verificación es lo que se conoce como <strong>autenticación</strong>. Sin embargo, sería ineficaz que los usuarios tuvieran que presentar una prueba de identidad cada vez que quisieran acceder a un recurso.</p><p>Para evitarlo, necesitamos una forma de que el servidor <strong>recuerde</strong> que un usuario ya se ha autenticado antes y, en consecuencia, recuerde la identidad de un usuario.</p><p>Esto es exactamente para lo que se utilizan los JWT. Cuando un servidor autentica con éxito a un usuario, puede emitir un JWT firmado al usuario. Este JWT contiene la identidad del usuario, que éste puede enviar al servidor en posteriores solicitudes de acceso a recursos.</p><p>Y lo que es más importante, dado que el JWT ha sido firmado por el servidor, éste puede verificar que ya ha autenticado previamente al usuario y acceder instantáneamente a su identidad sin tener que autenticarlo de nuevo.</p><p>Esta es la intuición básica detrás de cómo funcionan los flujos de autenticación JWT estándar. <em>Auth también utiliza la autenticación JWT, pero con algunas diferencias clave que la hacen óptima para aplicaciones web3.</em></p><h3>¿Qué hace que auth sea único?</h3><p>Hay tres factores clave que diferencian a Auth y lo convierten en el flujo de autenticación web3 ideal:</p><ol><li><p>Auth utiliza la identidad web3</p></li><li><p>Auth utiliza la prueba de identidad web3</p></li><li><p>Auth utiliza la autoridad web3</p></li></ol><p><strong>Identidad</strong></p><p>Toda aplicación necesita una forma de identificar a sus usuarios. En las aplicaciones web2 tradicionales, los usuarios suelen identificarse con un nombre de usuario o una dirección de correo electrónico únicos a los que se asocian todos los datos específicos de la aplicación.</p><p>Sin embargo, con este patrón, las identidades de usuario son siempre específicas de cada aplicación y, por tanto, sólo pueden asociarse a datos específicos de la aplicación y no son portables entre aplicaciones. Además, los usuarios tienen que crear una nueva identidad para cada nueva aplicación a la que quieran acceder. Tampoco hay una forma obvia de asociar la identidad de un usuario con sus identidades en la cadena para acceder a los datos de la cadena.</p><p>Auth resuelve todos estos problemas utilizando identidades web3. Con Auth, los usuarios se identifican con la dirección de su monedero, en lugar de con nombres de usuario o correos electrónicos. Esto significa que las identidades de los usuarios son universales en todas las aplicaciones y pueden asociarse con datos ricos a nivel de ecosistema. Además, las aplicaciones pueden utilizar las direcciones de monedero de sus usuarios para acceder a los datos de la cadena.</p><p><strong>Prueba de identidad</strong></p><p>Para iniciar sesión en una aplicación, los usuarios tienen que demostrar que son quienes dicen ser. En web2, esto significaba proporcionar la contraseña asociada a su nombre de usuario, para demostrar que eres el propietario del nombre de usuario. Esto obliga a los usuarios a recordar constantemente varias contraseñas en sus aplicaciones, lo que crea la necesidad de gestores de contraseñas, preguntas de seguridad y otros métodos complejos de gestión de contraseñas.</p><p>Sin embargo, en web3, los usuarios disponen de una forma mucho más sencilla de demostrar que son propietarios de una identidad concreta: las firmas digitales. Simplemente firmando un mensaje y enviándolo al servidor, los usuarios pueden demostrar que poseen una dirección de monedero específica de forma segura, sin contraseñas. El servidor puede entonces utilizar ese mensaje firmado para verificar la dirección del monedero del usuario.</p><p>Este es exactamente el patrón especificado en los estándares Sign-in with Ethereum (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://eips.ethereum.org/EIPS/eip-4361">EIP4361</a>) y Sign-in with Wallet (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-122.md">CAIP122</a>), que son los que Auth implementa para permitir a los usuarios iniciar sesión de forma segura con sus monederos.</p><p>Así que con esta información, podemos actualizar el primer diagrama simplificado que hicimos anteriormente para aclarar cómo funciona Auth:</p><img src="https://storage.googleapis.com/papyrus_images/6ee78deda9e8e898b27cc4a695772baf.png" alt="how-auth-works-2" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAACd0lEQVR4nE2Sy2sTURSHfwgiKEgpUnSh4sa3EOJj5R8grlz5bEtFfCC10oePvVIVWqpSFRuLimAFF9oHoWlNk06cJpNJOpl2MpPMJJk0iSl9TZJxmDQVQa4JaeHjcriL893zOxc48wiHW2Bpq2Btx4E7ONuZy+vZpQIvxaJqWoqlxFhSUuaS2UUplorE0zOROLlXklE1Pb/yO5FKsQObff1gP67js4EfPA4cbMbWS6htqLCjEVsuwtL6a35BSmRYXmT5sDfIM5zg8XOCrLK8GBJl9xQbEpWxSdrPhyNqdlYM0zZ4nsPzYp3Jbvg/Azh6lzSta6oIdjahph7W9oiSCEmxWTkZEmMMJ4REJSQqLC8ynMBw4ZCoMJwgxdOzsjojJ0U56u0H1QP/GwT6ELTB+5oIggNlwfYr2HcLlg4ca8Pem9h2GdYO3TCWC6ZmlDTdlNXMXHZJmcvKaiaemU9mF2U1o2YW8kZJM0zNWNNyGm0D04v3D9Dbgr52jDwB/RJsZYKaeuy5QQSnHpLivyCRTIekmG9a+G7/QfmmR8bdTo/P4aIZTnC4aMoXtDup4TEXwwl8JOENBKg+MK+I4PE1PL2Ooc6qwNKKukaSTG0DMe26SoqT94ulteWCmTfXNN0skzdWq6emmws5XdOLeWNVX/27nFvx9pPcAzZM9xN8b0liwS8A9t/GpgskpSo4j0PNQiQ6QfvtTmp8cmpwdMJN+4dGJxwu2k37v9nHB0edDhddHoIOhoWINGXDzy7S1NVNoHpAdYH9BJBvammFtaPCiXs40oJzz4qlP+UFbHw+oVroRU03lwoG2YGeD3zd7f2AjdDvwA+f/gdMz8NBIQyn6gAAAABJRU5ErkJggg==" nextheight="426" nextwidth="1700" class="image-node embed"><p><strong>Autoridad</strong></p><p>Por último, como hemos mencionado antes, Auth utiliza JWTs para ayudar al servidor a "recordar" cuando un usuario ya se ha autenticado con éxito y ha demostrado su identidad anteriormente. Estos JWTs deben ser firmados por la <strong>autoridad</strong> del lado del servidor para que el servidor pueda verificar posteriormente que el JWT es válido.</p><p>En los flujos web2 estándar, esta emisión y verificación de tokens JWT suele estar a cargo de un servicio de terceros como auth0, que gestiona la clave privada de firma y los JWT para sus usuarios. Esto conlleva una dependencia de servicios externos de terceros para la autenticación de tus aplicaciones.</p><p>Sin embargo, Auth elimina esta dependencia de terceros utilizando web3 wallets en el backend para emitir y verificar los tokens JWT. En lugar de dejar que un servicio de terceros gestione y firme los JWT de sus usuarios, puede utilizar su propia cartera web3 como la autoridad que firma y verifica los JWT para su propia aplicación.</p><p>Esto permite un flujo de autenticación verdaderamente <strong>auto  custodiado</strong> sin dependencias externas. Con esta información, ahora podemos visualizar el flujo Auth con mayor precisión:</p><img src="https://storage.googleapis.com/papyrus_images/2fcd1f8f4901f78eacaffd140aa03dde.png" alt="how-auth-works-3" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAACaklEQVR4nE2S3WvTUBjG30svREQc88IrEcELYQhaROZfIN6JCA7GBEFhN7Khq2PTW0HchlNwzjkHDkEHermhjO6jbdqEnDRJS5omTfNBmnTJtn4sse0iJ0U7+HF4Dgfe5+V5DsDdGYiMQf8k9D8PmcTXuzNurWHvNXKSVjIrRcOW9bKslY3KbsnckfVyXjE6QjUrlaqvmwb78wJaBuZrF7QM4u+bAJdH4cQA9A51OT4AfSOa5Ui6zWQlmhNSiCczuQTF5iSVFWSaEwjEZQQpFieZbF42HV7kiXlIvMEkZzHEO9ieAuYbAFx7Bmfuw9kH+OyI3iGIjPGikivqnKgwWTEnaXhuVkR8nuaE0AMLmhN4UcmrlqQUqCU8FM0Du4ChQr/MymmASBR6BuHcI7gSxZwfhlODEBnbq3mNdtDJpOxUNcspqGZBNYuGrVlOXjFkHSfmNvyDdlCtuelFoN7DUhQ+jMLHJ7D2Csi3kFk5ecQgMg43XmARGpQMS1RNVpBjcTLF8BsEnaC4rTRiBXk7zdDZ/CZBx+IkLxbzqoU4lPwE9Bw2ePkQpodhtWtwNKLeoX8RRS23au7sW27NsF3DdjXLKTu7ZadquTXNcgzbLZkV1dyx3Gplz9dNjVzsRsQtAjn3P6K+Edxqz2CXY/fg0mNOVAjEbYaL/9pIphC/Hk8nKDaFsqvrW7E4uZ1GmykUi5MoV5SVArUAybDhTtXELBDTwH0HgDtT4TedgOvjmP4JuPoUbr9uBoHXDg6aQd0/3Pdadf+w7rUOmkHDb9e9Vu3PIX7yWnWv6QeB32wwPy6SX+AoxGfIrd36C2Rk0vn8pKIAAAAAAElFTkSuQmCC" nextheight="434" nextwidth="1704" class="image-node embed"><p><strong>Conclusión</strong></p><p>Mediante el uso de la identidad web3, la prueba de identidad y la autoridad, Auth permite un flujo de autenticación auto custodiado y nativo de web3 para sus aplicaciones que permite a los usuarios iniciar sesión con sus carteras.</p><p>Esto nos permite acceder de forma segura a la identidad en cadena de los usuarios en el lado del servidor, desbloqueando la conexión entre las experiencias web2 y web3.</p><h2>Auth API</h2><p>Así que ahora que entendemos cómo funciona Auth y los detalles de los bloques de construcción que lo hacen posible, vamos a poner toda esa información junta para entender lo específico de cómo funciona la API de Auth.</p><p>La API de Auth es un conjunto de puntos finales REST que implementan todos los complementos de servidor del SDK de autenticación. Permiten la autenticación y autorización basadas en monedero para cualquier API a la que se añadan. La Auth API ofrece tres puntos finales clave:</p><ul><li><p><code>POST - /login</code></p></li><li><p><code>GET - /user</code></p></li><li><p><code>POST - /logout</code></p></li></ul><p style="text-align: start">Veamos con más detalle cómo es cada uno de estos puntos finales y cómo funcionan todos juntos.</p><h3>Login</h3><img src="https://storage.googleapis.com/papyrus_images/422801c3ff81e5a17d4401c33904400b.png" alt="auth-api-1" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAACVUlEQVR4nGWSy2sTURjFz14QEQkiLqRuXGmhBEXUP8GFoLtSo7io4qa1ttWFIuLCNqlQH9VgI1QEBaHgwgdtOo6TzHTSadMkTcZk0rxsGieT6XQ6yThNjHKbmhSEHx/n417ugXMucM6J9huwD8I+QDg+SNazD1XdUPRKUTOKWks0UbTmkVHSf8mqwr89wHqwE58bC5N2oKMPezqx/1KL3Z041ru2Yermpla2DOu3blYNq7Y1id4wq7pZ1cqWblbXypV1s6ZqJZ8blAvUCLxOzAwTMTOM2QkAJwbJowevkGlzEGFzwH4zGE0EwiK3EJn8OEWxAS8zO8Vw0zTL8MFpmqU5wS8sfqH8QlgMhBOcEKDd+DoC7gn4MQLzmBgEXgMkk30XcfgaSaljAG1XsbcL9n5ZXc8r63l5LSqlpUw+GE0sxVMhUYpK6fmIKC5nE+mVYOR7XlYLajmVSVFjYEfxsg+j1/GiBx8egBkBN9E0ONRNCjh9B23dDYN46kcyV0jmCqmVn6FoQsrkY1I2KmVCorScKyyJSXE5m11VkrnVZE7O5DK0mxh4+nG3C/cv4/09MI8aBs2IbA7itB3RgBCJLcakkJicX4p/pnysEKa5OS/Df/IyswuRaZrzC6GtC9KimIrFRdZDIuKfY85N8D8llfBvALT3klZtjha7OnG0xzCtf8XWrNofw6pVqvVKtd7UjcJ1c9Ow6qpW+vYM9BB51DtEoFxk5V4BuOCEvR8nb21z6jZZz7uK6oaiVRrs/KDyf59V0UxZKfLvjvjG4fe08I1jfvLMX4ER0gSL2jkaAAAAAElFTkSuQmCC" nextheight="430" nextwidth="1702" class="image-node embed"><p>El endpoint <code>/login</code> es el inicio de todo el flujo Auth. Es un punto final <code>POST</code> que espera recibir el <code>payload</code> de inicio de sesión con monedero del cliente. El propósito principal de este endpoint es comprobar que el usuario ha realizado una petición válida de inicio de sesión con monedero, y emitirle un JWT firmado si lo tiene para que se autentique en otros endpoints.</p><p>El endpoint <code>/login</code> realiza los siguientes pasos para lograr esto:</p><ol><li><p>Comprueba que la solicitud de inicio de sesión con monedero es válida, segura y no ha caducado, como se especifica en la sección de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/how-auth-works/sign-in-with-wallet">inicio de sesión con monedero.</a></p></li><li><p>Generar un JWT firmado para que el usuario se autentique en otros puntos finales, como se especifica en la <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/how-auth-works/json-web-tokens">sección JWT</a>.</p></li><li><p>Devuelve el JWT firmado al cliente tanto en la respuesta como en las cookies, para compatibilidad entre clientes con y sin navegador.</p></li></ol><h3>User</h3><img src="https://storage.googleapis.com/papyrus_images/3fad4b702bf3d2d8e095d0914e053ba9.png" alt="auth-api-2" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAACPElEQVR4nE2SX2hScRTHv/QUBCNijKCisPcQROxl9NzrINhDY1vUw+ohKAV9ab0Miv1rtI1s0B6ioHyLMYrR5rY7dd6uqbu7u+lVr9mdd7e7O73qFbVm/NSc8OFwzvn9OF/4ngP0TcJsh9UFq5Ngc+GaHX0Tml5UdaOT37lim45+USvWFFUKvjvlX0QnlBvR5ZuAxYGzAzh/54QzA7A48qVyrlTpRC/X/lNtN49KRr58fKhJlBveKaxOEtYm4J3G+jjoD12AzUmGXrxHYs8wSXqGYXWyvMCwP1rs8CEu/pXapoJhPxOlI1z7KcTyod1EgNmi3FifRmAOwVcEapbIMJ5LDYHuIVx9QFyyOGG6j3ODsDoVLb+vEmRNV3IFWSsI6WxKOuAEcV85UjRd1vTGhyNZKyeT/KYb/lm8foS5hyQuPwM1DcZzAcT37iFcGSFJ7yhMI00BIS3FxWwiI7OxVIjl+eSvPeFnXJQ4IR3m4nuCyMaSiYycyGSFjCqmY5Qb/pdYcODpIMbu4tNYW8DmalnUM0yUmonNFd7lw1ycjaW26PDKhp+OcJsBho5wS1/Wlla829/ZjQAT5RNRXojw4h4f8S1gYwZBN74tEHzzZCWM5zJgfoyuATK0zenbMNuNSmulxcpfo1YnsXrczBvlH6NWby68UKlrWoaah3eC+L46TvBOYf056PcA+l/gugu9T1rcGCVl/8xhrqTmDDV3cp1Kx5m2jrXxeqhXDxSJ/mjyLSLw9gTfG+x8vvUPDyvV4ZSmAI4AAAAASUVORK5CYII=" nextheight="430" nextwidth="1706" class="image-node embed"><p>El punto final <code>/user</code> es un punto final <code>GET</code> que permite al cliente comprobar periódicamente si el usuario sigue conectado y obtener cualquier dato de usuario asociado que sea relevante para el cliente (como datos de perfil, por ejemplo).</p><p>Esto se puede lograr siguiendo los siguientes pasos:</p><ol><li><p>Comprobar que el usuario ha enviado un JWT válido en las cookies o cabeceras de la petición, como se especifica en la <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/how-auth-works/json-web-tokens">sección JWT</a>.</p></li><li><p>Si el usuario no ha enviado un JWT válido, devolver <code>null</code>.</p></li><li><p>Rellenar cualquier dato de sesión almacenado en el JWT en el objeto de usuario y cualquier dato externo asociado al usuario en el objeto de usuario (como datos de una base de datos).</p></li><li><p>Devuelve el objeto de usuario al cliente</p></li></ol><h3>Logout</h3><img src="https://storage.googleapis.com/papyrus_images/6dde11d01b4aca96665479c999de8e80.png" alt="auth-api-3" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAAB+0lEQVR4nHWSTWjTYBzGn4MHUfAwRvHgyXkfAwkK8653cRfHVkEPw4tUsB1MvIngRtxAmaUbOGEyEG+TIdSPpW36kSzr2pIlmwu6rXa0aZpmaV1WI29T0ygIP/68X7wPPM8DDNGgghicwODDNhNkO0QbTUtvHnupmZaL5/zIsGxNrwrv+jIL4F53SS+gsHIVGLiPM8Pw+bucHkZ/oGG1TMt2abRsy7abf6bnqtVo2YapsREwNFafgZkmxGbw5Sm4RQCXQjh7C+duk+ksfH5Qwby8w+UkoSA7cDlpJcqkhDyT5Fk+654LBWldVFJrqUSEfMq9xFqYkJolevzSKYAKoXcU58dwMUTou4ueEVBBzWioRtPL1rfibknd2Pwq7ezWTEvtPGhUzeP90l4igsxzzAcxew/hAJafgJ0Bv3TCI0CN48ojsmgLFCtaWTcdlP2yrOwVK7XvpcqBqjsyP6p1cls7LOs/1epBYq4j8PgOpsa8Al6LfH7XIj63KRTkrLidkxVWyL+Prn6MpT98in9OZKJMMpYWcrKSFbez4ta6qEiymJon1jsWCRGwL1yL+gMk1d5RQs8ImSdv/hOym61ld3FDbv6y64aaDCNGtxOmCfFpxCYhvAFwY6pT08vjBFLTB7g+WTeP/tfRv5vq1FTj315gX8FLfA4by9d+A+wD37H0HlXWAAAAAElFTkSuQmCC" nextheight="434" nextwidth="1704" class="image-node embed"><p>El endpoint <code>/logout</code> es el más simple de todos. Su objetivo es simplemente invalidar el JWT del usuario y cerrar su sesión en la aplicación. Esto se consigue borrando cualquier cookie del cliente con el JWT, y opcionalmente invalidando el JWT si se utiliza una base de datos.</p><h3>Endpoints protegidos</h3><img src="https://storage.googleapis.com/papyrus_images/b8c8bee74d9e20f28ec033d0cea7d18e.png" alt="auth-api-4" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAACHElEQVR4nHWSTU8TYRSFz9KNLgwhLHRD/AGSkKaJ9HeICQaK0QXu1KitlrhzI6ZANE2baiKudGHYmGAVSp1xSsdph7H0a1rb0C/K9GM6tkNxKGPeFkpJJHlyc2/eN/ck51zguh2GxxizYWyWYJol440FVTtQWkfUVe2/dF7/NjS9WtsJfjj/cwnc+xMCb5FYmwBGHuDCTQyaMTBFGDTj3ARGH2mHuqoRWm1d00ntNj1a7e6H9t6h/kfJ0w5QdnyfB7VAoBdBzUH4dAUwWjA0jUu3SR26RZpBM4yWeDLDheN8RGSFqMfHMJzgD4bXGY5ieWojtEYHaJYXYik+kuBjmQDr87vJUs6JkAucC8xr0Hb8Wr7aERiYwvAMRi2E4bu4OAnjE7mxV1bUqkLqlpjeEjOJdD7xOxtNbSe3i0I0KWbycrNVrjcrDS2bizFObLyC+yGc9+C6D88L+BchLI8AhmMBgxWmZ6QhAlapWisrajpfyhR2S1WlLDeKlfpuVSlIckGq5aVarlRJ53aKFbnS0CQp7XeDdZDVz+/g5Qy+zPUETlk0fWyRdTMiCrEUzW56adbLEEM8PmbFS9Msv85wK6vUNx/z+auXC8cEMRuPBwN9FoVOWXRGyAedkHvB9jf9aatau6XrdTnLOMjGbsKUnYjRRyGPd87UZMO1pwSTjYzj8819coVnHWgf+90z5T5e9r9DYOmEH28QXZ38B8003fK61WZ8AAAAAElFTkSuQmCC" nextheight="434" nextwidth="1708" class="image-node embed"><p>Por último, podemos echar un vistazo a cómo Auth se puede utilizar para proteger puntos finales adicionales, que es una de sus funciones más importantes, ya que esto comprende su función de <strong>autorización</strong>.</p><p>Autorizar al usuario en un endpoint implica el siguiente proceso simple:</p><ol><li><p>Obtener la identidad del usuario autenticado mediante un método similar al del endpoint <code>/user</code> (es decir, leyéndola del JWT, si hay alguno presente).</p></li><li><p>Conceder permiso al usuario basándose en su identidad</p></li></ol><p>En todos los plugins de autenticación, esto se gestiona mediante una sencilla función de ayuda que puedes añadir a tus endpoints para no tener que preocuparte de los detalles del proceso.</p><h3><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/how-auth-works/sign-in-with-wallet">Sign-in with Wallet</a></h3><h3><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth/how-auth-works/json-web-tokens">JSON Web Tokens</a></h3><p></p><h1>Configuración de Wallet</h1><p>Auth hace uso de un monedero del lado del servidor para firmar y verificar JWTs, como se explica en la sección <strong>cómo funciona auth</strong>. Puedes configurar este monedero usando una variedad de opciones de gestión de monederos, dándote la libertad de elegir la configuración más conveniente y segura para tu proyecto.</p><div data-type="embedly" src="https://portal.thirdweb.com/auth/wallet-configuration" data="{&quot;provider_url&quot;:&quot;https://portal.thirdweb.com&quot;,&quot;description&quot;:&quot;Auth makes use of a server-side wallet to sign and verify JWTs, as covered in the how auth works section. You can configure this wallet using a variety of wallet management options, giving you the freedom to choose the most convenient and secure setup for your project.&quot;,&quot;title&quot;:&quot;Auth | Wallet Configuration | thirdweb developer portal&quot;,&quot;thumbnail_width&quot;:4800,&quot;url&quot;:&quot;https://portal.thirdweb.com/auth/wallet-configuration&quot;,&quot;thumbnail_url&quot;:&quot;https://portal.thirdweb.com/img/portal.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:2520}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://portal.thirdweb.com/auth/wallet-configuration" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://portal.thirdweb.com/img/portal.png" class="false"><div class="twitter-summary-card-text"><span>https://portal.thirdweb.com</span><h2>Auth | Wallet Configuration | thirdweb developer portal</h2><p>Auth makes use of a server-side wallet to sign and verify JWTs, as covered in the how auth works section. You can configure this wallet using a variety of wallet management options, giving you the freedom to choose the most convenient and secure setup for your project.</p></div></div></a></div></div><hr><p></p><h2>Recursos adicionales</h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/"><strong>Documentación thirdweb</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/community/Gu%C3%ADas%20&amp;%20Documentaci%C3%B3n%20thirdweb"><strong>Documentación (No oficial) ES</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/"><strong>Blog Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/guides/"><strong>Guías Oficiales</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates"><strong>Plantillas</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/thirdweb"><strong>Youtube Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes"><strong>Youtube Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.com/events"><strong>Eventos</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb"><strong>Discord Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://support.thirdweb.com/">Support</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb">Twitter Oficial</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es">Twitter Oficial ES</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_jp">Twitter Oficial JP</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento">Blogs y guías en Español</a></p></li></ul><p></p><hr><p style="text-align: center"><strong><em>Suscríbete para recibir las guías, tutoriales y noticias de&nbsp;@thirdweb en español</em></strong></p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p>Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb?ref=blog.thirdweb.com">Discord</a>, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/ZV3gUhiP?typeform-source=thirdweb.com&amp;ref=blog.thirdweb.com">ponte en contacto</a> directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.</p><p>Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!</p><div data-type="embedly" src="https://thirdweb.com/?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.&quot;,&quot;title&quot;:&quot;thirdweb: The complete web3 development framework&quot;,&quot;thumbnail_width&quot;:2400,&quot;url&quot;:&quot;https://thirdweb.com/&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdweb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1260}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdweb.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb: The complete web3 development framework</h2><p>Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.</p></div></div></a></div></div><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdweb_es</category>
            <category>documentacion-thirdweb</category>
        </item>
        <item>
            <title><![CDATA[Documentación thirdweb: CLI, Deploy & Publish]]></title>
            <link>https://paragraph.com/@samusarmiento/thirdweb-cli-deploy-publish</link>
            <guid>Yk9biOPNPAUOme0JI7WC</guid>
            <pubDate>Wed, 07 Jun 2023 15:28:58 GMT</pubDate>
            <description><![CDATA[El CLI proporciona herramientas para crear, construir y desplegar proyectos utilizando herramientas e infraestructura de thirdweb...]]></description>
            <content:encoded><![CDATA[<h1>CLI</h1><h2>Visión General</h2><p>El CLI proporciona herramientas para crear, construir y desplegar proyectos utilizando herramientas e infraestructura de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/">thirdweb</a>. Mediante el CLI, puedes crear nuevos proyectos con el SDK configurado, construir, publicar y desplegar contratos inteligentes, generar tipos mientras desarrollas, subir archivos a IPFS, etc.</p><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>Código abierto</strong></p><p>El CLI es de código abierto. Puede consultar el código fuente y contribuir a él en GitHub.</p><div data-type="embedly" src="https://github.com/thirdweb-dev/js/tree/main/packages/cli" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;Publish and deploy smart contracts without dealing with private keys The thirdweb CLI is your one-stop-shop for publishing custom contracts for your team or the world to use. The CLI uploads all necessary data to decentralized storage and makes it available to deploy via the thirdweb sdk or thirdweb dashboard.&quot;,&quot;title&quot;:&quot;js/packages/cli at main · thirdweb-dev/js&quot;,&quot;mean_alpha&quot;:251.02,&quot;author_name&quot;:&quot;thirdweb-dev&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://github.com/thirdweb-dev/js/tree/main/packages/cli&quot;,&quot;thumbnail_url&quot;:&quot;https://opengraph.githubassets.com/ccb70c10c9db79aeb105fd01cb98a5673b995a4e847af6505f8dddcf35be9295/thirdweb-dev/js&quot;,&quot;author_url&quot;:&quot;https://github.com/thirdweb-dev&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://github.com/thirdweb-dev/js/tree/main/packages/cli" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://opengraph.githubassets.com/ccb70c10c9db79aeb105fd01cb98a5673b995a4e847af6505f8dddcf35be9295/thirdweb-dev/js" class="false"><div class="twitter-summary-card-text"><span>https://github.com</span><h2>js/packages/cli at main · thirdweb-dev/js</h2><p>Publish and deploy smart contracts without dealing with private keys The thirdweb CLI is your one-stop-shop for publishing custom contracts for your team or the world to use. The CLI uploads all necessary data to decentralized storage and makes it available to deploy via the thirdweb sdk or thirdweb dashboard.</p></div></div></a></div></div></div></div></div></div><h3>Instalación</h3><p>Instala el paquete CLI globalmente para utilizar los comandos en cualquier parte del sistema.</p><p><em>Nota: Si no desea instalarlo globalmente, puede anteponer cada comando con </em><code>npx</code><em>. es decir, </em><code>npx thirdweb &lt;command&gt;</code><em>.</em></p><pre class="dont-break-out text-sm md:text-base"><code>npm i -g @thirdweb-dev cli</code></pre><pre class="dont-break-out text-sm md:text-base"><code>yarn global add @thirdweb-dev cli</code></pre><pre class="dont-break-out text-sm md:text-base"><code>pnpm install -g @thirdweb-dev cli</code></pre><p>Una vez instalado, puede ver la lista completa de comandos disponibles ejecutando:</p><pre class="dont-break-out text-sm md:text-base"><code>thirdweb</code></pre><h2>Comandos disponibles</h2><ul><li><p><code>create</code> : Crea una aplicación web3 a partir de cualquiera de nuestras plantillas oficiales.</p></li><li><p><code>install</code> : Añade los paquetes de thirdweb a tu proyecto existente.</p></li><li><p><code>build</code> : Compilar contract y detectar las extensiones contract de thirdweb.</p></li><li><p><code>generate</code> : Fetch contract ABIs para generar tipos y mejorar el rendimiento en el SDK.</p></li><li><p><code>upload</code> : Subir cualquier archivo o directorio al almacenamiento descentralizado (IPFS).</p></li><li><p><code>deploy</code> : Despliega tus contratos (o los de tu equipo) de forma segura en blockchains.</p></li><li><p><code>publish</code> : Publica tu protocolo para que otros desarrolladores puedan desplegarlos y desbloquear SDKs, cuadros de mando y análisis.</p></li></ul><p></p><p></p><h1><em>Deploy</em></h1><p>Despliega fácilmente cualquier contrato en cualquier cadena compatible con EVM, utilizando un único comando:</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb deploy</code></pre><p>Sin configuración, claves privadas codificadas, URL RPC ni scripts.</p><h2>¿Por qué usar Deploy?</h2><p>Ventajas de utilizar Deploy:</p><ul><li><p>No necesita <strong>configuración</strong> ni <strong>instalación</strong>.</p></li><li><p><strong>Mayor seguridad</strong>:</p><ul><li><p>No es necesario exportar una clave privada. El despliegue se realiza desde la interfaz de usuario del panel de control desde el navegador, utilizando un monedero de navegador.</p></li><li><p>Compatibilidad con <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://safe.global/wallet">Safe</a>, por lo que no es necesario compartir claves privadas con el equipo.</p></li></ul></li><li><p>No es necesario configurar una URL RPC: ¡nosotros nos encargamos de todas las complejidades por ti!</p></li><li><p>Despliega utilizando una interfaz de usuario. Esto te permite establecer los argumentos del constructor en el momento del despliegue.</p></li><li><p>Carga y fija automáticamente los metadatos del contrato en IPFS.</p></li><li><p>Verifica automáticamente tu contrato en <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://sourcify.dev/">Sourcify</a>.</p></li><li><p>Añade automáticamente el contrato al <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-panel-de-control">panel de control</a>: ¡este paso no tiene gas! Esto significa que puedes gestionar e interactuar fácilmente con tu contrato.</p></li><li><p>No es necesario copiar la ABI del contrato al integrar su contrato inteligente en una aplicación web3.</p></li></ul><h2>¿Cómo funciona?</h2><p>Al utilizar Deploy, los metadatos de tu contrato se cargan automáticamente en IPFS y se verifican, haciendo que tu contrato se pueda utilizar en cualquier aplicación web3 sin tener que copiar tu ABI de contrato.</p><p>Esto funciona:</p><ol><li><p>Usando el comportamiento por defecto de solc (el compilador de solidity) - añadiendo los metadatos codificados del contrato al bytecode del contrato.</p></li><li><p>Subiendo los metadatos de los contratos a IPFS.</p></li></ol><h3>Codificación y extracción de los metadatos contractuales</h3><p>Por defecto, al compilar cualquier contrato solidity, el compilador solc:</p><ol><li><p>Calcula el hash IPFS del artefacto JSON de metadatos del contrato (que contiene información como el nombre del contrato, ABI, código fuente, comentarios y configuración del compilador).</p></li><li><p>Codifica el hash IPFS calculado utilizando la codificación CBOR.</p></li><li><p>Añade los bytes codificados al final del código de bytes compilado.</p></li></ol><p>Esto significa que desde cualquier contrato desplegado, puedes</p><ol><li><p>Obtener el bytecode del contrato utilizando la llamada RPC estándar <code>eth_getCode</code>.</p></li><li><p>Decodificar los datos al final del bytecode utilizando un decodificador CBOR.</p></li><li><p>Extraer el hash IPFS de los datos decodificados.</p></li><li><p>Descargar los metadatos originales del contrato, que contienen el código fuente, la ABI, etc.</p></li></ol><p>Dado que <strong>los hashes IPFS son inmutables</strong>, se garantiza que los metadatos codificados del contrato son correctos y no han sido modificados. Esto significa que todos los contratos son autoverificables por diseño y sin necesidad de terceros. Sin embargo, <strong>el compilador sólo calcula el hash IPFS y lo codifica, ¡no carga nada en IPFS!</strong></p><h3>Cargar metadatos de contratos en IPFS</h3><p>Al utilizar Deploy:</p><ol><li><p>Los metadatos de tu contrato se suben automáticamente a IPFS, lo que significa que podemos hacer uso del comportamiento por defecto de solc para desbloquear nuestros <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-evm-sdk">SDKs</a>.</p></li><li><p>Su contrato se verifica automáticamente en <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://sourcify.dev/">Sourcify</a>.</p></li></ol><p>Esto facilita la creación de aplicaciones web3, utilizando nuestros <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-evm-sdk">SDKs</a>, sin tener que copiar o actualizar la ABI del contrato. En su lugar, el ABI se recupera de los metadatos del contrato cargados en IPFS. Esto actúa como una fuente de verdad y, por lo tanto, siempre está actualizado.</p><p></p><h1><em>Deploy: </em>Primeros pasos</h1><p>Utiliza el CLI para desplegar tus contratos directamente en cualquier cadena compatible con EVM utilizando el panel de control.</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb deploy</code></pre><h2>Uso</h2><p>Ejecutando este comando podrás:</p><ul><li><p>Detectar el framework (Hardhat, Foundry o Truffle).</p></li><li><p><strong>Compilar </strong>todos los contratos en el directorio actual utilizando la configuración del proyecto.</p></li><li><p>Seleccionar qué contrato(s) desea desplegar.</p></li><li><p>Cargar los metadatos de tu contrato en IPFS, asegurándote de que coinciden exactamente con el hash IPFS codificado en el bytecode compilado.</p></li><li><p>Detectar las extensiones de tu contrato.</p></li><li><p>Abrir el flujo de despliegue en el panel de control para que conectes un monedero, introduzcas los parámetros del contrato y selecciones una cadena en la que desplegarlo, ¡sin necesidad de codificar las claves privadas!</p></li></ul><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb [options]</code></pre><h2>Options</h2><p><code>-p--path &lt;string&gt;</code></p><p>Trayectoria del proyecto</p><p><code>-c--clean</code></p><p>Borrar la memoria caché antes de construir</p><p><code>--dry-run</code></p><p>Ejecución en seco (sin publicar)</p><p><code>-d--debug</code></p><p>Mostrar registros de depuración</p><p><code>--ci</code></p><p>Integración continua</p><p><code>--dist-path &lt;string&gt;</code></p><p>Ruta a la carpeta dist donde se encuentra la aplicación basada en HTML</p><p><code>-n--name &lt;string&gt;</code></p><p>Nombre del contrato preconstruido o publicado (como nft-drop)</p><p><code>-f--file &lt;string&gt;</code></p><p>Filtro de expedientes de contrato que contienen este nombre de expediente</p><p><code>-cn--contract-name &lt;string</code></p><p>Filtro de contratos que contienen este nombre de contrato</p><p><code>-cv--contract-version &lt;string&gt;</code></p><p>Versión del contrato publicada</p><p><code>--app</code></p><p>Despliegue de una aplicación web en un almacenamiento descentralizado</p><p><code>--contract</code></p><p>Desplegar un contrato inteligente en la blockchain</p><p><code>--dynamic</code></p><p>Despliegue de un contrato inteligente dinámico compuesto por extensiones de blockchain</p><p></p><p></p><h1><em>Publish</em></h1><p>Publica cualquier contrato utilizando el siguiente comando:</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb publish</code></pre><h2>Introducción</h2><p>Publicar tu contrato es la mejor manera de compartirlo con el mundo. Cuando publicas tu contrato, se vuelve compartible, verificable y desplegable por cualquiera.</p><h3 style="text-align: start">¿Por qué publicar tu contrato?</h3><ul><li><p>Los contratos publicados pueden desplegarse en <strong>cualquier red EVM</strong> cuando se utiliza la fábrica predeterminada.</p></li><li><p>Cuando se despliega un contrato publicado, se obtienen SDK y cuadros de mando autogenerados que permiten gestionar el contrato y ayudan a crear fácilmente aplicaciones sobre él.</p></li><li><p>Todos los contratos publicados tienen una página de inicio. Esto permite a otros explorar las funciones y eventos de su contrato, y ver el código fuente.</p></li><li><p>El registro de contratos publicados es totalmente <em>on-chain</em>. Puedes construir tu reputación <em>on-chain</em> como desarrollador de contratos inteligentes.</p></li><li><p>Los mejores contratos publicados aparecen en la página <em>Explorer</em>, que es vista por más de 70.000 desarrolladores web3.</p></li></ul><p>Publicar tu contrato es completamente gratis, nosotros cubrimos todos los gastos de gas.</p><h2>Cómo publicar</h2><p>Utiliza el CLI para publicar tus contratos directamente en cualquier <strong>cadena compatible con EVM </strong>mediante el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-panel-de-control">panel de control</a>:</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb publish</code></pre><p>Este comando:</p><ul><li><p>Compila tu contrato inteligente.</p></li><li><p>Sube el código fuente del contrato (ABI) a IPFS.</p></li><li><p>Abre el flujo de publicación en el panel de control.</p></li></ul><h3><em>Options</em></h3><p><code>-p--path &lt;string&gt;</code></p><p>Trayectoria del proyecto</p><p><code>-f--file &lt;string&gt;</code></p><p>Filtro de expedientes de contrato que contienen este nombre de expediente</p><p><code>-cn--contract-name &lt;string&gt;</code></p><p>Filtro de contratos que contienen este nombre de contrato</p><p><code>-c--clean</code></p><p>Borrar la memoria caché antes de construir</p><p><code>--dry-run</code></p><p>Ejecución en seco (sin publicar)</p><p><code>-d--debug</code></p><p>Mostrar registros de depuración</p><p><code>--ci</code></p><p>Modo de integración continua</p><h2>Cómo publicar tu contrato</h2><p>En tu navegador, sigue los pasos que se indican a continuación para publicar tu contrato:</p><h3>Configurar los metadatos del contrato</h3><p>Desde el panel de control, proporciona los metadatos para el contrato inteligente, incluyendo:</p><ul><li><p><strong>Name</strong></p></li><li><p><strong>Image</strong></p></li><li><p><strong>Description</strong></p></li><li><p><strong>README</strong> - Markdown es compatible. Qué hace tu contrato, casos de uso común y ejemplos son grandes cosas para incluir aquí.</p></li></ul><h3>Añadir una versión e informe de auditoría (opcional)</h3><p>Utiliza el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://semver.org/">versionado semántico</a> para publicar de forma incremental nuevas versiones de tu contrato inteligente; ideal para cuando quieres hacer cambios en tu contrato inteligente pero no quieres romper las integraciones existentes.</p><p>Cada versión de tu contrato inteligente se almacena en la cadena y puede ser desplegada por cualquiera. Opcionalmente puedes incluir notas de la versión, para describir los cambios que has hecho entre versiones.</p><p>También puedes vincular cada versión a un informe de auditoría. Puedes pegar un enlace o arrastrar y soltar un PDF. Nosotros generaremos un enlace IPFS para ti.</p><img src="https://storage.googleapis.com/papyrus_images/99fc9fc8e91c4d76d591fe75983f4bd1.png" alt="Versioned Releases" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAABYlAAAWJQFJUiTwAAABN0lEQVR4nGNw8w5+8Pz9kROXDxw79+D5+9sPXpw4d01QTJaRQwgX4hKQIB4x2Lv6Xr5x/8Hz9xeu3Xvw/P3H7/8fv/iQnFkYFp3sGxQdEpng4RMCQSBuVJJPUKSgmCwJFhia2a5Yt01V05CBgYuRQwhCyipp4kHiMspEIpAFskqaqzfszCqo8A2KjknMhKCQqCTfoGgQCo4BscFkSFRSUEQixB9EInEZZQZTC4e+SbMr69u4BCTgoSwoJks54oIEkbKGwaXrj958/DVz/vKFy9cfOn5p9YadvkHR9q6+WJGbdzCRKDmzEOQDWSXN3MLK0srGxvYJELKmsTMmMTOroAISXMmZhUkZ+cmZhcmZhR4+IcoaBkQiTX1zQTFZBnh08woiol5QTFZUSpFXEMRA8zWe5Is1QQMAqrSv0z9z7A4AAAAASUVORK5CYII=" nextheight="620" nextwidth="2396" class="image-node embed"><h3>Elige cómo los usuarios desplegarán el contrato publicado</h3><p>Seleccione el tipo de contrato para tu contrato publicado</p><ul><li><p>Despliegue directo: Elige esta opción si tu contrato no sigue el patrón de contrato actualizable.</p><ul><li><p>Esta opción puede utilizarse para <strong>cualquier contrato.</strong></p></li><li><p>No hay requisitos para utilizar esta opción para publicar el contrato.</p></li><li><p>Los usuarios desplegarán el <strong>contrato completo</strong>: almacenamiento y lógica de implementación.</p></li></ul></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/publish/deployment-options">Desplegar vía Fábrica</a>: Elige esta opción si deseas que los usuarios desplieguen proxies de tu contrato utilizando el contrato de fábrica predeterminado de thirdweb o utilizando su propia fábrica personalizada predesplegada.</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/publish/deployment-options#default-factory">Fábrica predeterminada</a>: utiliza esta opción para utilizar la fábrica predeterminada de thirdweb si tu contrato sigue el patrón de contratos actualizables.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/publish/deployment-options#custom-factory">Fábrica personalizada</a> - Utiliza esta opción para utilizar su propia fábrica personalizada predesplegada para crear proxies para sus usuarios.</p></li></ul></li></ul><img src="https://storage.googleapis.com/papyrus_images/992d68fef64f94c7fe742329537afe8e.png" alt="Choose Contract Type" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAJCAIAAADcu7ldAAAACXBIWXMAABYlAAAWJQFJUiTwAAABaElEQVR4nJ2TPU/CUBiFOxGx2F56y739yuXjhostIW2gfEcSR2ICUSsJLi4MLv4LwuQAiQ2T0fiH8CcQZ+KMCzVQTVwc2uQZznbynnNejpDcZHLveaN+/6LXO/e80WBwibGaSBzxvMDzAgBpQUwDEBPOssrb7VcQBJvN52r1vtsF6/XHeHxLSO60ZGGs8HwqdIoHJ0Gk6nlBzCT5tCBmVC2najlmOs12r+p2s4USwoaiEYSNqGAtK0HEAQDvHh4XT6++v3x+eaOUIawgrACQTh6fpFIiADBeOBJECBscwoaq5zuds+HQu7q+qddbjlNrtbuUMgCgBDMHgzhAWdkbSBAZhDLTocUyM+2K3UDYkKDyeyYJRRhdVPYRiSIgJDudznx/OZ8vptNZoUAhlDFWMjIKhXwQh7YjsV8gF+al64QxkzGT0mLNbbhus9Xu1tyGbVddt1lzG5ZViV7Dvrwfg79j/29w8f7gGxBcaBYk4AS0AAAAAElFTkSuQmCC" nextheight="686" nextwidth="2406" class="image-node embed"><p>Una vez seleccionado, haz clic en "Next" para pasar al tipo de contrato seleccionado.</p><h3>Elija en qué red(es) publicar su contrato</h3><p>Selecciona la(s) red(es) en la(s) que deseas publicar su contrato. Puedea seleccionar varias redes o cualquier EVM.</p><img src="https://storage.googleapis.com/papyrus_images/64326b7f9aadb31aa3473680d2fc5a2d.png" alt="Choose Network" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAJCAIAAADcu7ldAAAACXBIWXMAABYlAAAWJQFJUiTwAAABc0lEQVR4nK2S20oDQQyGl6Vst+NMdhjnuIeWteKBohQF71V8AwsFC3rjEWT2xlpFUHtVwXfxKXwqL5TtVqmtCFLhY8ifhIRk4mAMjHEAihAeB2PAGCac0zkAtMgEoD/iIISjKKnVUq3DESYWUnMuOZfGxFqHUmopdWFoHSqVG8bEjMlfShe9HdcttdsHD/cP1mbnZ+fWZtZmmc0uLi5b+61e7+bu9q5z0LE2Oz05PTw86j/2B4Onbvfa2mxnZ9fzykACjMlP5L0djEGoZKWx0WhumbguVCJUVUepjlKhqsLUpKkJlYykqqowNXF9KBOhEsZDJqP8HUfGwqSMm3wCQgIuo8XltaXVplAJZZpxQ5kuDPbJlyxCE9FxuIwAaKXkBpQREuQTYEwQmqv4CGMCJJgJoMgvL6ztta5eTH0T+b5Dvn/LhIQ/EtB5z3V2O8+vb+/r28eVkptPMEvF6bMBoHOIeF453wdQ5x+rDwnIcFFfZ/oBXJBTyzR6rbcAAAAASUVORK5CYII=" nextheight="722" nextwidth="2524" class="image-node embed"><p>Si eliges publicar mediante despliegue directo, se te pedirá que selecciones la(s) red(es) en la(s) que deseas que los usuarios puedan desplegar tu contrato, a continuación, ha&lt; clic en el botón "Next". Si opta por la publicación en fábrica, se te pedirá que seleccione la red o redes en las que desea que los usuarios puedan desplegar tu contrato cuando configures los "Ajustes de despliegue en fábrica".</p><h3>Personalizar los parámetros del contrato</h3><p>Ayuda a los usuarios que intentan desplegar tu contrato inteligente cambiando el aspecto de los parámetros de tu contrato. Se trata de campos que los usuarios deben introducir antes de desplegar el contrato. Cada campo corresponde a la variable asociada en el constructor del contrato.</p><ul><li><p><strong>Display name</strong>: Utilízalo para tener una versión más legible del nombre del parámetro. De lo contrario, el nombre del parámetro del contrato se mostrará tal cual.</p></li><li><p><strong>Default value</strong>: Se rellenará previamente en el formulario de despliegue. Utilízalo para orientar a los usuarios sobre el valor que deben introducir. Si el parámetro es del tipo de datos, puede rellenar previamente la dirección de la cartera conectada del usuario estableciendo el valor predeterminado como <code>{{connected_wallet}}</code>.</p></li><li><p><strong>Description</strong>: Utiliza esta opción para aclarar cualquier confusión y explicar qué valor se espera de este parámetro.</p></li><li><p><strong>Advanced</strong>: Marque esta opción si deseas ocultar este parámetro del formulario de despliegue. Esto es útil para parámetros que no requieren ser cambiados por el usuario. Esta opción sólo está disponible para parámetros que tienen un valor por defecto.</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9143ac62ee8644be2276b96d5fda9d73.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">Describe Constructor Parameters</figcaption></figure><h3>Publicar contrato</h3><p>Por último, haz clic en el botón <em>"Publish Contract"</em> para publicar tu contrato inteligente en el registro de la cadena.</p><p>Para conocer las mejores prácticas y publicar tu contrato en <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/explore">Explore</a>:</p><h2>Cómo ser destacado</h2><p>Poner tu contrato en la página Explore es la mejor manera de ponerlo delante de los desarrolladores de web3. Más de 70.000 constructores de web3 visitan esta página.</p><p><strong>¿Quieres que tu contrato aparezca en la página Explore?</strong> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://form.typeform.com/to/FAwehBFl">Solicítalo aquí</a></p><h3>Mejores prácticas</h3><p>Los contratos publicados que siguen estas directrices tienen más posibilidades de aparecer en la <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/explore">página Explore</a>. Esto mejora la experiencia de las personas que despliegan su contrato publicado.</p><ul><li><p>El nombre y la descripción del contrato deben ser claros y concisos.</p></li><li><p>Añade una imagen a tu contrato.</p></li><li><p>Publica tu contrato desde tu cuenta pública, preferiblemente una que esté vinculada a un ENS. Actualiza el nombre, la descripción y la imagen de tu cuenta.</p></li><li><p>Redacte un README completo que informe a los usuarios de lo que hace tu contrato, cómo funciona y cómo desplegarlo.</p></li><li><p>Añade nombres para mostrar, valores por defecto y descripciones para los parámetros de tu contrato. Esto facilita a los usuarios el despliegue del contrato.</p></li><li><p>En el caso de contratos proxy y de fábrica, haz que esté disponible en tantas redes como sea posible.</p></li><li><p>Enlace al informe de auditoría de su contrato. Los contratos auditados tienen más posibilidades de ser destacados.</p></li></ul><p>Si tiene alguna pregunta o necesitas ayuda para publicar tu contrato, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://support.thirdweb.com/how-to-reach-us/gY4SUcfwkzcy5XjnWZvYiE">contacta con nosotros</a>. Nuestro equipo estará encantado de ayudarle.</p><hr><p></p><h2>Recursos adicionales</h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/"><strong>Documentación thirdweb</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/community/Gu%C3%ADas%20&amp;%20Documentaci%C3%B3n%20thirdweb"><strong>Documentación (No oficial) ES</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/"><strong>Blog Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/guides/"><strong>Guías Oficiales</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates"><strong>Plantillas</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/thirdweb"><strong>Youtube Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes"><strong>Youtube Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.com/events"><strong>Eventos</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb"><strong>Discord Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://support.thirdweb.com/">Support</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb">Twitter Oficial</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es">Twitter Oficial ES</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_jp">Twitter Oficial JP</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento">Blogs y guías en Español</a></p></li></ul><p></p><hr><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p>Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb?ref=blog.thirdweb.com">Discord</a>, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/ZV3gUhiP?typeform-source=thirdweb.com&amp;ref=blog.thirdweb.com">ponte en contacto</a> directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.</p><p>Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!</p><div data-type="embedly" src="https://thirdweb.com/?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.&quot;,&quot;title&quot;:&quot;thirdweb: The complete web3 development framework&quot;,&quot;thumbnail_width&quot;:2400,&quot;url&quot;:&quot;https://thirdweb.com/&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdweb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1260}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdweb.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb: The complete web3 development framework</h2><p>Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.</p></div></div></a></div></div><p></p><p></p><p></p><p></p><p></p><p></p><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdweb_es</category>
            <category>documentacion-thirdweb</category>
        </item>
        <item>
            <title><![CDATA[Documentación thirdweb: EVM SDK]]></title>
            <link>https://paragraph.com/@samusarmiento/thirdweb-evm-sdk</link>
            <guid>w4EFD6mJOnupUuz2Wff6</guid>
            <pubDate>Wed, 07 Jun 2023 10:27:23 GMT</pubDate>
            <description><![CDATA[El SDK cubre todos los aspectos de la pila de desarrollo web3, incluyendo la conexión a los monederos de los usuarios, la interac...]]></description>
            <content:encoded><![CDATA[<h1>EVM SDK</h1><h2>Visión general</h2><p>El SDK cubre todos los aspectos de la pila de desarrollo web3, incluyendo la conexión a los monederos de los usuarios, la interacción con la blockchain y los contratos inteligentes, el almacenamiento descentralizado, la autenticación, y más; lo que nos permite construir aplicaciones web3 escalables y de alto rendimiento en cualquier blockchain compatible con EVM.</p><p>Se proporciona infraestructura para lo necesario para crear aplicaciones descentralizadas, incluida la conexión a la cadena de bloques (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/glossary/rpc">RPC</a>), el almacenamiento descentralizado (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/glossary/ipfs">IPFS</a> + servicios de fijación) y herramientas para crear potentes experiencias de usuario, como transacciones sin gas, componentes de conexión de monederos, rampas de acceso FIAT, API de datos y mucho más.</p><p>El SDK es totalmente componible, lo que significa que puedes proporcionar tu propia configuración para cualquier componente de tu aplicación y personalizar el SDK según tus necesidades. Además, cada SDK es completamente de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/orgs/thirdweb-dev/repositories">código abierto</a> para que puedas verificar y auditar lo que ocurre bajo el capó.</p><p>Dependiendo del caso de uso, admitimos una gran variedad de lenguajes y marcos de trabajo para ayudarte a crear tus aplicaciones y juegos.</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react">React</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react-native">React Native</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/typescript">TypeScript</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/python">Python</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/go">Go</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/unity">Unity</a></p></li></ul><p></p><hr><p>En las siguientes guías estaremos profundizando en los lenguajes y frameworks con los que trabajamos desde thirdweb. ¡Suscríbete para no perderte nada!</p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p></p><h2>Arquitectura del SDK</h2><p>El SDK cubre todo el espectro del desarrollo de aplicaciones descentralizadas, desde la conexión a la cadena de bloques hasta la interfaz de usuario. Para permitir la personalización y la flexibilidad, el SDK está diseñado para ser modular y componible, lo que te permite proporcionar cualquier configuración personalizada o integraciones con otros servicios y herramientas para reemplazar o mejorar la funcionalidad predeterminada.</p><h3>Marco basado en contratos</h3><p>Al utilizar el SDK para interactuar con contratos inteligentes, el SDK utiliza un marco basado en contratos, lo que significa que el SDK detecta estándares y patrones comunes como ERC20, ERC721, ERC1155, permisos, etc., resolviendo la <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.soliditylang.org/en/v0.8.19/abi-spec.html">ABI</a> del contrato inteligente y extrayendo los estándares que implementa el contrato, conocidos como <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento/thirdweb-solidity-sdk">extensiones</a>.</p><p>Cada extensión detectada desbloquea funcionalidades en el SDK para que las puedas utilizar; permitiendo conjuntos de métodos y componentes para ser utilizados en el lenguaje de tu elección para interactuar directamente con el contrato inteligente.</p><p>Nuestro ecosistema de herramientas, como el panel de control y la función de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/dashboard/contracts">importación</a>, hacen que el uso de contratos inteligentes sea más sencillo y eficiente. Conectarse a un contrato inteligente sólo requiere la dirección del contrato, (sin ABI), y se resuelven desde nuestro registro en la cadena de contratos inteligentes de forma automática. El SDK almacena automáticamente en caché la información de cada contrato, por lo que las operaciones de lectura y escritura de datos en el contrato inteligente son rápidas y eficientes.</p><h3>Pilas incluidas</h3><p>Fuera de la caja, la infraestructura para alimentar los componentes esenciales de las aplicaciones descentralizadas se incluye en el SDK. La conexión a la cadena de bloques a través de RPC, el servicio de anclaje IPFS y las pasarelas, el elegante flujo de incorporación de monederos, las rampas de entrada FIAT y mucho más están preconfigurados por defecto, con una fácil configuración para adaptarlos a tus necesidades.</p><p>Todas nuestras ofertas funcionan juntas a la perfección, lo que te permiten crear aplicaciones descentralizadas de alto rendimiento sin sacrificar tu experiencia como desarrollador.</p><h3>Sin dependencia del proveedor</h3><p>Todos los aspectos del SDK son modulares y componibles, lo que te permite personalizar cualquier parte de nuestras herramientas según tus necesidades o integrarlas con otros servicios para casos de uso específicos. Si deseas proporcionar tu propio RPC, utilizar un flujo de conexión de monedero diferente, proporcionar tu propia solución de almacenamiento descentralizado o utilizar un relé sin gas diferente, puede hacerlo con facilidad.</p><p></p><h2>Recursos adicionales</h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/"><strong>Documentación thirdweb</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/"><strong>Blog Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/guides/"><strong>Guías Oficiales</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates"><strong>Plantillas</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/thirdweb"><strong>Youtube Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes"><strong>Youtube Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.com/events"><strong>Eventos</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb"><strong>Discord Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://support.thirdweb.com/">Support</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb">Twitter Oficial</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es">Twitter Oficial ES</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_jp">Twitter Oficial JP</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento">Blogs y guías en Español</a></p></li></ul><p></p><hr><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p>Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb?ref=blog.thirdweb.com">Discord</a>, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/ZV3gUhiP?typeform-source=thirdweb.com&amp;ref=blog.thirdweb.com">ponte en contacto</a> directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.</p><p>Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!</p><div data-type="embedly" src="https://thirdweb.com/?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.&quot;,&quot;title&quot;:&quot;thirdweb: The complete web3 development framework&quot;,&quot;thumbnail_width&quot;:2400,&quot;url&quot;:&quot;https://thirdweb.com/&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdweb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1260}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdweb.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb: The complete web3 development framework</h2><p>Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.</p></div></div></a></div></div><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdweb_es</category>
            <category>documentacion-thirdweb</category>
        </item>
        <item>
            <title><![CDATA[Documentación thirdweb: Solidity SDK]]></title>
            <link>https://paragraph.com/@samusarmiento/thirdweb-solidity-sdk</link>
            <guid>gfZ9B2f83Nu7zceljRVJ</guid>
            <pubDate>Tue, 06 Jun 2023 12:13:54 GMT</pubDate>
            <description><![CDATA[thirdweb Solidity SDK proporciona las herramientas necesarias para construir contratos inteligentes personalizados ...]]></description>
            <content:encoded><![CDATA[<h1>thirdweb Solidity SDK</h1><h2>Visión general</h2><p>thirdweb Solidity SDK proporciona las herramientas necesarias para construir contratos inteligentes personalizados de manera eficiente, ofreciendo un conjunto de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts">contratos base</a> pre-construidos y un conjunto de componentes reutilizables, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">extensiones</a>, que se pueden integrar en sus propios contratos inteligentes.</p><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>Biblioteca de código abierto</strong></p><p>La biblioteca de contratos es de código abierto. Puede consultar el código fuente y contribuir a él en <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/thirdweb-dev/contracts">GitHub</a>.</p><div data-type="embedly" src="https://github.com/thirdweb-dev/contracts" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;Collection of smart contracts deployable via the thirdweb SDK, dashboard and CLI npm i @thirdweb-dev/contracts yarn: install contracts dependencies forge install: install tests dependencies forge test: run the tests This repository is a hybrid hardhat and forge project.&quot;,&quot;title&quot;:&quot;GitHub - thirdweb-dev/contracts: Collection of smart contracts deployable via thirdweb&quot;,&quot;mean_alpha&quot;:250.78,&quot;author_name&quot;:&quot;thirdweb-dev&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://github.com/thirdweb-dev/contracts&quot;,&quot;thumbnail_url&quot;:&quot;https://opengraph.githubassets.com/090c46ab8872a938067e8e3caf5bf80d889be472885c3fb98ca0f0674dca11e1/thirdweb-dev/contracts&quot;,&quot;author_url&quot;:&quot;https://github.com/thirdweb-dev&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://github.com/thirdweb-dev/contracts" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://opengraph.githubassets.com/090c46ab8872a938067e8e3caf5bf80d889be472885c3fb98ca0f0674dca11e1/thirdweb-dev/contracts" class="false"><div class="twitter-summary-card-text"><span>https://github.com</span><h2>GitHub - thirdweb-dev/contracts: Collection of smart contracts deployable via thirdweb</h2><p>Collection of smart contracts deployable via the thirdweb SDK, dashboard and CLI npm i @thirdweb-dev/contracts yarn: install contracts dependencies forge install: install tests dependencies forge test: run the tests This repository is a hybrid hardhat and forge project.</p></div></div></a></div></div></div></div></div></div><h3>Contratos base</h3><p>Los <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts">contratos base</a> son contratos inteligentes prediseñados sobre los que se puede construir o modificar, como el contrato <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/erc721base">ERC721Base</a>. Estos contratos funcionan de forma inmediata y no requieren la implementación de ninguna función. Se construyen utilizando extensiones y, por lo tanto, desbloquean funciones inteligentes en los <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/sdk">SDK</a> y secciones personalizadas en el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/dashboard"><em>Dashboard</em></a> para interactuar fácilmente con tu contrato inteligente.</p><h3>Extensiones</h3><p>Las <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">extensiones</a> son interfaces de Solidity que son reconocibles por el <em>Dashboard</em> y desbloquean la funcionalidad en los SDK. Las EIPs comunes también son reconocibles como extensiones ya que nuestras interfaces se ajustan a los estándares de la industria. Son piezas componibles de lógica que pueden añadirse fácilmente a los contratos inteligentes a través de la <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/getting-started#inheritance-and-overriding-functions">herencia</a>.</p><p>Estas extensiones requieren distintos niveles de implementación lógica* en el contrato inteligente heredado. Los tres tipos diferentes de extensiones en este SDK son:</p><ul><li><p><strong>Contratos de extensión:</strong> Estas extensiones son totalmente completas y no requieren la implementación de ninguna lógica. Al heredar de estos contratos, se añade la funcionalidad y, por tanto, la lógica al contrato inteligente heredado.</p></li><li><p><strong>Contratos abstractos:</strong> Estas extensiones requieren que se implemente parte de la lógica. Algunas de las funciones de la extensión dependen del caso de uso y, por lo tanto, requieren una lógica personalizada que es específica de tu contrato inteligente heredado.</p></li><li><p><strong>Interfaces:</strong> Estas extensiones no tienen una implementación. Proporcionan las directrices para escribir tu propia lógica dándote las funciones, parámetros y tipos de retorno. Esto te permite asegurarte de que tu contrato se ajusta a esta extensión concreta para que puedas desbloquear funciones en los SDK y el <em>Dashboard</em>.</p></li></ul><blockquote><p>*implementar = escribir la lógica de la función con una firma de función coincidente (nombre, parámetros, visibilidad y tipo de retorno coincidentes).</p></blockquote><img src="https://storage.googleapis.com/papyrus_images/aaf9ecf13a6f6c9e4ae274b2f78dc42a.png" alt="Extensions" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAVCAIAAACor3u9AAAACXBIWXMAABYlAAAWJQFJUiTwAAADQElEQVR4nLVUS28bVRQ+bJrIaf2Y8Z1n5nXHHnvijOPxI7aH0OLEkp3ESEEpUZMqUFUCIdqIFgjNo22a4NAmKxb8hD6kVsqGNeofgFWldlPxUgQL2JQdAnSonSZ1mqgPxXy60tXce8733XPunQ/gJSDLMiFk51PTNF3XNU2LRqOhUAjaCGyinYwAwA9eYd+YVcoX6PBi4q2l6vnbiHjv3m+bm5vtEWA1l42X3cJQPl9QdDMQHwWA0dHzW7vxePygAkz+Azbzrlz62CidFXNTdHgZ/g+U/sD3trsvKxGldzBCDUqpaZqiKPp8vgOxJwDK136f+vrHnzZGEJGTqeoOZ9xUsVj0PE/X9Y6OjoPw3wEAOvtLbPbnKYBK5SNKnzzNnYO/Bgd+WuJl1JefZUl1s69AwX72D53HyAJG6ruGuYTqHB6po7+O3VeQLqB26W9zGc0zD+jwqrSKdP5f84vt4BWki6guPnuU6wDQeRW7L6H0eVNjAaOLLeNiI9NcQmUVxXU8VEfmK4zMo/lpY+tpzAWUr2JwFQ9/uadj4+N2bXIpm31BlZVcqFbqHzl5cTwv7xtQK7Jv98PgiXq1Wi07TmNpy0wIIZVSyfOqADbHOQAmwOXWTMMwtqxi6v1zE7Wh6enpyclv9vCrp84tn1m7T2/g+Cc3r3/frCOZTG6srLzQYfi+CrErllsWrCKEzM7OTp/P19XVFQgEdmISCRKwa2piwE55hp1ljbRlpeDYsePK69Op6lnN+zDgTITTE0zPO0dix/3u6VaB+Ngc3zfWW6iqsYysGALHCYJACAmHw61hjDNmOEed7NFUfkiI9jeM5LAosr0j1M4mkhnJ7Avq/UpP0kj0SDS1uwbruz9x7tGWn+7vqXt9ybIskKRc2CoLMU+MD4RNL2QOcLECiRYYmtv9f/ZuPMS7v/6F+O2jpsy+nbSsPr3nTc2yVFXw+/22bTdWdVURBJ7nCUfCIs8JPMcRIjQmjmGY7dzIrbsPrt35YW1tbX19fWZmZl8BRVEkSRQEQZQkhmEcxwGhyc2yHPsEPMuywWAwFCIt7PCS0JqQZVmSJFEU22Dmz4eqqu2ki8ViuVwunU67rptp4vEl/wf12QOGRB8JgQAAAABJRU5ErkJggg==" nextheight="1178" nextwidth="1830" class="image-node embed"><h3>¿Por qué utilizar el SDK de Solidity?</h3><ul><li><p>Integra sin esfuerzo características comunes de contratos inteligentes, incluyendo EIPs populares como <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc20">ERC20</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721">ERC721</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc1155">ERC1155</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/permissions"><em>permissions</em></a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/contractmetadata"><em>contract metadata</em></a><em> </em>y más.</p></li><li><p>Simplifica el flujo de trabajo de desarrollo, permitiéndote centrarse en sistemas más intrincados.</p></li><li><p>El uso de los contratos base le proporciona una base optimizada y auditada para construir sus proyectos.</p></li><li><p>Cada extensión que hereda desbloquea <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/sdk">SDKs</a> más inteligentes, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/dashboard"><em>Dashboards</em></a> personalizados y feeds de datos a medida.</p></li></ul><p>Por ejemplo, si despliega el contrato <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/erc721base">ERC721Base</a>, que hereda de múltiples extensiones, incluida <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721mintable">ERC721Mintable</a>, desbloqueará el botón <code>mint</code> en el panel de control y podrá utilizar la función <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/typescript/sdk.erc721mintable"><em>mint</em></a><em> </em>en el SDK, que carga y fija automáticamente sus metadatos en <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/glossary/ipfs">IPFS</a>.</p><p></p><h2>Primeros pasos</h2><p>Para empezar a utilizar Solidity SDK, ejecuta el siguiente comando para crear un nuevo proyecto:</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb create contract</code></pre><p>O bien, instala el paquete de <code>contracts</code> en tu proyecto Solidity existente</p><p><strong>Hardhat </strong></p><pre class="dont-break-out text-sm md:text-base"><code>npm install @thirdweb-dev contracts</code></pre><p><strong>Forge</strong></p><pre class="dont-break-out text-sm md:text-base"><code>forge install thirdweb-dev contracts</code></pre><h3>Uso del SDK de Solidity</h3><p>El SDK de Solidity puede utilizarse para construir nuevos contratos inteligentes de extremo a extremo, o para añadir funcionalidad a tu propio contrato inteligente existente utilizando extensiones. Todas las funciones de los contratos base y las extensiones pueden modificarse sobrescribiéndolas.</p><p><strong>Uso de contratos base</strong></p><p>El SDK de Solidity incluye <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts">contratos base</a> que son contratos inteligentes totalmente completos que pueden personalizarse sobrescribiendo funciones O añadiendo extensiones.</p><ol><li><p>Para empezar, importa y hereda el contrato base. Puedea encontrar la lista de todos los contratos base disponibles <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts">aquí.</a></p></li><li><p>Los contratos base esperan que ciertos argumentos del constructor funcionen según lo previsto. Implementa un constructor para tu contrato inteligente y pasa los valores apropiados a un constructor para el contrato base.</p></li></ol><pre class="dont-break-out text-sm md:text-base"><code>// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@thirdweb-dev/contracts/base/ERC721Base.sol";

contract MyNFT is ERC721Base {
    constructor(
        string memory _name,
        string memory _symbol,
        address _royaltyRecipient,
        uint128 _royaltyBps
    ) ERC721Base(_name, _symbol, _royaltyRecipient, _royaltyBps) {}
}</code></pre><ol start="3"><li><p>¡Ahora ya está todo listo! 🎉 Tu contrato inteligente tiene ahora todas las extensiones proporcionadas por el contrato base que hereda y está listo para ser <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/deploy">desplegado</a> en cualquier blockchain EVM de tu elección.</p></li></ol><p><strong>Uso de Extensiones</strong></p><p>Las extensiones deben utilizarse mediante herencia - el contrato inteligente de tu proyecto heredará de ellas.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">Extensiones</a> adicionales pueden ser añadidas a contratos inteligentes existentes o a los contratos base para añadir funcionalidad extra y desbloquear características en los SDKs y Dashboard.</p><ol><li><p>Para empezar, importa y hereda la extensión. Puede encontrar la lista de todas las extensiones disponibles <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">aquí.</a></p></li></ol><pre class="dont-break-out text-sm md:text-base"><code>// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@thirdweb-dev/contracts/base/ERC721Base.sol";
import "@thirdweb-dev/contracts/extension/Permissions.sol";

contract MyNFT is ERC721Base, Permissions {
    constructor(
        string memory _name,
        string memory _symbol,
        address _royaltyRecipient,
        uint128 _royaltyBps
    ) ERC721Base(_name, _symbol, _royaltyRecipient, _royaltyBps) {}
}</code></pre><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>Nota:</strong></p><ul><li><p>Algunas extensiones son abstractas y requieren la implementación de determinadas funciones*.</p></li><li><p>Algunas Extensiones son Interfaces y requieren que todas las funciones sean implementadas*.</p></li></ul><p>*implementar = escribir la lógica de la función con una firma de función coincidente (nombre, parámetros, visibilidad y tipo de retorno coincidentes).</p></div></div></div></div><ol start="2"><li><p>Utiliza las funciones proporcionadas por la Extensión para cambiar el comportamiento de tu contrato inteligente.</p></li></ol><pre class="dont-break-out text-sm md:text-base"><code>// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@thirdweb-dev/contracts/base/ERC721Base.sol";
import "@thirdweb-dev/contracts/extension/Permissions.sol";

contract MyNFT is ERC721Base, Permissions {
    bytes32 private constant MINTER_ROLE = keccak256("MINTER_ROLE");

    constructor(
        string memory _name,
        string memory _symbol,
        address _royaltyRecipient,
        uint128 _royaltyBps
    ) ERC721Base(_name, _symbol, _royaltyRecipient, _royaltyBps) {}

    /**
     * `_canMint` es una función disponible en `ERC721Base`.
     *
     * Es llamada cada vez que un monedero intenta acuñar NFTs en este contrato.
     * contrato, y le permite definir la condición en la que un
     * intento de acuñar NFTs debe ser permitido, o rechazado.
     *
     * Por defecto, `ERC721Base` sólo permite al propietario del contrato acuñar
     * NFTs. Aquí anulamos esta funcionalidad.
     *
     * Usamos la extensión `Permissions` para especificar que cualquiera que tenga
     * "MINTER_ROLE" pueda acuñar NFTs.
     */
    function _canMint() internal view override returns (bool) {
        return hasRole(MINTER_ROLE, msg.sender);
    }
}</code></pre><p><strong>Herencia y sustitución de funciones</strong></p><p>La herencia te permite extender las propiedades de tu contrato inteligente para incluir los atributos y propiedades del contrato padre. Las funciones heredadas de este contrato padre pueden ser modificadas en el contrato hijo a través de un proceso conocido como overriding.</p><p><em>Contrato padre: Contrato del que hereda el contrato hijo.</em></p><p><em>Contrato hijo: El contrato heredado.</em></p><p>Para sobreescribir una función, para añadir tu propia lógica personalizada, simplemente utiliza la palabra clave <code>override</code> al declarar la función, asegurándote de que la firma de la función coincide. Para añadir la lógica original del contrato padre, utilice la palabra clave <code>super</code>.</p><p>Por ejemplo, el contrato <code>ERC721Base</code> tiene una implementación de la función <code>mintTo</code>, yo podría sustituir esta función para añadir lógica personalizada y restringir esta función en el contrato <code>myNFT</code> para permitir sólo 1 NFT por monedero:</p><pre class="dont-break-out text-sm md:text-base"><code>// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@thirdweb-dev/contracts/base/ERC721Base.sol";
import "@thirdweb-dev/contracts/extension/Permissions.sol";

contract MyNFT is ERC721Base, Permissions {
    constructor(
        string memory _name,
        string memory _symbol,
        address _royaltyRecipient,
        uint128 _royaltyBps
    ) ERC721Base(_name, _symbol, _royaltyRecipient, _royaltyBps) {}

    function mintTo(address _to, string memory _tokenURI) public override {
        require(balanceOf(_to) &lt; 1, "only 1 NFT per wallet!");
        super.mintTo(_to, _tokenURI);
    }
}</code></pre><p></p><h2>Contratos Base</h2><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts">Listado de contratos base</a></p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/erc1155base">ERC1155</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/erc20base">ERC20</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/erc721base">ERC721</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/smart-accounts"><em>Smart Accounts</em></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/staking/staking1155base">Staking</a></p></li></ul><h2>Extensiones</h2><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">Listado de extensiones</a></p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc1155">ERC1155</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc20">ERC20</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721">ERC721</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/batchmintmetadata">General</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/base-account">Smart Account</a></p></li></ul><p></p><hr><div data-type="embedly" src="https://portal.thirdweb.com/contracts" data="{&quot;provider_url&quot;:&quot;https://portal.thirdweb.com&quot;,&quot;description&quot;:&quot;Collection of smart contracts deployable via the thirdweb SDK, dashboard and CLI yarn: install contracts dependencies forge install: install tests dependencies forge test: run the tests This repository is a hybrid hardhat and forge project.&quot;,&quot;title&quot;:&quot;Thirdweb Contracts | thirdweb developer portal&quot;,&quot;thumbnail_width&quot;:4800,&quot;url&quot;:&quot;https://portal.thirdweb.com/contracts&quot;,&quot;thumbnail_url&quot;:&quot;https://portal.thirdweb.com/img/portal.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:2520}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://portal.thirdweb.com/contracts" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://portal.thirdweb.com/img/portal.png" class="false"><div class="twitter-summary-card-text"><span>https://portal.thirdweb.com</span><h2>Thirdweb Contracts | thirdweb developer portal</h2><p>Collection of smart contracts deployable via the thirdweb SDK, dashboard and CLI yarn: install contracts dependencies forge install: install tests dependencies forge test: run the tests This repository is a hybrid hardhat and forge project.</p></div></div></a></div></div><hr><p></p><h2>Referencia completa</h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.npmjs.com/package/@thirdweb-dev/contracts">npm v3.5.6</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/thirdweb-dev/contracts/actions">Test | passing</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb">Discord</a></p></li></ul><h3>Instalación</h3><pre class="dont-break-out text-sm md:text-base"><code>npm i @thirdweb-dev contracts</code></pre><h3><strong>Testeando</strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out hash-link" href="https://portal.thirdweb.com/contracts#running-tests"><strong>​</strong></a></h3><ol><li><p><code>yarn</code>: instalar dependencias de contratos</p></li><li><p><code>forge install</code>: instalar dependencias de pruebas</p></li><li><p><code>forge test</code>: ejecutar las pruebas</p></li></ol><p style="text-align: start">Este repositorio es un proyecto híbrido de hardhat y forge.</p><p>Primero instala las dependencias relevantes del proyecto:</p><pre class="dont-break-out text-sm md:text-base"><code>yarn

forge install</code></pre><p style="text-align: start">Para compilar contratos, ejecuta:</p><pre class="dont-break-out text-sm md:text-base"><code>forge build</code></pre><p style="text-align: start">O, si prefieres hardhat, puedes correr:</p><pre class="dont-break-out text-sm md:text-base"><code>npx hardhat compile</code></pre><p style="text-align: start">Para realizar pruebas:</p><pre class="dont-break-out text-sm md:text-base"><code>forge test</code></pre><p style="text-align: start">Para exportar los ABI de los contratos del directorio<code> contracts</code> ejecuta:</p><pre class="dont-break-out text-sm md:text-base"><code>npx hardhat export-abi</code></pre><p>Para ejecutar cualquier script del directorio <code> scripts</code> ejecuta:</p><pre class="dont-break-out text-sm md:text-base"><code>npx hardhat run scripts/{ruta al script}</code></pre><h3>Contratos Pre-construidos</h3><p>Los contratos pre-construidos están escritos por el equipo de thirdweb y cubren los casos de uso más comunes para los contratos inteligentes.</p><p>Páginas de publicación de los contratos preconstruidos:</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/DropERC20">DropERC20</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/DropERC721">DropERC721</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/DropERC1155">DropERC1155</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/SignatureDrop">SignatureDrop</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/Marketplace">Marketplace</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/Multiwrap">Multiwrap</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/TokenERC20">TokenERC20</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/TokenERC721">TokenERC721</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/TokenERC1155">TokenERC1155</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/VoteERC20">VoteERC20</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/Split">Split</a></p></li></ul><h3>Despliegues</h3><p>El registro thirdweb (<code>TWRegistry</code>) y la <em>factory </em>(<code>TWFactory</code>) se han desplegado en las siguientes cadenas:</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://etherscan.io/">Ethereum mainnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://rinkeby.etherscan.io/">Rinkeby</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://goerli.etherscan.io/">Goerli</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://polygonscan.com/">Polygon mainnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://mumbai.polygonscan.com/">Polygon Mumbai testnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://snowtrace.io/">Avalanche mainnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://testnet.snowtrace.io/">Avalanche Fuji testnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://ftmscan.com/">Fantom mainnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://testnet.ftmscan.com/">Fantom testnet</a></p></li></ul><p><code>TWRegistry</code> está desplegado en una dirección común en todas las redes mencionadas. <code>TWFactory</code> está desplegado en una dirección común en todas las redes mencionadas excepto Fantom mainnet.</p><ul><li><p><code>TWRegistry</code>: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://blockscan.com/address/0x7c487845f98938Bb955B1D5AD069d9a30e4131fd">0x7c487845f98938Bb955B1D5AD069d9a30e4131fd</a></p></li><li><p><code>TWFactory</code>: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://blockscan.com/address/0x5DBC7B840baa9daBcBe9D2492E45D7244B54A2A0">0x5DBC7B840baa9daBcBe9D2492E45D7244B54A2A0</a></p></li><li><p><code>TWFactory</code> (Fantom mainnet): <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://blockscan.com/address/0x97EA0Fcc552D5A8Fb5e9101316AAd0D62Ea0876B">0x97EA0Fcc552D5A8Fb5e9101316AAd0D62Ea0876B</a></p></li></ul><h3><strong>Autores</strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out hash-link" href="https://portal.thirdweb.com/contracts#authors"><strong>​</strong></a></h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/">thirdweb</a></p></li></ul><h3><strong>License</strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out hash-link" href="https://portal.thirdweb.com/contracts#license"><strong>​</strong></a></h3><p style="text-align: start"><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2.0</a></p><p style="text-align: start"></p><p style="text-align: start"></p><h2>Recursos adicionales</h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/"><strong>Documentación thirdweb</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/"><strong>Blog Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/guides/"><strong>Guías Oficiales</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates"><strong>Plantillas</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/thirdweb"><strong>Youtube Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes"><strong>Youtube Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://thirdweb.com/events"><strong>Eventos</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb"><strong>Discord Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://support.thirdweb.com/">Support</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb">Twitter Oficial</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es">Twitter Oficial ES</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_jp">Twitter Oficial JP</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento">Blogs y guías en Español</a></p></li></ul><p></p><hr><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p>Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb?ref=blog.thirdweb.com">Discord</a>, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/ZV3gUhiP?typeform-source=thirdweb.com&amp;ref=blog.thirdweb.com">ponte en contacto</a> directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.</p><p>Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!</p><div data-type="embedly" src="https://thirdweb.com/?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.&quot;,&quot;title&quot;:&quot;thirdweb: The complete web3 development framework&quot;,&quot;thumbnail_width&quot;:2400,&quot;url&quot;:&quot;https://thirdweb.com/&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdweb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1260}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdweb.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb: The complete web3 development framework</h2><p>Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.</p></div></div></a></div></div><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdweb_es</category>
            <category>documentacion-thirdweb</category>
        </item>
        <item>
            <title><![CDATA[Documentación thirdweb: Cómo empezar]]></title>
            <link>https://paragraph.com/@samusarmiento/thirdweb-como-empezar</link>
            <guid>kbtb5khe9WF0N8dXBl91</guid>
            <pubDate>Mon, 05 Jun 2023 16:12:47 GMT</pubDate>
            <description><![CDATA[En esta guía de inicio, te mostraremos cómo construir y desplegar una aplicación web3 completa. Aprenderás a: Crear y desplegar un contrato...]]></description>
            <content:encoded><![CDATA[<h1>Introducción</h1><p>En esta guía de inicio, te mostraremos cómo construir y desplegar una aplicación web3 completa. Aprenderás a:</p><ul><li><p>Crear y desplegar un contrato inteligente</p></li><li><p>Gestionar tu contrato desde el panel de control</p></li><li><p>Construir una aplicación React utilizando el SDK para interactuar con el contrato</p></li></ul><p></p><hr><p>Si eres de los que aprendes mejor visualmente te dejo el canal de Youtube de mis compañeros de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/">thirdweb</a> <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/@thirdweb_/videos">https:  www.youtube.com @thirdweb_/videos</a> y en concreto este de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://twitter.com/jarrodWattsDev">Jarrot Wats</a>, <em>Developer experience engineer </em>de thirdweb:</p><div data-type="youtube" videoid="fzsz-b2JV9U">
      <div class="youtube-player" data-id="fzsz-b2JV9U" style="background-image: url('https://i.ytimg.com/vi/fzsz-b2JV9U/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=fzsz-b2JV9U">
          <img src="https://paragraph.xyz/editor/youtube/play.png" class="play">
        </a>
      </div></div><p>Suscríbete al canal en español si quieres que subamos todo el contenido en video en español</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes">https:  www.youtube.com @thirdwebes</a></p><hr><p></p><h3>Antes de empezar</h3><p>Te recomendamos que tengas instaladas las siguientes herramientas antes de empezar:</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.npmjs.com/downloading-and-installing-node-js-and-npm">Node.js y npm</a>: Para instalar nuestro SDK en tu proyecto.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://classic.yarnpkg.com/en/docs/install/#mac-stable">Yarn</a>: Para ejecutar scripts en nuestra app React.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://git-scm.com/downloads">Git</a>: Para usar el comando <code>create</code> en nuestra CLI.</p></li></ul><p></p><h1>Despliega un contrato inteligente</h1><p>Es posible que quieras crear un contrato inteligente desde cero o desplegar uno prediseñado que satisfaga tus necesidades; ofrecemos soluciones para crear y desplegar cualquier contrato inteligente.</p><h2>Explore</h2><p>Contratos seguros, optimizados para el gas y auditados, listos para desplegarse con un solo clic.</p><p>Desde la <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/explore">página <strong><em>Explore</em></strong></a>, puedes elegir entre una colección curada de contratos inteligentes optimizados para gas, auditados y probados, construidos por protocolos de código abierto de confianza y por el equipo de thirdweb; listos para desplegar en un clic.</p><p>Por ejemplo, seleccionemos el contrato inteligente <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/thirdweb.eth/TokenERC721">NFT Collection</a> creado por el equipo de thirdweb:</p><img src="https://storage.googleapis.com/papyrus_images/533b3c8abfed46e18fb08d15dfd2a7a9.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAOCAIAAADBvonlAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADpUlEQVR4nHWU72/bRBjHHcQp0bnOuZfErkOSmjqrG5amDomb1XbNMldp1sjNSNsUkrYxBUfTpm2MaQIktDIhTaNVBaLSVARlezdpL7oXQMVQK1X8kECTkHjLG97wCv6E8QI5N8yYNuuje3FnPz++z/dM7ezcvH59IxAAj0FRVCAAAAgFAgBCBiGW0EczEP6Hv48QGw4jfx9jnuOeQwhT29s7d3e/XFl2ms3WyrKztNQhnDlz1nFebzZbjvNaIpF6WlAImVAQhoIQQoamw0yYRQhDyAzJxXFznhdS1KAo6SdOzM7NzdqnTPMlVS0VXlSz2Vw2m5PlzKAoNZutbDYnipIsj4iilEikOI7HONqPowixg2Jat6aKmp7PF184Oial5WTy+QEhQU77cYyanVv45ffftj771NANjKMQMkQfiqIACAEQOjj84cGDv9vtJcF74qRqAgAhY9L67tf7ez8e3vziVjabg5Dpoz1IozFOoKpVe/fO3fVrG6payo0qqloiKEqBKOO63StX1hqNBdMsG5PHTbNs23XLqth2neP4sfz4+2tX169tbG5+rCgFeeSoLGdIEQixkQhPSdLwTM1e6ay+/c67plkeljNEHJIAITYYDFPUM2TUGEcxjvRWD1LjwIAHx/GynFHVUjqd/l+Ceq2xtXljpmbL8gixDYFEDAbDn6x3l5dajUZzSEoDEPIl6qM9iXT9+PbW57ZdN3QjEADPgiAAIZoOEwt4Eh05MjJtndQ0Q5KGMY7GOD7G8ZEIR2qkaVY/NjoxMaFpk0QxhPCjHaSSQ7XpU4ZeHlMKXjdCYkBIxLh4jBPISmVGc/NvdF5Z7dh2XZYzoigJQpx83LMBdpzTjcZCoagem9A0TZflDMfxfh9DUvplp+1cOPvqYltVx8nn0UjM9zG13Fn9468/5xYXU8lB4iIAQr7fIWS+3vv255/u7+8f3L6ze++b/fUPNxKJJMfxghDvoxlVLe0dHJhTU6IoIcT6CpMgXgJFKVy6eHm+ZxLTLFemq5ZVIZkQYmk63Gy2XLdrWRVN0zXNUNWSphnkZUEQ0mn56toHF998y3W7vYu5WK3OWFbFNMuKUvAS+LeG43gf3wYQMvl8MZvN+W09hiDENc0gES2roigF3AvlD4ly2quH974/d/6Cphm+SYh8vT7g+XMfXbr8nut2H/1DIMSyCAMQ0krG/leHrnt65mSN3E0m7EUgRurHUerfYT6c6hPxZ/4UHvrqiaf/ANCn4PGX083IAAAAAElFTkSuQmCC" nextheight="499" nextwidth="1165" class="image-node embed"><p>Desde esta página, podemos descubrir las características del contrato, ver su código fuente, ver qué <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">extensiones</a> implementa y desplegarlo en la blockchain de nuestra elección.</p><p>Haz clic en el botón <em>"Deploy Now"</em> para entrar en el flujo de despliegue, e introduce los metadatos de tu contrato inteligente; como su nombre, símbolo, imagen y descripción:</p><img src="https://storage.googleapis.com/papyrus_images/bd8bce0b378ed2cf4a70dd737987dd5c.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATCAIAAAB+9pigAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADrUlEQVR4nGPIyStet37z8uWrenonHjlyYt/+w+vWb9qz56CEpAwPryC/gCgGEuMXEOUTEEGTFRaREBOXEhaRgDDgiCE6Jm7x4mWz58yvrWucMHHK8uWrFi9etmDBEhNTSw1NXR1dIw1NXTBDH8zQVlJWU1JWMzA0MzG1VFXT1NDU1dMz1NE1kldQRjMaaoGOrr6rm2d4RLSHl4+5hU14RLS1jYO1nVNkTHxKSkZhUVllVV1sfGJGVm5hUVlOXmF4REx4RExqek5lVV1IaIS7u1dAYHBCcqqjkyu/gCgWC1zdPHPyip2c3SE+DY+IyczKd3fxEBQU5eEVhIQDD68wnA1BPLyC7Bx88grKCcmpOXmFdvZO7Bx88CBCRgwZWbkPHz2trWuE8Jua2g8dOxkXmyAhKSMto4AHiYlL6ejqb9q8fd/+w0VF5fwCYsiyEO0gH8grKGto6oZHxLi6eSopq8krKOvoGhmaWNjZu9jZu4CCCyuyc7K2cZCWUVBV01RT1zEwNMNUbGfvoqqmyaChqevq5tnY1Obk7C6voAyJQEjcmpha4rTAxsHcwkZeQRliEC41SspqDE7O7m1tPTl5xS2tXeYWNnb2LqGhkQGBodExcRqaulgTBhzhl4VGsoGhWVBQmKubp49vkJKy2oSJU48eP3Xo8PGLl64GBIbyC4hKSMqQjUAWCItIQLIJBMkrKKuqaaqqaULCyhp3EBGDQEGE5mUTU0tXN08nZ3cnZ3dIPNtRgECRjGYB1vRgTRays3cB+QASPvDyBGIB5cjaxsHJ2V1DU5dBVU0TEu5Kympi4lISkjLyCsr4s5g00UhCUoZh1Zr1f//9/////917j3R0jZhZONg5+Ng5+CCFAQ+YxIqQFcB1wRGiqLC2cSguroiNTwyPiAkIDHV184iNTw4IDHVydodwIyNB4pEx8eERMSGhYSGhESGhEZEx8V5efpEx8Z5evuER0ZlZ+SGhYdExcSGhEdExcUFBoRKSMpBcAspomVn5GVm5iclpkTHxOXnFYFSYmJxWWFSWmJzm5OwOyYDWNg4mppbmFtbmFjaOTq6QfA5OdR4ODi5gNU7mFjYQBM+GoNI0MiY+JDQCUg4nJqdZWtp6uHt5evmGhEa4unlCylGkkhWFzS8gys7BB8lTkGQiKCgqAqt2QEHU1dX/9t2Hm7fubtq87dDh4zdv39u1e6++jj4jMzskiPGXBBKSMuwcfBkZ2S9fvT16/NT3n383bdgsIy0HL0UAvE2RYFfyKjgAAAAASUVORK5CYII=" nextheight="366" nextwidth="610" class="image-node embed"><p>Por último, seleccione la red en la que quieres desplegar el contrato inteligente y haz clic en <em>"Deploy Now"</em></p><img src="https://storage.googleapis.com/papyrus_images/d060e1d62a66be5a89482b49349d9cf5.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAALCAIAAACRcxhWAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAC6klEQVR4nKVTzY/TRhydZBMnjp0Zj72JkzghtuOxJ/7IrOOssZPsLrtA2kUc+BYgxIEViOVDqnpDLaiq1Cu9VkVq73DosYeeq0o99lIO5Z/ooRcOhsR0tSdUqdLT6L13mHkz83sAIqXM1QtFDoBShUcSbki4UShyZa4uQvn/A+yd/vTps68PHzx++Oizq9dubG3v3Tm49+TJl2fO7ufHlDm4VqqtlWorXl9xMXdy8zg5khW+Xq1UeV4EA8teLBZxnCTJNEnSMByzEdvd2U2TqWGYhNj9vk4ItQjVDWKatkPdgWXbztB23KHrrxzPInRg2UPX1w1iEepQt6lZco9h1QBdg7J4z3Jjwxn70bYfbQ+8mRPuRLOFH85ZvDsMtzw2cai72oVS6tuO6/kjzx/5QWgR6vnMD8Kh6w/dwCLO0A38YEPVbEXflFoDIOIu1EaSflLqb8JOALUQm6lkpnUthJ0A6QnSEx51C8VyfvdCkcvXHP86lbVSJZcrh6/wtSrHLZ+o0d9Y7xAERYRkCDFCMoJoCYSXEmKEsLz6eQk3ZEXNyXGJFRVhFeEWUtoQt0WsQtQUUFNEqgjXgTE7ME9ejzaCONkKWLRz6sx0thNNUhZOHOqFkziapOl07vmjgEXpdB5F8YiNR2zMwihO5uNJHLKgS+ImPd004xaZKY0OVwR8qVgpAp6vAUHA/DKufDQANQEfJZUVFSLleOrj2SGSkdLGPYa0oGFstsPLkn9Z9i+tBxcl90KTXVF6HmiorZRdpIPk1u3b9w8f3b17uFjsd3umadofgW6QoTs60ethPT7/xa83v/n97Oe/ffs6+ynLXr7Nfvx7Sb7/J9u6/zNQGs2Azok52T93/uq163kVtK6uG+REf/ARDAjVOprSD089ePnJ41fJwauvfslevMle/JU9/yP77nX2/M8svPEDEKFcFYRa/UOZAVhOy3+paE3AOakISllQBNQUcBtU26DaWhNaBb7F1Tvvm/wO8Yua4OgCX38AAAAASUVORK5CYII=" nextheight="211" nextwidth="611" class="image-node embed"><p>Una vez desplegado tu contrato, se te redirigirá al panel de control de tu contrato.</p><h2>Construye tu propio <em>SmartContract</em></h2><p>Crea contratos personalizados específicos para su caso de uso utilizando el SDK de Solidity.</p><h3>Creando el proyecto</h3><p>Podemos utilizar el CLI para crear un nuevo proyecto con un contrato inteligente dentro, y [Solidity SDK]](/solidity) instalado para nosotros.</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb create contract</code></pre><p>Esto iniciará una serie interactiva de preguntas que te ayudarán a empezar:</p><ul><li><p>Dale un nombre a tu proyecto</p></li><li><p>Selecciona <code>Hardhat</code> como marco</p></li><li><p>Selecciona <code>ERC721</code> como <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/erc721base">contrato base</a></p></li><li><p>Selecciona <code>None</code> para las <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">extensiones</a> opcionales</p></li></ul><h3>Explorando el proyecto</h3><p>El comando <code>create</code> genera un nuevo directorio con el nombre de tu proyecto. Abre este directorio en tu editor de texto.</p><p>Dentro de la carpeta <code>contracts</code>, encontrarás un archivo <code>Contract.sol</code>; ¡este es nuestro contrato inteligente escrito en Solidity!</p><p>Si echamos un vistazo al código, puedes ver que nuestro contrato está heredando la funcionalidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/erc721base">ERC721Base</a>, por:</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://solidity-by-example.org/import/">Importar</a> el contrato</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.soliditylang.org/en/v0.8.17/contracts.html#inheritance">Heredar</a> el contrato; declarando que nuestro contrato es <code>ERC721Base</code></p></li><li><p>Implementando los <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.soliditylang.org/en/v0.8.17/contracts.html#constructors">métodos necesarios</a>, como el <code>constructor</code></p></li></ul><pre class="dont-break-out text-sm md:text-base"><code>// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@thirdweb-dev/contracts/base/ERC721Base.sol";

contract Contract is ERC721Base {
    constructor(
        string memory _name,
        string memory _symbol,
        address _royaltyRecipient,
        uint128 _royaltyBps
    ) ERC721Base(_name, _symbol, _royaltyRecipient, _royaltyBps) {}
}</code></pre><p>Este patrón de herencia nos permite utilizar la funcionalidad de otros contratos dentro del nuestro, modificarla y añadir lógica personalizada.</p><p>Por ejemplo, nuestro contrato actualmente implementa toda la lógica dentro del contrato <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/thirdweb-dev/contracts/blob/main/contracts/base/ERC721Base.sol">ERC721Base.sol</a>; que implementa el estándar <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/thirdweb-dev/contracts/blob/main/contracts/eip/ERC721A.sol">ERC721A</a> con varias <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">extensiones</a> útiles.</p><h3>Añadiendo extensiones</h3><p>Las <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">extensiones</a> son una gran manera de añadir piezas individuales de funcionalidad a su contrato, como los <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/permissions">Permisos</a>.</p><p>Puedes seguir el mismo patrón que seguimos con el contrato base para añadir una extensión:</p><p><strong>Importar</strong></p><pre class="dont-break-out text-sm md:text-base"><code>import "@thirdweb-dev contracts extension PermissionsEnumerable.sol";</code></pre><p><strong>Heredad</strong></p><pre class="dont-break-out text-sm md:text-base"><code>contract Contract is ERC721Base, PermissionsEnumerable {
    // ...
}</code></pre><p><strong>Implementar</strong></p><pre class="dont-break-out text-sm md:text-base"><code>contract Contract is ERC721Base, PermissionsEnumerable {
    constructor(
        string memory _name,
        string memory _symbol,
        address _royaltyRecipient,
        uint128 _royaltyBps
    ) ERC721Base(_name, _symbol, _royaltyRecipient, _royaltyBps) {
        // Give the contract deployer the "admin" role when the contract is deployed.
        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
    }

    // Example: Only allow the "admin" role to call this function.
    function helloWorld() external onlyRole(DEFAULT_ADMIN_ROLE) {
        // ...
    }
}</code></pre><p>¡Ya está! 🥳 ¡Acabas de hacer un contrato inteligente de cobro ERC721A NFT con controles de permisos!</p><h3>Desplegar</h3><p>Vamos a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/deploy">desplegar</a> nuestro contrato en la blockchain, ejecutando el siguiente comando:</p><pre class="dont-break-out text-sm md:text-base"><code>yarn deploy</code></pre><p>¡Ya está! 🥳 Este comando hace lo siguiente:</p><ul><li><p>Compila tu contrato</p></li><li><p>Sube el código fuente de tu contrato (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.soliditylang.org/en/v0.8.17/abi-spec.html">ABI</a>) a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.ipfs.tech/concepts/what-is-ipfs/">IPFS</a></p></li><li><p>Abre el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/dashboard">dashboard</a> para que selecciones una de nuestras redes soportadas para desplegar en ella</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4adb18652190e3065478a849cc890f23.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">thirdweb CLI - thirdweb deploy</figcaption></figure><p>En primer lugar, tenemos que introducir los valores para el constructor de nuestro contrato:</p><ul><li><p><code>_name</code>: El nombre de nuestro contrato</p></li><li><p><code>_symbol</code>: El símbolo o "ticker" que se da a los tokens de nuestro contrato</p></li><li><p><code>_royaltyRecipient</code>: La dirección del monedero que recibirá los royalties de las ventas secundarias</p></li><li><p><code>_royaltyBps</code>: Los <strong>puntos básicos</strong> (bps) que se darán al receptor de royalties por cada venta secundaria, por ejemplo 500 = 5%.</p></li></ul><p>Por último, selecciona la red en la que deseas desplegar (recomendamos la red de prueba Mumbai), y haz clic en <em>"Deploy Now"</em>.</p><img src="https://storage.googleapis.com/papyrus_images/b565fa50e98194d69a2908b0270cd014.png" alt="Deploying your contract using the thirdweb dashboard" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEtklEQVR4nH1UWW8bVRi9MXYSN+PYnrF9PYvt8e5JnMWexEvsQDfiLE0jikorBA8gSgGhSpSGNq1St0lbSJsuCSktKl0oSwq0b/Q/IJ555IEXniohBSqUJo4PmjvpIgqVjq6+Gd05537n3PkIbgALwCRW38G9N7D0Fv7aA8wBt4FvgLPAGbbhGoydXwCfA5eAK8DXwPds23fAx8B7bF1kb34w6l9fxd0hEJwA9mF5L/5+m216Hzvprj2xXW9Gdu8O7RwVd1TcI9v5ke388Ag/MiyMDLmHx7wjO33bdvhGX6HbdnhHx7yj2dahCj865qvMxfYb7B/gy424WMZCGQT7gQPAIWAa+Mo4WkDVtM2btPLzmS1bYz29NipZqL9ZClio30L9TZJsFeUGKhKnmzS3EM5FGhpJQxOx2InDprn13183eOdKuNCH2UKddXCCmXAbuAPMw2FVnnNTwaMQwrmpokQ0UY4Sq4ungWBE41wi4XxKpC0cSzc5fKSZFwMJJaIpwRRpdVN7bq64ulDGub51EMNQ07ibrIM52IjP6qV+KUwI8UhqIJIkdoG0CsGoFte67C4/4XwuGnTTcLPTb3H6zdpNI8Tl9jGBCyXj7LOFOhNYZIldAa4zgZNQpPbu0qbe0pZc/1Y10e30Bht52UGDHjnmoKrV6W/gKLF7id3bwNHHtZ0SF28KmO5fZCCYZ7fiMnCeGTWNkNSualkxpIWTGTGkCWLUI8dMmHQm779gcYjE5fFzhfm+dYtmCjhTADFIzwOfAleZV+cNga7CC2m9rEQ7HFTlxegjPFJ6GoIY90XitLVvqmd5OofjvTjeuzbVWyOGOTfYpb7JBOYRlNr18mY50k4DSfNjtxTjxajwhNLTcNOoL6j6HMXJ7PIxgx1TvfUTuTWWwSJz/xpL4jBkqb08MCypbU6vytILP/vsDxGnasTnKFb1B1NGB2uncvVTuToxnFkAZoBjwCdMwK+VB4ZfrLzclimlOvOpzoIa73TTsMCa+D94xZgYTZgdMAEDR3vqBFVgCphlM+AW8BmColbcNBiMpGkgKYY0MZSigcSz2RliDztYnikY/pgaxBg7V4FvGfsdo5uAX9NyZSrHTd8F5o9Xjnvl+MNi/fGJIk7lhFeN+FqKp/Mrp/KY1NfMnIkRr8luhjFjhJzqKaX1/kgy08BRq1N8hGaX2MjLNl6x8UojH7TxitUpWxyixSHanDJxefjmfFV/UO0xzGE511jIt9hFughcAD6saamylutPpgvxdF5NZNREJpzIRFN6SMv5k3khkLL7kxskbYOU2iC12f0J4+doFAjhCWly23IHu5eP6PXD2bWjPZjUzT/5Ept0B/DnHtwd+IMXY+lSsT1fEAJBrxr2qmFPaH0VQlE+EBQU5TEk0dVV3DK1WP2lPv7zPSE49FHn/QkdBzNrJgimUX8Xv72GHwdxfSPO5ZfUpm0Jz2ibMBbiBiWuInGVEDcY4Cpiy4DEVpGrPEbLgOjcriT36f0zHeVqtGnvePfKoScFfnoJdwZwYyMu9+MSmyHn+nC2sHo6vzLVWzvWs3oyVzudr1X1laN67VBm9T9xsOv+eMfSeMfSRLY2ka1PZOtH9HX8A4xogfGiGdOkAAAAAElFTkSuQmCC" nextheight="1080" nextwidth="1920" class="image-node embed"><p>Una vez desplegado tu contrato, se te redirigirá al panel de control de tu contrato.</p><h2>Despliegue desde la fuente</h2><p>¿Ya tiene un contrato listo para desplegar? Aprenda a utilizar nuestro CLI interactivo para enviarlo.</p><h3>Despliegue de tu contrato inteligente</h3><p>Utilice el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/cli">CLI</a> para <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/deploy">desplegar</a> su contrato inteligente en la blockchain.</p><p>Desde el mismo directorio que tu archivo de contrato inteligente <code>.sol</code>, ejecuta el siguiente comando:</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb deploy</code></pre><p>¡Ya está! 🥳 Este comando hace lo siguiente:</p><ul><li><p>Compila tu contrato</p></li><li><p>Sube el código fuente de tu contrato (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://docs.soliditylang.org/en/v0.8.17/abi-spec.html">ABI</a>) a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://docs.ipfs.tech/concepts/what-is-ipfs/">IPFS</a></p></li><li><p>Abre el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/dashboard">dashboard</a> para que selecciones una de nuestras redes soportadas para desplegar en ella</p></li></ul><figure src="https://storage.googleapis.com/papyrus_images/4adb18652190e3065478a849cc890f23.png" float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4adb18652190e3065478a849cc890f23.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">thirdweb CLI - thirdweb deploy</figcaption></figure><p>Abre la URL generada en tu navegador y rellena los campos del <code>constructor</code> de tu contrato inteligente.</p><p>Por último, selecciona la red en la que deseas desplegar (recomendamos la red de prueba Mumbai), y haz clic en <em>"Deploy Now"</em>.</p><img src="https://storage.googleapis.com/papyrus_images/b565fa50e98194d69a2908b0270cd014.png" alt="Deploying your contract using the thirdweb dashboard" class="image-node embed"><p>Una vez desplegado tu contrato, se te redirigirá al panel de control de tu contrato.</p><p></p><h1>Gestión de contratos</h1><p>El <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/dashboard">panel de control</a> es una ubicación central donde puedes gestionar y analizar tu contrato inteligente, con herramientas que te permiten realizar operaciones administrativas comunes, con funciones como:</p><ul><li><p><strong>Explorador de contratos:</strong> Ejecuta cualquier función en tu contrato y revisa los resultados en tiempo real.</p></li><li><p><strong>Eventos:</strong> Feed actualizado en tiempo real de los <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://docs.soliditylang.org/en/v0.8.17/contracts.html#events">eventos</a> emitidos por su contrato.</p></li><li><p><strong>Ajustes:</strong> Actualiza los metadatos del contrato, los royalties y las tarifas de la plataforma, etc.</p></li><li><p><strong>Fuentes:</strong> Vista de todo el código fuente de su contrato y verificación del contrato en Etherscan.</p></li><li><p><strong>Código:</strong> Aprende a utilizar el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/sdk">SDK</a> para interactuar con tu contrato</p></li></ul><p>Cada extensión que implementes desbloqueará funciones adicionales en el panel de control. Por ejemplo, el contrato que implementaste en el paso anterior tiene desbloqueadas las pestañas <code>NFTs</code> y <code>Permissions</code></p><h2>Explorador de contratos</h2><p>Conecta tu monedero y ejecuta cualquier función disponible en tu contrato inteligente directamente desde el panel de control.</p><img src="https://storage.googleapis.com/papyrus_images/f72ddf835ec19636c72a44afb79f833b.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAZCAIAAADfbbvGAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADT0lEQVR4nK2VTW/cRBjHZ/0yT2emYxvb2fHrjDxjr1mQkKAniKJeEtTAoREvicSlnPsBSoVUFODAAYkDVz5AOSBxg0YqBwQnVAkpXwIOiANwA2mR1413E0i7idb6azX2PvJvnuf/zGO0t/fG0fcPv3rw9cMfvnv7rX2EEAAlhBFCMaaUcgAGQDEmAPTJ6mMsy0GLy0H3Pjqc/TL758vfZn/MPv38s+n0ha2t65ubW6+8vJmlutbXXnzpGue+68JTAQDUtrFSen//4ObNvYODd6bT59GdD97765s/v33ux1+/+P3ex4eBH7ftVGuT5zKORZJknheusn2ALl2E0M7Oq8fHx0dHDx49+vnWrXfR3bvvz2azv2fddXj4oe1AUSghEs8L57smGF9AANRxAKERQhZCI9vGyJj6xo3d7e2d3d3X6roZjWzXBcd5HA1AofOD9b+9eldOqXu4uF1EEoZGI3vJE6sPPXkRBaCuC5aFHQcsG1uWY9nd2nUBY+K63cLFxLEBMH3MPrUVijwv9P1IKVPXkyCIfD8CoHkuK6W7IMqTpJhMWimrup40Tds0bVGoOBZRtCFEMo5FZ5WpvCA8YZxKDjHm5bkcjwXnvueFnPsDf96jVOu6nbRBEKVJlqZ5kmRhGDMWUMq5F3IWMOb5QmAgluXYNu5rO1iCKOVlqfpG7BM/o3gsKl1LpUtZzaWl0lVlKm1UZbpFZZQ0la6NabRpolhc5dEzURJtZJ0HlPIuQun/b3bCKPWFyPNcZQvJ/0hlmewVhBsEMBkh7iIAggjlUlZpmjPmnakgxqR/4jhg23gVOQ5xLHTVXEcH99H2J1c80WegpVRpmguRLJ+pAQCri3BsIdq+jm7/hN68f8VPO4CUldZmPBZDiQajyByw4kk+iWTYGlndGEKACSKEFYUyph6PxXklwisDBgahARAfgHUeKKW17nw+r0T4woClc0DmXaS1qU1TFOVyI10OAKcxXYmkrAYbKOXDf2sDaN1l0DRtXyhC2KVNhvMASukgiIIgGt6+TkBZqrJUSumyVGEYrzkDSnlt6qZpJ5NnjanrejLMjLVlIESSJFkci+UP09oA0N0spuvysF0G4EtpDnjitLnwLDojwtCld7ei/gXu1KS+MK3dyQAAAABJRU5ErkJggg==" nextheight="932" nextwidth="1180" class="image-node embed"><h2>NFTs</h2><p>Como nuestro contrato implementa el estándar <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721">ERC721</a>, desbloqueamos la pestaña NFTs en el panel de control.</p><p>Aquí podemos ver todos los NFT minteados por nuestro contrato, e incluso mintear nuevos.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/84137139391c7828a96e348a0df4d6ba.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><h2><em>Permissions</em></h2><p>Como nuestro contrato también implementa la extensión <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/permissions"><em>Permissions</em></a>, desbloqueamos la pestaña Permisos en el panel de control.</p><p>Invita fácilmente a los miembros de tu equipo con niveles de permiso escalonados y gestiona su acceso a tu contrato.</p><img src="https://storage.googleapis.com/papyrus_images/5e4c5f450e89bcbfc7fad08a84308a64.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAIAAAAUMWhjAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAEPUlEQVR4nK2V72scRRjHn+zt7jC72R/dmbu5y+7dZndmdy/XtM1drrlLk6iEFmIFrVpMC6YpKEhL8Y1oa19IbESENk3rW/+G/gGlL3wj+K4F3xQERXwlqIX6whdaPZndpK1ieqk4fBiefWaZZ/Z5vs8snD137uL62vuXPnjn3fcoKQMopZKeg3QdqZquaQghQ9exrmOEjCdQvKCpCGCkoFTS4d4PPw9+HAzuDf787cHi4SNT7W6v1+/35lutVtkNJ/fOpM2Wpg3Z+iGahlyXZNlEmjabzRZjVfj2ztdfLd3+wv/ym8+/n332UNjgWdYUIuWc16r1ep3bjjv07AWGYQHA0tLRu3fv3rp18/btO2fOnIX7v9wf/D7446fBg18H7c50tToWBOGY72+nBRUp2iWqiioV1u322u1Ot9sLghDOn79wdXNj49rl9Y/WGatpGsLYfDynaLsAu6GIAdtDUVR4fOg63t7dRNjEOShny9jFR2BsGoZVgLEJtMICPyyedd3I2fmA2JSxh2Fg0zQsMz8QMFbjsbAsxzRt296aLcuxTNe2Pdv2pG05rkts29E0NDxLugEySyoomo4MaDSiqalpzkWaNpMkS5I0y5rN5kRuZ9KZNQUXvt9grOo45Ml4LlEN43ytfmPvgWs8rWELhEhnZ+cajUjwJI654IJzkctUxDHnnAueRFFMKfM8Sil7MoxWDL91sXPkxuET1/tHa6MuCJ70ev1Cnb7fyAlyGg8ZG6tTyggpD4MR190ztQwLb8PcW3BwVbcqUjmqKsWuqlJC/wtGUWTDwsgASlkQhLWa7/vBjuLDuxLoo5ZGhpGHkSqq1vw0zcKQxzH3POq6hJCy59ECQsqO7akqeqpeAw2DooGiSxXFMe92e0WRBU/SNMtV1EqSTPCkEFLYiIoiDy1DhZRLlvlZEH83PXezeSA0LEiSbH5+IYq4EDKAEMlDFUmDC8Glh7HqUAlRyiqEWmJ+5dBra0tvnHlmmVhE9sHk5BSlrFqtMbYTVc8jrjsU6jquO/E8HFyBzjLsPaZbFDQNK4quyfQZ/wLamndzQyBkyt1GQAVAJQWpJVkPSlmapNQjSJNywX8H6eipYIxFYRyFEfGI6xB52RHmxxNtFgrix+U6Z3XB6pyMjZfrvBJwza6oVlm1d0TbolLMrC7CdH+YTnq1cZcFWP6C9i3C6nV4/TKsXoXVDVi5IlndkJ5TV+D0Jrz5qaRYPZWzmnN6E05+Ai9fglfWH3HsQ3hpDV5cg1c/hhcuILcKiIUjab8kZtSkpya9kpgpiS1DyT1q2leTfuEckauS3OgpfAbiLkTTMN6BqAPjbRjfD419EEpG/AxhA5CmI0X5b+CSgpQRalkBo65DHRo5wUw5eY6KhbJYIMniaDmB3SsEIVP/hwebmo5phYVhtIeNj/ptnB0lnRNu+7g3ddztnDRr+/8CehDmrivE3LUAAAAASUVORK5CYII=" nextheight="883" nextwidth="1161" class="image-node embed"><h2><em>Builds</em></h2><p>La pestaña <em>Build </em>proporciona los pasos para crear una nueva aplicación con nuestro <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/sdk">SDK</a>, e interactuar con tu contrato.</p><p>Veamos a continuación cómo podemos utilizar el SDK para crear una aplicación web.</p><p></p><h1>Construye una aplicación Web3</h1><p>Utiliza el CLI para crear una aplicación web con los SDK de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react">React</a> y <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/typescript">TypeScript</a> preconfigurados:</p><pre class="dont-break-out text-sm md:text-base"><code>npx thirdweb create app</code></pre><p>Esto iniciará una serie interactiva de preguntas que te ayudarán a empezar:</p><ul><li><p>Dale un nombre a tu proyecto</p></li><li><p>Selecciona Next.js como framework</p></li><li><p>Selecciona JavaScript como lenguaje </p></li></ul><figure src="https://storage.googleapis.com/papyrus_images/71020878d4e421a8f2915f9b50a6530c.png" float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/71020878d4e421a8f2915f9b50a6530c.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p>El tutorial, a diferencia de la captura, será con JavaScript. Si quieres conocer más sobre TypeScript tienes más información <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/typescript">aquí</a></p></blockquote><h2>Explorando el proyecto</h2><p>El comando <code>create</code> genera un nuevo directorio con el nombre de su proyecto. Abre este directorio en tu editor de texto.</p><p>Dentro del archivo <code>index.js</code>, encontrarás el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react/react.thirdwebprovider">ThirdwebProvider</a> envolviendo toda la aplicación.</p><p>Este wrapper nos permite utilizar todos los ganchos de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react">React SDK</a> y los <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react/react.web3button">componentes de interfaz de usuario</a> en toda la aplicación, así como configurar un <code>activeChain</code>, que declara en qué cadena se despliegan nuestros contratos inteligentes.</p><p>Dado que hemos desplegado nuestro contrato inteligente en la red <code>Mumbai</code>, vamos a establecer el <code>activeChain</code> a <code>"mumbai"</code></p><h2>Interactuando con los contratos</h2><p>Con el SDK instanciado, ya puedes desplegar contratos inteligentes, interactuar con ellos y mucho más.</p><p>Para conectarse al contrato, utiliza el método <code>getContract</code> del SDK y el método <code>call</code> para leer/escribir datos.</p><p>Las funciones se llaman automáticamente desde la cartera con la que instancias el SDK.</p><pre class="dont-break-out text-sm md:text-base"><code>import { useContract } from "@thirdweb-dev/react";

export default function Home() {
  const { contract } = useContract("&lt;CONTRACT_ADDRESS&gt;");

  // Ahora puedes utilizar el contrato en el resto del componente.
}</code></pre><p>Ahora puedes llamar a cualquier función de tu contrato inteligente con los hooks <code>useContractRead</code> y <code>useContractWrite</code>. Cada <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions">extensión</a> que implementes en tu contrato inteligente también desbloquea una nueva funcionalidad para que la utilices en el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/sdk">SDK</a>.</p><p>Veamos cómo funciona esto leyendo los NFTs de nuestro contrato inteligente y acuñando nuevos.</p><h3>Lectura de datos</h3><p>El contrato NFT Collection que construimos anteriormente implementa las extensiones <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/base-contracts/erc721base">ERC721</a> y <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721supply">ERC721Supply</a>.</p><p>Al hacerlo, podemos utilizar la funcionalidad <em>"View All"</em> en nuestra aplicación. En el SDK de React, esto está disponible a través del hook <code>useNFTs</code>, que podemos utilizar proporcionando el objeto del <code>contract</code> al hook de la siguiente manera:</p><pre class="dont-break-out text-sm md:text-base"><code>import { useContract, useNFTs } from "@thirdweb-dev react";

export default function Home() {
  const { contract } = useContract("&lt;CONTRACT_ADDRESS&gt;");
  const { data: nfts, isLoading: isReadingNfts } = useNFTs(contract);
}</code></pre><h3>Visualización de datos</h3><p>Utiliza el componente <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react/react.thirdwebnftmedia">NFT Media Renderer</a> para renderizar cada uno de los NFT cargados desde el hook <code>useNFTs</code>, haciendo uso del estado de carga en una sentencia condicional:</p><pre class="dont-break-out text-sm md:text-base"><code>import { useContract, useNFTs, ThirdwebNftMedia } from "@thirdweb-dev react";

export default function Home() {
  const { contract } = useContract("&lt;CONTRACT_ADDRESS&gt;");
  const { data: nfts, isLoading: isReadingNfts } = useNFTs(contract);

  return (
    &lt;&gt;
      {isReadingNfts ? (
        &lt;p&gt;Loading...&lt; p&gt;
      ) : (
        &lt;div&gt;
          {nfts?.map((nft) =&gt; (
            &lt;ThirdwebNftMedia metadata={nft.metadata} key={nft.metadata.id}  &gt;
          ))}
        &lt;/div&gt;
      )}
    &lt;/&gt;
  );
}</code></pre><h3>Escritura de transacciones</h3><p>Dado que nuestro contrato inteligente implementa la extensión <code>ERC721Mintable</code>, la función <code>mint</code> está disponible para nosotros en el SDK.</p><p>Utiliza el componente <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react/react.web3button">Web3Button</a> para realizar una transacción <code>mint</code>; lo que asegura que el usuario tiene su monedero conectado y está en la red correcta antes de llamar a la función:</p><pre class="dont-break-out text-sm md:text-base"><code>// Coloca este import en la parte superior del archivo
import { Web3Button } from "@thirdweb-dev/react";

// ...

// Colóquelo debajo de su lógica de visualización NFT existente:
&lt;Web3Button
  contractAddress={"&lt;CONTRACT_ADDRESS&gt;"}
  action={(contract) =&gt;
    contract.erc721.mint({
      name: "Hello world!",
      // Coloca aquí cualquier URL o archivo
      image: "&lt;your-image-url-here&gt;",
    })
  }
&gt;
  Mint NFT
&lt;/Web3Button&gt;;</code></pre><h3>Despliega tu aplicación</h3><p>Para alojar tu aplicación en IPFS y compartirla con el mundo, ejecuta el siguiente comando:</p><pre class="dont-break-out text-sm md:text-base"><code>yarn deploy</code></pre><p>¡Ya está! 🥳 Este comando utiliza <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/storage"><em>Storage</em></a> para:</p><ul><li><p>Compilar para producción</p></li><li><p>Subir la compilación a IPFS</p></li><li><p>Generar una URL donde tu app esté alojada permanentemente.</p></li></ul><hr><p style="text-align: center">Comparte con nosotros tu aplicación</p><p style="text-align: center"><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es">https:  twitter.com thirdweb_es</a></p><hr><h2>¿Y ahora qué?</h2><p>¡Enhorabuena por haber llegado hasta aquí! 🎉</p><p>Ahora que has aprendido lo básico, lleva tus habilidades al siguiente nivel construyendo sobre nuestras <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates">plantillas</a>.</p><h3>Recursos adicionales</h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/"><strong>Documentación thirdweb</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/"><strong>Blog Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/guides/"><strong>Guías Oficiales</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates"><strong>Plantillas</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/thirdweb"><strong>Youtube Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes"><strong>Youtube Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://thirdweb.com/events"><strong>Eventos</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb"><strong>Discord Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://support.thirdweb.com/">Support</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb">Twitter Oficial</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es">Twitter Oficial ES</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_jp">Twitter Oficial JP</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento">Blogs y guías en Español</a></p></li></ul><p></p><hr><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p>Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb">Discord</a>, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/ZV3gUhiP?typeform-source=thirdweb.com&amp;ref=blog.thirdweb.com">ponte en contacto</a> directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.</p><p>Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!</p><div data-type="embedly" src="https://thirdweb.com/?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.&quot;,&quot;title&quot;:&quot;thirdweb: The complete web3 development framework&quot;,&quot;thumbnail_width&quot;:2400,&quot;url&quot;:&quot;https://thirdweb.com/&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdweb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1260}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdweb.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb: The complete web3 development framework</h2><p>Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.</p></div></div></a></div></div><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdweb_es</category>
            <category>documentacion-thirdweb</category>
        </item>
        <item>
            <title><![CDATA[Documentación thirdweb: Inicio y visión general]]></title>
            <link>https://paragraph.com/@samusarmiento/documentacion-thirdweb-primeros-pasos</link>
            <guid>Ryu39CqUkU4WCyFoL3TQ</guid>
            <pubDate>Fri, 02 Jun 2023 08:40:12 GMT</pubDate>
            <description><![CDATA[Primeros pasos en thirdweb. En estas guías repasaremos la documentación y cómo dar los primeros pasos con el framework ...]]></description>
            <content:encoded><![CDATA[<h1><strong>Primeros pasos en thirdweb</strong></h1><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/19ea27cc14a47f008489d1bc655b7e94.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="">documentación thirdweb en español</figcaption></figure><p>En estas guías repasaremos la documentación y cómo dar los primeros pasos con el framework más completo para el desarrollo de apps y juegos en Web 3: thirdweb. Un marco de desarrollo integral que te permite crear, lanzar y gestionar sin problemas aplicaciones y juegos web3 en cualquier blockchain compatible con EVM.</p><p>Descubre cómo crear y lanzar una aplicación web3 en tu lenguaje preferido:</p><ol><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react">React</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react-native">React Native</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/typescript">TypeScript</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/python">Python</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/go">Go</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/unity">Unity</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity">Solidity</a></p></li></ol><h2>Visión general</h2><h3>Arquitectura</h3><p>Tanto si está desarrollando aplicaciones descentralizadas desde cero o mejorando las existentes, el conjunto de herramientas de thirdweb acelera tu flujo de trabajo de desarrollo en todas las estapas: contratos inteligentes, aplicaciones e infraestructura.</p><img src="https://storage.googleapis.com/papyrus_images/616784de7ad057464391ca487d5093d6.png" alt="platform-overview" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAZCAIAAADfbbvGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFRElEQVR4nI1WW08TWxTev8U/o28mPJ9oTDARXzRInwQPkuiDiW8aNKK8SM6DUbHalkuFFArKCVehBVtop8xM577Xvsyt9dCe7G5EuZyjX3Yme39d3+yZtda3O4gQEvweGOGUcE58n/u/KQEAxBhTVZVSin8JqzPsXwdijCmlqqoSQpBhGO53OI5zND9iPM8zTVPXdVVXDdPQdU3TNFXVnA5Oq6RE/qppGjpCV1dXf39/IpHoO47BwUH0H7hz5879+/dv3ryZSCRu3brV19eXSCT6+/uvXLlyRnQ+n9/a2mq321++fCl2sLq62mg0EBJpjJpRoxnxgPOAR1EQhiGlFCE0Pz9fLpelqlAoWJZl23Y+nz9jg0wmc/v27RNkq9VCCIXNoFqt2nu21LuuWyqVGBMb5HK5np6eE6pkMnn2BlevXj0zFUAA18GrewAEPCBAKGWu6yKEpqenT8e/evXqxyKXyxmG8fHjx4WFhc3NzVqtlkqlMpnMu3fvyuXy58+fc7ncmzdvsvPZmfxMOp3OZrPvp95nMpm3b98uLi7Ozc0tLS3lcrm5ubnx8fFsNjvbwcjICMb4WP0uXLhw+lkuX76M/hcPHjw4Tfb29v5YEEJ8XxiHc+53cMxcjIVheLQMO/B933VdMYtCznkQBFEUcc4ppVEUhWHIfCbvIxoBAHZ3dx3HsfbseskyDdOsm+LagW3b5k+wLEvTtCiKgICu6+a2YGzLrlQqQRBgDHt7e3bdtnXRCOVymXMujOZ5HsbYdT3PFRPvO1xBnQTGWDpISGxXxktS13UxsRzP8TwQpGVZ6Pdx7tw5eR0ZGbl379758+cv/nHxUtelX8gAIIqiRqPBAx7GYRzHMstxHDe+CbLRiKIoCoIAIdTuACFk27bP/DAOuU/jZigDCCHfDqJmq+n7LG7GcRwLFcZYURRCCNgAAPv7+5xzwKAoCjgADlBCK5UKYwwhtLa29unTJ4SEStM06lFiC2eoqipUXMhdhQAG6tJqtSpqYFkW6wC7lBJRfQBwXdf3feoxcAhgzjnHGCOEms3m1tYWQocqsYFLwaPi7gCO61CHeiYQzMBljDKhunbt2sDAQHdv9/Do8NOnT4eHhx8OPbxxY+Dx48cvxl6M/jU6ODh49+7dE4l9/vx5KpWamkpmc9mJ2YlkMvn69euxsbHMTGZ2MTM1O5WeSX+Y/jA+Pi580GiE7Xa71WoRQhhjfuQHInuBbdtxHMT/xI2GsALnnDEm7SJPOoTQ6J+jp+v66NGjY0YzTXNldU3TVOkjTgIOnJHgaAS+sJg0kbSbrusIofX19YmJiYWFhaWlpVQqhRB68uRJT09PMpmsVquH54TnebZt7+zsLP29PDMz67ouxT42CNgUXAYe72RTevzQ55xzRVEQQoVCIZ1O5/P59fX1yclJhNCzZ8+KxeLs7KyqqkNDQ/V6HS0vLxcKBdM0V1c30unJjY2NnfKOHMVicWenM9/ZkigUCtvb28Vi8eXLlzIB169fP52i7u7uHwtKqTw0Wq2WrAQAcM4PDg62K9thGGKMRRN3IGPiOG632/K/t1bbFi9NKSFE0zRRwn/8Wm2XMQYAhmGIjiaEeJ4nfSHLEAYhxZwR7vPvjCwP57IRDMOQcYwEPj887DDG4qQjPgWfM9EmwgemadZqtTO+CxwMLpzgAMA0Tc/zDMNwHEe8FAb57HID8YHiUrCBAVMURWxQKpX29vY2Nze/fv2qqmqtA1VV9bqu1fcl8zNfqVRWVlaq1aqiKLVaTdfV/Q4URSmVSkKoq1pd1TRBViqVfwEepJb6d4KewgAAAABJRU5ErkJggg==" nextheight="1230" nextwidth="1579" class="image-node embed"><h3>Herramientas</h3><p>Las principales herramientas que nos presenta thirdweb son las siguientes:</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity"><strong>Solidity SDK</strong></a><strong>: </strong>Contratos base que pueden configurarse con extensiones para adaptarse a su caso de uso específico</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/pre-built-contracts"><strong>Explorar:</strong></a><strong> </strong>Descubre y despliega contratos de protocolos y desarrolladores de talla mundial en 1 clic</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/sdk"><strong>SDK:</strong></a> Potentes SDK para cada stack. Compatible con Javascript, TypeScript, React, Python, Go, Node.js, Unity...</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/react/react.web3button"><strong>Componentes UI:</strong></a><strong> </strong>Plug and play. Componentes de interfaz de usuario para añadir fácilmente funcionalidad web3 a tus aplicaciones.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/deploy"><strong>Despliegues:</strong></a><strong> </strong>Despliegue de contratos on-chain con un sencillo flujo de trabajo de despliegue diseñado para la colaboración en equipo.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/publish"><strong>Publicar:</strong></a><strong> </strong>Publica tus contratos para que los descubra la comunidad de más de 70.000 desarrolladores web3</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/dashboard"><strong>Panel de control:</strong></a><strong> </strong>Gestiona, analiza e interactúa cómodamente con todos los contratos desplegados desde un único lugar.</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/cli"><strong>CLI:</strong></a><strong> </strong>Un conjunto de comandos que te permiten interactuar con herramientas de thirdweb a través de la terminal.</p></li></ul><h3>Smart Contracts</h3><p>Los contratos inteligentes son los cimientos de cualquier aplicación descentralizada. Realizan auditorías de los contratos preconstruidos para garantizar el máximo nivel de calidad y seguridad. También optimizan los contratos para la eficiencia del gas, minimizando los costes de transacción. Al priorizar estas consideraciones técnicas, los desarrolladores pueden centrarse en crear aplicaciones web3 excepcionales con confianza y facilidad.</p><p>thirdweb está diseñado para integrarse con cualquier contrato en cualquier blockchain sin problemas. Con el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity">SDK de Solidity</a>, puede crear y personalizar rápidamente contratos inteligentes y, al mismo tiempo, habilitar extensiones para desbloquear más funcionalidades. Tanto si despliegas tu contrato inteligente, sin utilizar una clave privada, con el comando <code>Deploy</code><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/deploy"> CLI</a>, como si importas un contrato ya desplegado o coges un contrato preconstruido a través de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/explore">Explore</a>. Una vez desplegado, en el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/dashboard">panel de control</a>, puedes gestionar fácilmente el contrato inteligente y realizar un seguimiento de su rendimiento a través de <strong><em>Data Feeds.</em></strong></p><h3>Aplicaciones</h3><p>thirdweb ofrece <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/sdk">kits de desarrollo de software</a> (SDK) que permiten una integración perfecta con contratos inteligentes al desarrollar aplicaciones o juegos utilizando lenguajes de programación populares como React, React Native, TypeScript, Python, Go y Unity.</p><p>Los SDK detectan las extensiones o patrones y estándares comunes de Ethereum (es decir, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc20">ERC-20</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721">ERC-721</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc1155">ERC-1155</a>) utilizados en el contrato inteligente y proporcionan funcionalidad adicional para permitir construir aplicaciones con facilidad. Por ejemplo, si tu contrato utiliza la extensión <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721">ERC-721</a>, el SDK te proporcionarán un conjunto de funciones para interactuar fácilmente con los NFT de tu contrato. Además, los SDK permiten la conectividad de wallets y proporcionan conjuntos especializados de funciones para URL de llamada a procedimiento remoto (RPC) y una pasarela IPFS.</p><p>Básicamente, te permite aprovechar las capacidades de otro programa o función sin tener que tenerlo instalado en tu propia computadora y que las aplicaciones se conecten y compartan información de manera segura y eficiente.</p><p>Estas funciones optimizan el rendimiento y mejoran la experiencia de los desarrolladores a la hora de crear aplicaciones descentralizadas.</p><h3>Infraestructura</h3><p>thirdweb ofrece un conjunto completo de herramientas y tecnologías para facilitar el desarrollo de aplicaciones descentralizadas accesibles y fáciles de usar. La infraestructura incluye opciones para pagos fiat, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/wallet">integraciones de monederos</a> y relayers sin gas, proporcionando experiencias de usuario final sin fisuras.</p><p>Además, proporcionan <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/storage">soluciones de almacenamiento</a> y RPC integradas para optimizar el rendimiento y la descentralización de las aplicaciones. El indexador y <strong>Data Feeds</strong> permiten una fácil integración de los datos de su contrato en la aplicación.</p><p>El <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/auth">SDK de autenticación</a> está diseñado para permitir el inicio de sesión descentralizado y una integración perfecta con los marcos de cliente y servidor. Esta característica permite a los desarrolladores crear aplicaciones descentralizadas seguras y fáciles de usar que pueden desplegarse e integrarse fácilmente con otras aplicaciones.</p><h3>Soluciones</h3><p>Desde thirdweb se comprometen a proporcionar conjuntos de herramientas completos para desarrolladores de diversos sectores, como el de los juegos, el comercio electrónico, las finanzas, el arte y las redes sociales, entre otros. Estas soluciones incorporan una serie de herramientas y tecnologías, propias y en colaboración con líderes del sector.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/gamingkit">GamingKit</a>, desarrollado en colaboración con Coinbase, ofrece un enfoque simplificado para crear juegos basados en blockchain. Incluye contratos preconstruidos como Marketplace, Multiwrap, Packs, Tokens, etc., y un <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/unity">SDK de Unity</a> para crear tu juego. GamingKit también permite soluciones sencillas de pago en fiat a través de Coinbase Pay.</p><p>Del mismo modo, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/commercekit">CommerceKit</a>, desarrollado en colaboración con Shopify, permite la creación de tiendas basadas en blockchain que pueden recompensar a los clientes con activos digitales. El kit de herramientas incluye funciones para habilitar el comercio basado en tokens, programas de fidelización y herramientas de configuración sencilla para ventas de coleccionables digitales/tasas de regalías.</p><p>La solución de <strong>Mint</strong> permite una mecánica de <em>minteo</em> creativa y la gestión de activos digitales creados tanto en los contratos EVM como en los programas de Solana. Incluye herramientas para la acuñación basada en firmas, la liberación de colecciones de NFT únicos, envolver fichas en nuevos NFT envueltos, cajas de botín aleatorias y mucho más.</p><p>Además ofrecen un conjunto de herramientas para desarrolladores y SDKs que facilitan la integración de las funciones de web3 en <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/mobile">aplicaciones iOS y Android.</a></p><h3>Recursos adicionales</h3><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/"><strong>Documentación thirdweb</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://blog.thirdweb.com/"><strong>Blog Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://blog.thirdweb.com/guides/"><strong>Guías Oficiales</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates"><strong>Plantillas</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/thirdweb"><strong>Youtube Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes"><strong>Youtube Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/events"><strong>Eventos</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb"><strong>Discord Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://support.thirdweb.com/">Support</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://twitter.com/thirdweb">Twitter Oficial</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es">Twitter Oficial ES</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://twitter.com/thirdweb_jp">Twitter Oficial JP</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento">Blogs y guías en Español</a></p></li></ul><p></p><hr><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p>Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb?ref=blog.thirdweb.com">Discord</a>, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/ZV3gUhiP?typeform-source=thirdweb.com&amp;ref=blog.thirdweb.com">ponte en contacto</a> directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.</p><p>Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!</p><div data-type="embedly" src="https://thirdweb.com/?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.&quot;,&quot;title&quot;:&quot;thirdweb: The complete web3 development framework&quot;,&quot;thumbnail_width&quot;:2400,&quot;url&quot;:&quot;https://thirdweb.com/&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdweb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1260}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdweb.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb: The complete web3 development framework</h2><p>Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.</p></div></div></a></div></div><p><br></p><p></p><p></p><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdwebes</category>
            <category>documentacion-thirdweb</category>
        </item>
        <item>
            <title><![CDATA[Documentación thirdweb: Panel de control]]></title>
            <link>https://paragraph.com/@samusarmiento/thirdweb-panel-de-control</link>
            <guid>wAmF8uxh80mXJe8HTx61</guid>
            <pubDate>Wed, 07 Jun 2023 10:28:47 GMT</pubDate>
            <description><![CDATA[Mediante el panel de control de thirdweb puedes desplegar, interactuar y gestionar sus contratos, configurar el almacenamiento...]]></description>
            <content:encoded><![CDATA[<h1>Panel de control</h1><h2>Visión General</h2><p>Mediante el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/dashboard">panel de control</a> puedes desplegar, interactuar y gestionar sus contratos, configurar el almacenamiento, las RPC, los monederos y mucho más.</p><p>El panel de control te permite desplegar o importar cualquier contrato en una red compatible con EVM y gestionar la configuración.</p><p>Algunas acciones habilitadas a través del cuadro de mandos</p><ul><li><p>Actualización de los metadatos del contrato</p></li><li><p>Carga de NFT individuales o por lotes</p></li><li><p>Transferencia, grabación o airdrops de NFT</p></li><li><p>Establecer condiciones de reclamación (en contratos que implementan las extensiones <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721claimable">Claimable</a>, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/drop">Drop</a> o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/dropsinglephase">DropSinglePhase</a>)</p></li><li><p>Gestionar los permisos de los contratos (en los contratos que implementan la extensión <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/permissions">Permissions</a>)</p></li></ul><blockquote><p><strong>Guía relacionada</strong></p><div data-type="embedly" src="https://paragraph.xyz/@samusarmiento/thirdweb-solidity-sdk" data="{&quot;provider_url&quot;:&quot;https://paragraph.xyz&quot;,&quot;description&quot;:&quot;thirdweb Solidity SDK proporciona las herramientas necesarias para construir contratos inteligentes personalizados de manera eficiente, ofreciendo un conjunto de contratos base pre-construidos y un conjunto de componentes reutilizables, o extensiones, que se pueden integrar en sus propios contratos inteligentes. Los contratos base son contratos inteligentes prediseñados sobre los que se puede construir o modificar, como el contrato ERC721Base.&quot;,&quot;title&quot;:&quot;Documentación thirdweb: Solidity SDK&quot;,&quot;mean_alpha&quot;:0.682038834951,&quot;thumbnail_width&quot;:640,&quot;url&quot;:&quot;https://paragraph.xyz/@samusarmiento/thirdweb-solidity-sdk&quot;,&quot;thumbnail_url&quot;:&quot;https://paragraph.xyz/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fpapyrus_images%2Faaf9ecf13a6f6c9e4ae274b2f78dc42a.png&amp;w=640&amp;q=75&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;Paragraph&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:412}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://paragraph.xyz/@samusarmiento/thirdweb-solidity-sdk" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://paragraph.xyz/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fpapyrus_images%2Faaf9ecf13a6f6c9e4ae274b2f78dc42a.png&amp;w=640&amp;q=75" class="false"><div class="twitter-summary-card-text"><span>https://paragraph.xyz</span><h2>Documentación thirdweb: Solidity SDK</h2><p>thirdweb Solidity SDK proporciona las herramientas necesarias para construir contratos inteligentes personalizados de manera eficiente, ofreciendo un conjunto de contratos base pre-construidos y un conjunto de componentes reutilizables, o extensiones, que se pueden integrar en sus propios contratos inteligentes. Los contratos base son contratos inteligentes prediseñados sobre los que se puede construir o modificar, como el contrato ERC721Base.</p></div></div></a></div></div></blockquote><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>Biblioteca de código abierto</strong></p><p>El panel de control es de código abierto. Puedes consultar el código fuente y contribuir a él en GitHub.</p><div data-type="embedly" src="https://github.com/thirdweb-dev/dashboard" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;This repo contains the full source for all of thirdweb.com and the thirdweb dashboard. Some env vars can be overridden that are required for some external services to work. You can find them in the .env.example file at the root level of the project including some descriptions of what they are used for.&quot;,&quot;title&quot;:&quot;GitHub - thirdweb-dev/dashboard: thirdweb.com and the thirdweb dashboard&quot;,&quot;url&quot;:&quot;https://github.com/thirdweb-dev/dashboard&quot;,&quot;author_name&quot;:&quot;thirdweb-dev&quot;,&quot;thumbnail_width&quot;:1200,&quot;thumbnail_url&quot;:&quot;https://opengraph.githubassets.com/4d4512bcd3bfe2754aa891786dc683e4925dd209a3f42ebaa363eef3d8af3fc2/thirdweb-dev/dashboard&quot;,&quot;author_url&quot;:&quot;https://github.com/thirdweb-dev&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://github.com/thirdweb-dev/dashboard" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://opengraph.githubassets.com/4d4512bcd3bfe2754aa891786dc683e4925dd209a3f42ebaa363eef3d8af3fc2/thirdweb-dev/dashboard" class="false"><div class="twitter-summary-card-text"><span>https://github.com</span><h2>GitHub - thirdweb-dev/dashboard: thirdweb.com and the thirdweb dashboard</h2><p>This repo contains the full source for all of thirdweb.com and the thirdweb dashboard. Some env vars can be overridden that are required for some external services to work. You can find them in the .env.example file at the root level of the project including some descriptions of what they are used for.</p></div></div></a></div></div></div></div></div></div><img src="https://storage.googleapis.com/papyrus_images/1e7c83f615c9adbb09c497dff2919e96.png" alt="dashboard-overview" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAIAAAAUMWhjAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD0ElEQVR4nKWVW0/jRhTH/VWQ+CR8Hl6QeImAJ954QigSL0HtQ7ZhgzciybZQWFkqDUmEhEAkQEBuEiuXsWfGc/XYkapVqrFDCMuWsO1PI9tzfGbOXP46xyCEKKWCd6BCFUZKheo9/okPY8yglEIIwzdRSkVRSF0OHeYDzmkQW+cMwRhTSg2Msed5ch5BEAgmGOWcCSHmO0spEUIYY+Py8vL29rbxxM0TzWZzamk2mzc3N7cxd3eN6a9/4/r6utHQbhcXF8bbrK+vGz/O0tLSd6y7u7vpdHplZeXg4KBUKqVSqdXV1Ww2u729vby8nM/ny+XyxsbG5ubm/v7+dFS73U6OpdvtTo3pdPp5XhYjpXScv4QYJt6ccynlaDRqt9uUUiFEGIaEECllGIa2bUMIGWMQwtklcpczxjjntm0jhBhjrutqFWGMpQg4DQQPCCGMMUIIQmiqOUIIjYEQxhrUKuQxhmEAAJIAQoh4rVrQKlTJqEkA3OODB4qBpJQyxnzfxxgTwHBfcPwcACGEuhT3he9KzvQuDcMYj8dJACklYwx3qD8UBMhJAM/zGGcYYgh8QvTsrusCAJJ9kNjphdEnumk7QwjNBkiOhVJKiG6MMc/zjJ2dHdM0PxY/fv79c6FQME0zk8mk02nTNHO5XKFQyOfzBwcHe3t7iWculyuVSp9iMpnM7B1ks9lcIffh04fib0XTNPP5/IvbPjo6qlQq9Xq9Wq1alpU8Lcuq1Wr1ev38/NyyrNPT01qtdnZ29rZMj4+PjXeyuLho/AipVMowjGKxuLW1NTElyW4coy821qIaKRWpKAowhkEgdHpTapoJREzy8d0wxWJxbW1t0mGMAQD+OPvz8fExmSgIAu5LTmPhMt2S70BqdU59EEKJTOcE4Jy7rvtLLn/65Uux9GulUomiyO9zCiQBkiItU4p0U0EYRVGUPMLQ9/137aDX6yGEvn79ewjATz9nT05OMMYII90Qggjq17T7hO4gNBgM5gf4L2lrHoeHh88BxjOUy2VK6ayl0WiM32R2XtM0HcfhnFuWdXd312w2Hx4e5qxlYWHB+J8kiZMx9k1RlUpGIyWkeF2EldLV8rVMhRCJg5BaxEopXZMRQv1+HwAgXkFcxrFk/kT4z3ZCAACe5yU1YDQaTdbKtCClCCgUKlCDwYAQYkAIh8PhN/l5kqVdzqBkWNfYWZLcByHUJXcm2XHOPc8LpGJYqkABAHQ2bbVatm03Go2rqyvHcToz9AYdp+c4vRfGTqfjxFSr1fv7+9kjsm270+l0u12n57Tb7U6n02q1/gFuW661RmHRkQAAAABJRU5ErkJggg==" nextheight="972" nextwidth="1286" class="image-node embed"><p></p><h2>Desbloqueo de las funciones del panel de control</h2><p>Todos los contratos vienen con un conjunto de vistas por defecto, incluyendo:</p><ul><li><p><em>Build</em></p></li><li><p><em>Explorer</em></p></li><li><p><em>Events</em></p></li><li><p><em>Settings</em></p></li><li><p><em>Sources</em></p></li></ul><p>Por cada contrato que despliegues utilizando el <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/dashboard">panel de control</a>, el CLI o la importación, desbloquearás funciones en el panel de control para cada extensión que haya implementado en el contrato.</p><p></p><h2><em>Build</em></h2><p>La vista de <em>Build</em> proporciona fragmentos de código para interactuar con tu contrato utilizando SDKs de terceros. Los fragmentos de código se generan automáticamente en función de las funciones de lectura/escritura del contrato y las extensiones compatibles.</p><h3>Lenguajes</h3><p>Build proporciona fragmentos de código en todos los SDK de terceros proporcionados: TypeScript, React, React Native, Python, Go y Unity.</p><p>Para cambiar los fragmentos de código, selecciona un idioma en el menú desplegable de la página Build (arriba a la derecha).</p><img src="https://storage.googleapis.com/papyrus_images/72dc19075d5618b573b4c4a580ef8d40.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADcElEQVR4nJ1UX2/aVhyNIlU0a90MSAzX4OtiaiDXKoZgjMEOpJEaIDhm/EkKMV2ASoRtTTa1TE0iqk7a+x42MmUfYeukplFfJu0xUqW97GP0Ye+btlVqRW/kUkioVOnIsn7yPcfnnHvvRKFU0VYL/rkg50Mzsw6CmLZa7RbLlCTFf/n514ODw17vRwgZi2WKIKbHAwBXOBwJhyMkecpDENMTv/1+cq/zYJZ0Il6w2WZNAVVNnpw8Pzo6Pjo6Noyam2YAcFEUjZ8k6bBa7SYwI+KDBweHul5Q1aQkxfFwott99Pjpsy93dz0sN6gMIVMqV+uNVmvr83udB83mFn7frDdb7btCSPSwHOdDnA95WE4IiRCyAFCqmmRZL5Y8dbC79/C773vyQnIwIoKYZtlr2YyWzWjF8vpyOru2ti5JcQBoF0W7KDcDr0LIOAHlBBRJOt00Y7XafShSNTZ1PY8jxeYmqpufxWIJD8shPjgo4KY9ae1Ws7nV7T4qlauVjVplo6YupleyOT2naSu5uKxwPoT4fnlRSYWQ4UNqvdGWY4l3Otje6dzv7Pl8/JADAFzlWuurva4oKygoRhMpMSqHwxEvF8B4wy7g3YF4gSQdKKTUG+39/W5kXsQ8fQeIF6JSHPHCkABJOm7cTP/07Pjbw8Nac0srVLTVfHIhhXhhBEHEhwGgOCRuGI31tQpmOHWAixoVcNNMVIrPy4l5ORFA1ymKpqGXhl4P6x+Ffy7ocDiD4uL2Tscwaix7zW6bwVR9BxgjAp5Pbt3ZffhNr/dDvdFa1deW09liqbySzeVzurbSr8GEoqRI0sFywaqxmclk+TeJvRU40wFJOrxc4HpITCgLipJS1UUxKqduLMmxhCIrQxBCot02E4wu3f96PzIfmZy8gAvoR3SewFXWXypXA36EP8Un2WK5dOnylVEQxMcEcYXzoWJ5XZJiEDLvlDwqYLFM5fPFf/9/9c/f/718+erJk6dTFz8aPLpnwm6bAcAFIWPmMy6igB+123cxDOM2AC5zzZkAgBq8l8yNNK6D/tnhBZ4XwuHIoOsh4PngX5vDMRFdXM7kn//xpyTFJicv4ALwsjEY5DVxbgfFUvnFi79u1z7Fbt5bwJCD9wjgy67RuPPF9s7S0k1dL4yJCLOfV9K5AhAymUzW758z7X+Yg9dEMxRhyLBlTAAAAABJRU5ErkJggg==" nextheight="933" nextwidth="1698" class="image-node embed"><p></p><h2><em>Explorer</em></h2><p><em>Explorer</em> o el Explorador de Contratos es una herramienta que permite a cualquiera ver y llamar fácilmente (dependiendo de los permisos) a todas las funciones del contrato inteligente desde su monedero conectado a través del panel de control. Esta herramienta también ayuda a los desarrolladores a probar las llamadas a funciones en su contrato sin necesidad de utilizar un script o una herramienta CLI.</p><img src="https://storage.googleapis.com/papyrus_images/dc1eddda243ba93493a1a1b5b4da2533.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAUCAIAAABj86gYAAAACXBIWXMAAA7DAAAOwwHHb6hkAAACiElEQVR4nK2Vz2/TMBTHPVK3L15dzyKkTZoa0zQtWWhpx7YoyyKViVAmmPh56w2JG0eOO09IQ9plEmf+DE6cuHPgv+EwlLpknaZuZWr0VeQklj/v+579ggCIphUxBildAIIxYAwVxluupx4No2bbdcOosgq/XbUazaZZrQGQBYUAiOPc7XT8KIobjrDtOqXMNK2HvQFjHIAEwSDde9rrb1i1ei8KX34YbyQ7BQ3n0VxWsTT9lAE0Dbtuy/cDjIFSRikjhE5sYTWw7Xp5lWIMOlktYVhBGsZACL1ajHHOjWKJIIQKnY4fx0mtZmkazqPIAzRNKwyjIOgJIaV0lYSQ86QmNO+5hlHFGDIHjiN24l3LshEqqKVzYQxCSBXLIhnPVkQFtY7KcOag2x28fvPW99c9r80Yn2VgDLZd3+hv3RXStuuOI66QaVppOjo9/frl+OTo6LPvBxlMOdjc3G63O4qZA9SgTJlhVDk3GONr/M48qQlWzXoQrHtuU4pGhdKsBqrIBwevomgnXzS/6/8KPm/DzO4chFDv8fvx4Y9vv85+/jkbjo8RQucOut1BEPQoZRcdlCdjfZECFDStcX93+8Wn8eH3jye/ve132soE4Lqt0ehZHCdpOmKMa5M9PgvAFys/r7wAZAWdX7cQ0gnNAELIJBlubYXd7vRwzSSqvCAgn6+Tir66lmmS3qmDvb0nSTJMkmEYRqaZHYgbAOCSoSlASjdNR1K6qucQkp3bZQKEkHGc9PuPwjDyvHZe56UB3FZ7f/95mo7iOEmSoZTuMlOEJ93G9wPPa3NuzH5eDgCmDURTDSTvdMsEwEWVivplBxhnL/9L5ym6NoobOMiFAMrX/j1uLIDyX/5NfZ7HA62BAAAAAElFTkSuQmCC" nextheight="764" nextwidth="1222" class="image-node embed"><h3>Funciones de escritura</h3><p>Las funciones de escritura modifican el estado de la blockchain a través del contrato. Por lo tanto, las funciones de escritura requieren tasas de gas para ejecutarse, ya que están actualizando el estado de la blockchain.</p><h3>Funciones de lectura</h3><p>Las funciones de lectura leen el estado de la cadena de bloques. Las funciones de lectura no modifican ningún dato, por lo que no requieren tasas de gas para ejecutarse.</p><p></p><h2><em>Events</em></h2><p>En la vista <em>Events</em>, puedes ver una lista actualizada de todas las transacciones emitidas en el contrato y su correspondiente número de bloque y hash. Los desplegables ofrecen una vista detallada de los datos del evento.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/14ac476d15376ec3cc05129b8891d692.png" class="image-node embed"><figcaption htmlattributes="[object Object]" class="hide-figcaption"></figcaption></figure><p></p><h2><em>Settings</em></h2><p>En la vista de configuración, puedes cambiar los campos que configuraste inicialmente al desplegar el contrato por primera vez, como Metadatos, Ventas principales, <em>Royalties </em>y <em>Fees </em>de plataforma.</p><h3>Metadatos</h3><p>Los metadatos se refieren a los metadatos del contrato que aparecen en la cadena de bloques o en páginas como la de la colección OpenSea. Para cambiar los metadatos, introduce una imagen, un nombre y una descripción en los campos y haz clic en "<em>Update Metadata</em>". Esto provocará una transacción en tu monedero.</p><img src="https://storage.googleapis.com/papyrus_images/8333823ef58a9847e8c97a3d07e6b7bd.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAMCAIAAACMdijuAAAACXBIWXMAAA7DAAAOwwHHb6hkAAACFUlEQVR4nJ3SQWsTQRQH8L2EMm42u222mUx20p3kZafrZF1KlCJLuoSoDVSIUhGEQmMpUqEoxbvowVIDJtCgBRu1iKAXPSmoeBFPXj148EsUvQi1SCS7kEuDboUfj2F48J83PElRVITkWAwhJMvxhKqNKYqqKFpQ1QPnQ5PkeIJSkzGg1NS0sVhsJMgbOUiOJ/4nQJKkjbv39vb3v+/+aLc2McaEGIwBgBWmAhTCF2jaKELyoQNisRHfr6ysXAWwSqUTQjiNxpLvVwCsojjGuV0qHefcFsJRFDWcL7pBwKn5+Yu6ngp+KdloXF5buzE9fXLCzIdD9Gs2B2BxbgNYUXBuY5zuByiKSojhulPV6mnPK7vulBDO8vKV2dkaxmlKzQFCjDAsIl1P9QMQUhgD36+srl6bm6tzbi8sLHa7j+v1c0I4nNshIRwhHAAL43REWrCQ/S1iDKrVWr1+oVY7ax8tel653dpsNls3b91uNttbW91O58HD7SdPnz1fX9/wvHJ5puJ5M3/n+xXGQI4nJIRkQjKTnOcYKwDkJswMITnGspSGaMYIa4aQLKUFgCgmOU9jjNARKakTPUWJKTKmIIGMKWjeHYqYxbAnCpp3x4kplc9cWrzeuf9yd+f97+6bvaEeBXXn3a8PX3tvv/Q+fuu9+twb3A+1/frni0+980t3JFVLjmMDG3lswD+laWEgSv9oMv0HI3zVauTSJLsAAAAASUVORK5CYII=" nextheight="431" nextwidth="1166" class="image-node embed"><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>INFO</strong></p><p>Los metadatos de los símbolos no pueden modificarse una vez desplegado el contrato.</p></div></div></div></div><h3>Ventas primarias</h3><p>Las Ventas Primarias son los ingresos recibidos en la venta inicial de activos. Para cambiar los cánones, introduce una dirección en los campos y haga clic en <em>"Update Primary Sale Settings</em>". Esto provocará una transacción en tu monedero.</p><img src="https://storage.googleapis.com/papyrus_images/d10f111b092525ffe2bd66d952e2839f.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAAA7DAAAOwwHHb6hkAAABnUlEQVR4nGMQFhFjZ+digAEeHj4RETH8SEBAWEBAiAgEUsbAxsYZFBR67tyl9es3fP/x29HRhYEBJMjGxg4mOSGIkZEVwmBh5eDh4SMSgSzg4eEzMjJpaGgqLCjq6elLTk53dHTx8fH38fF3dHRxd/eEIB8ffxcnV4iIiIgYCRZwcfPa2TrOm7egrr6xqbFZQkJSQEAIHA4o/pWWlpWXV4SQxIUPFIF8oKOjd+bsxddvPz199ubM2YuHD504dvw0hHHixJkDh47fvn0vIiLWyMjU2sbeytrWxsbB3tHZxsYBD3JyclNQUAFZwMvDy8HOLiEmKi0pIS0poaokD0HqKopwtqaqsoigACc7Kxc7Gxc7Gyc7KwTx8XDgQgK83MwMDBzs7AxKagbeoVmZFfPrJuyt6NqKFZW2bmqeemDKsrMTF57qW3Bi4sJTU5ad7VtwomHiXlyofsKe7jlnHLziGdS0zVMLOztnn1i89fX8zc8w0cItz+esf7x815sj1/4fvApCh679P3INRC7c8hyrlvmbn81e92DV/q+uAWkA3IHbd58svYgAAAAASUVORK5CYII=" nextheight="290" nextwidth="1176" class="image-node embed"><h3><em>Royalties</em></h3><p>Los <em>Royalties</em> se perciben por las ventas secundarias de activos. Para cambiar el porcentaje, introduce una dirección y el porcentaje correspondiente en los campos y haga clic en <em>"Update Royalty Settings"</em>. Esto provocará una transacción en tu monedero.</p><img src="https://storage.googleapis.com/papyrus_images/c9ac3a045fd2dc26f608b378e0c7213f.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAByElEQVR4nGMQEBDi4eFjYGBkZGTl4eEXFhETEBCiImJgY+MMCgr9/Pn758/fzcwsGBgYeHj42Ng4iUc8PHwQBDcUWQRknIqKWmVldXJyuru7p7u7h72jM5jh6ejoAkH2js4+Pv4Qto2NHVwKzPYQERGDGIdmH9QCLm5eGxuHbdt2zpu3YNWqNTo6eiIiYtLSshISkshIXl5RXl5RWlpWWloWwpaXV4CwRcChKiIi1tHevXT5Kj1dfWTfMPALCCooqKxZt+XGrbuXrly/cevu+fNXzpy9eOPW3RMnzt24dffcuUtPn71KS800MjK1sXGwsrZFRubm1jY2Dk5ObgoKKi2tnUuWrDA3tzY3t87NLTAyMuHh4Wfg4+XnYOcQFhSAIHFRYWxIRFiQn5eHm4uDA474eXkE+HgF+HghDC52NgiDj4dLgI9XWFCAk52Vg52dQUlN3ycsO7Nibsu0w3UTduNGeycuPDVn7eXZay7NXnNpztrLfQtO1E3Y2zARipqnHoSzGyburZuwu3P2qYCYcpAFMekNLdMOLd76ev7mZ7jQnPWPNx39fPDq/4NX/++58Ofg1f9rD3yYs/4xLvWz1z1Ytf9rRFozAFDN4vmNLOKVAAAAAElFTkSuQmCC" nextheight="301" nextwidth="1173" class="image-node embed"><h3><em>Fees</em> de la plataforma</h3><p>Las comisiones de la plataforma son las comisiones percibidas por una plataforma. Suelen utilizarse si estás desplegando este contrato para un tercero y quieres cobrar tasas por los servicios. Para cambiar las comisiones de plataforma, introduce una dirección y el porcentaje correspondiente en los campos y haga clic en "Update Platform Fee Settings". Esto provocará una transacción en tu monedero.</p><img src="https://storage.googleapis.com/papyrus_images/cbb4d7904624fa4be4ea26383070c58e.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAICAIAAAAX52r4AAAACXBIWXMAAA7DAAAOwwHHb6hkAAABzklEQVR4nGMQERHj5uZjAANGRlYhYVERETFcSEBAkEQkDDI0Pj7p67dv+/YdWLt2PRsbBxMTGxsbB1bEzc3Hy8PHzY0dwc1FFmHg5ubT1zeqrKxNSclITc309vJxcXHz9PR2c3UHM7wgXE9PbxcXN3FxCVymc3PzMTKyMjAwsLFxwO0AWcDGxuHvHzJx4pTmlrbW1nZYOAijeVZKSkZOTgFPKImLS+bnF86dv0hLSxdiNMIHxiZm585fefrs1f0HT/btO7Jtx95Dh4+fOnV+374j+/YdOnTkxKlT5+Pjk4xNzGztHDGRja2Dvb2Turp2Z1ff2rWbbO0cTU0tkpLTraxsubj5GHh5eFmYmMRFhaUkRKUkRBVkpEBITlpZQRaZLcDLzcbEwMbMhIy4OVjhiJWJgZ+HA6KMm4NVWICXi4WRhYmRQUPP2ic8P6dueU3fnorO7XBU3rm1vHMrhFHWsbVpyoFJi8/0zT/VN/9Uz/yTEHbDlAO1/XshCMzeXd23Gyayu2P22aiMdgZdY/v4nNb2WSdmrL4/ddUdTDRj9d3Jy27N2/ho99nv209/3X7666ajH3df+LHz9LcZq+9i1TJ11Z1JS68v2PY6NqcbAIJH2SICwOhrAAAAAElFTkSuQmCC" nextheight="291" nextwidth="1165" class="image-node embed"><p></p><h2><em>Sources</em></h2><p>En la vista de fuentes, puedes comprobar el código fuente compilado de tu contrato y verificarlo en sitios como Etherscan.</p><img src="https://storage.googleapis.com/papyrus_images/41544c57ce3806c88d3cecbc9c5baf79.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAIAAAAK4lpAAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAB6klEQVR4nK2T726bMBTFvYg/Tl1qnARKQhpKMRBKkEcRCSJEVbZ1i7aslVpF2udqD1Ht8brnqjYVb5S1W5KtQ+cTXO7vnnts0O1Z3W5fJZpKNElqSlJTEGSElGleZFkeDE9exgksX/KvfxIAQppOrq8/n59fQIiqeuD5I9t2dxWiEk0Q5EqU+mEYHRxYum4gpPAf6gWVRKkJIQIA3Nx8ubv7dnv7VVFwVQ8c6nvHkd4zMe7UJ8KYKAqWpGajIYprZ5dKwC5WAXgByqduFxyHLCtm5qGtKO1qRRCiYDjSdQMA0GiI67sLgrzX6vRdZ+BSJwyMfv8XgB+NbdtF6GFFfGpK/Twv8nwaRQwhZT2jkgwRL64WCAYWPbTdVnufh1wBGIsXiw/z+RvD6G1MuC6+2IeQNb3bMwdPANKRQ8fjbJJPbfuoLN3ZElA5+AFQibaH248AAIhJkl5drZbLj7puPMtBq73PVQcIgmxZdhwnjMWEdHjs8nZ67IC3fprBSZKuVp8uL1eOQyHceZaD3wI8L0iSlLE4TcemeX/yIERlEhu0rYMoYq/mbxeL96/P3vn+8Cfg/zkYRez0dF4UsyAIMSYbL/PfAiTPC7JJXhQz3wswJvwSbep+H9W2K4rjZLm8YCym1OcH6d8cfAePVFhuSSe6mAAAAABJRU5ErkJggg==" nextheight="882" nextwidth="1841" class="image-node embed"><h3>Verificación de contratos</h3><p>Todos los contratos desplegados en las siguientes cadenas se verificarán automáticamente a través de thirdweb:</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/ethereum">Ethereum</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/goerli">Goerli</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/polygon">Polygon</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/mumbai">Mumbai</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/arbitrum">Arbitrum One</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/arbitrum-goerli">Arbitrum Goerli</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/optimism">Optimism</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/optimism-goerli">Optimism Goerli Testnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/binance">Binance SmartChain</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/binance-testnet">Binance SmartChain Testnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/fantom">Fantom Opera</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/fantom-testnet">Fantom Testnet</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/avalanche">Avalanche C Chain</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://thirdweb.com/avalanche-fuji">Avalanche Fuji Testnet</a></p></li></ul><p></p><h2>NFTs</h2><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>INFO</strong></p><p>Esta función está disponible en los contratos que aplican la extensión <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc721">erc-721</a> o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://portal.thirdweb.com/solidity/extensions/erc1155">erc-1155</a> (o el estándar del sector).</p></div></div></div></div><h3>Reclamar</h3><p>Para reclamar un NFT directamente en tu contrato, sigue estos pasos:</p><ol><li><p>Haga clic en el botón <code>Claim</code> en la vista NFT.</p></li><li><p>Pega la dirección para reclamar los NFT y el número de NFT.</p></li><li><p>Haga clic en el botón <code>Claim</code> NFT.</p></li></ol><h3>Subida única</h3><p>La carga única de NFTs es el método preferido para cargar NFTs puntuales o pequeñas cantidades de NFTs.</p><p>Sigue estos pasos para cargar un solo NFT a tu contrato.</p><ol><li><p>Para cargar un único NFT, ve a la vista de NFT y haga clic en el botón <code>Single Upload</code>.</p></li><li><p>Rellena los campos de metadatos NFT correspondientes, incluyendo <strong>Nombre</strong>, <strong>Media</strong> y <strong>Descripción</strong> en el modal.</p></li><li><p>(Opcional) Añade propiedades o rasgos para la NFT.</p></li><li><p>(Opcional) Configura opciones avanzadas de metadatos como <strong>Color de fondo</strong> y <strong>URL</strong> externa.</p></li><li><p>Haz clic en el botón <code>Lazy Mint</code> cuando esté listo para <em>mintear</em>. Esta acción provocará una transacción en tu monedero.</p><img src="https://storage.googleapis.com/papyrus_images/28ef29dd100c9428560588d9109f00b8.png" alt="" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAgCAIAAACZ9R/cAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADUElEQVR4nJWVXWvTYBTHY0mX7GmTNMmaPmnS5vXJkvQt6zZn173odFO3wdQhgnYyUMQOqujFFLwRv4IX4rXgxcAbFbzajX4Ob9Vrr4Vp+nRZ7TbN4EegeXr+Oeefc04IlhN1A0GoKKphWo6iGkmKoUEmDgkSBGMTxNzcwrfvP968ebuz8+79h4937t5LkCCmRJJiUgxPsJwIoSJmIS9IWBifxQH/k/D8arvdaW91brU2eEGKX0UEkWJ4XpByubyYhScN7knYyF1fv6EqxfgWDEqIWVit1W3kmpaDrzGxkasbKJSgQYblRDELpZwsZmGElJP/C66dQI575+49RTX6C4n5RjBhIZ5fNS1HN1B0PVGDEbwg4cLsfTts5BY0K0mlKYo93AVHS+Bgx/E9v6obyEauohpDaZFm+gD8cXkdSEw1Zs5fuDTqlroSRUH1i7VlNLtpNW4Wa8uAg/+RsJFbHz9dHz9drgQ4C5rJAg5GRFkcFjqQ0A2EvXQcv8+LNIai2P73dYSdZpdIRc5rCTJ93GgNqISTalphpOdXSpXaqFvy/KrnV23kOo4fUa4Enl/tZneoEDmvTU41pmfOWtYoy4m8ILGcGDHwM8XwR7RWQbMWl5ZXltc8v4I7nRek4+ifAEyvkIJmKaqhG6GR2NqYmJbTs3PULZ00GDvVk6BBJsXwKYaPOZ3RjDLdqkOJgmZdvLSyuHRZyskEQSZIMABxihq8Q5BBuda6ut4YnwJ45UxMzdQnmwXDEUb+WhnYQgiVgVXCC5KuWUElyMtqmMXQ0BDScmWke7ZaVBW7zxTTcgqaNTt/LhibiIa4Z4RbMm13pLv0Ceg0rz7Zvfns063nX1DjRpIk08wIdifF8FEjRncGjsK+sJubO1/3dn/uff61N7fxkiCIJMWdbGvRwymO4RIkIEkgCFlcKm7E/r48jrAQ03I6nUcbG5ut1u32Vqfd7jx4+PjcwlKCBCwnRGlj0QGknBx+ENPMCIQKRsrJECpyXsNn3ecILCcmKSZBgv1ILsVwyeEQGrA0YAl8fJj+6a6PTy4uXdYNO+820eRafXV75f7r1fuvpq+/SA4LYXf++9tNg0y5EjRn5+W8Bs2g4J91mq3pa0/PXNkun2//kfgNsNrRfXcq9K8AAAAASUVORK5CYII=" nextheight="911" nextwidth="635" class="image-node embed"></li></ol><hr><h3><strong>Subida por lotes</strong></h3><p>La carga por lotes de NFT es una opción preferente para los NFT y los metadatos correspondientes que deban cargarse en bloque. Actualmente solo está disponible para los contratos que tienen la extensión Drop o Drop1155.</p><p><strong>CSV</strong></p><ol><li><p>Haz clic en el botón <code>Batch Upload</code> en la vista NFTs del panel de control.</p></li><li><p>Descarga el archivo CSV de muestra (recomendado) o JSON, que contiene un ejemplo de la estructura esperada.</p><img src="https://storage.googleapis.com/papyrus_images/428b2506378d4edf8f39ab41b57cfd07.png" alt="Screenshot of NFT view" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAAAsTAAALEwEAmpwYAAADSUlEQVR4nLWU708ScRzH+Qf6A861tfXE4OJODkKzdKv5oOetWs/N1ZQFwbljJYzDOkIFfxxOQ1K8RMGBBOu0nSirgxQLlTKd5Y9yas4fq7k2tx5U8q2LrFz24/baZ5/77r7v1z7f73YiryY4ymyEyZlIzQLPrEbdyx3GUfricH0x31ASqy/mBRpKYvTF4V24pUoCnKrxdt0z5+XHujMu0YUzRl/VWMA2cacy0WKIVqmCzqsDnutPGvH+RrzfoY2AphHvb9DcLz97W3va+VP059wtV3mGHPFXP4s0v3jUtXnPMXPpvFkEQZDk8OFMkJwcGEUPwZJDMAyjiDxXKYDK5ahcjikUoPkeTEiAUQRGEWVe3oGDB0RZWfthOAeGc1BUIcOUoJJmq8cbbGvroh0ulaocUFqGqzVEaZm2tEyr1hACKlW5Dq8oLdPKsFwUVQiIJUhW1v5tgViCSBFMimAyTCnDjkgRRUtrx/KbtzOzi4mRlK2uSYCy2H2+UE8PW1lZZTDeMJGUiaRIs5XQm9QaQoblghCh/kSQrrlqDeFq7Wx2drhaO/0BFhAKc03OdqYrPDg0eZeNd/r7A2z8fnTU52cpiz0t+BadrrJfCZSE3hQKc0K0P8B6vEF/gKUdLi7Cv5hd4iL8UCI1lEjF4snESMrjDe5ZAEI93qCb6QYNELC9A2vrm2zvwDZ9g2zvQCjMuZnuvQoMoTDH9g2Gwtzc3HIsngSvYIKp6fkmZztlsd+spm21jTer6mmH608E0QfDXISPxZNchAf99gRpa5e3BwznZnxupttgpP7ZEYXC3Nr6+5WVd3NzS1PT88mx56Njk7F4ktCb/kTgz7jnL3fQN7i19fHl7PL4xKuXrzeGEqmp6fmp6dcmkvorgSdjgs3ND/MLq5MzqyNPF/nEpJvptlqqdXjF7woUR46qNQRlsZNmayaUxW4w3iDNVtrhaqi/VVPbXEHW1tKMnXbbHN7d7gCk7xAQepMOr9jBjkUtrrfV1AXZh9HU1hX8Gtgu8O1XkbkKKCgsOnHy1O9QUFiUl388P/9YQWHRjznbAgiC0kckE0sQGEZhGBVLELFEmp0NiyXS3fn6DQK2ZCaABoIgkUgk2vffns/pnwDHmqEKCTG+qQAAAABJRU5ErkJggg==" nextheight="1167" nextwidth="2032" class="image-node embed"></li></ol><ol start="3"><li><p>Después de la descarga, abre la hoja en un editor CSV. Puedes utilizar Microsoft Excel, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.google.com/sheets/about/">Google Sheets</a> o cualquier otro software o editor de texto que admita la edición de archivos CSV.</p></li></ol><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>CONSEJO</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.google.com/sheets/about/">Google Sheets</a> es una gran opción para principiantes si no estás familiarizado con el uso de software de hojas de cálculo. Su uso es gratuito con una cuenta de Google y se puede utilizar en cualquier navegador, sin necesidad de descargar software.</p></div></div></div></div><ol start="4"><li><p>En Google Sheets, puedes hacer clic en <code>archivo &gt; importar</code> para cargar el archivo CSV de muestra para editarlo. Cuando abras el archivo de muestra, encontrarás un par de encabezados de columna con la primera fila de propiedades rellenada.</p><img src="https://storage.googleapis.com/papyrus_images/12ae1f672fe47ebc08c7dedb4ab9ecb2.png" alt="Screenshot of NFT view" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATCAIAAAB+9pigAAAACXBIWXMAAAsTAAALEwEAmpwYAAADA0lEQVR4nLVV7U7aUBjuBfjHH0NBBUUUxYHT6dgwIdkdeAe7gd3HsmTZ9mNZsh9zH1AboFBg7k6Mmcv4cFY++4Gl7TltT+lyKCCoOJJlT948fdOm53mf501agiCI4PrK5vb6VnQvGn0aiUQjkWg4HPEHAsvL/pHyDzV+v98fuFH46cLi4oxrxjnvWfT5CBtB31poMxB4tPNw5/HObuTB1u76xqbbs+ycX3S63K45j2vO43S5uzVo3Pcczms163QvzC+srQa3Nve21za83lV8evh++OWH118SZPwrGYuTFJWkqCRJUukMwzDZDOZ8NptjsrkMk83l8vlvR7lcnsnlaTqdotM0nabTGZpOJ5OpGEllmaO3B++fvXiePHiVe/eGmPUR+0/2S1wJaMDQDdM0EUKdTgch07IshJBp4sayrO5NZE2As0s2e/K92SzoxVPCuUI4HI7qRRVCyHGcKIqqCnRdUxQFQCh3ASEEACqKIkmSKIrttqwoCmZVlWX5UpJ4QZDabVUFhmHoumZ1sAwAoMCyOCKv13t88uO0wJ5VxEKJrdVqlSpXqQmVau38nG02OY7jOZ6vNxqXklSvN9rttii2ZFmu1mq6YWiaruuGpmkQagBCCDUVAElWAJDE6jFBTGGBQrHM8a1Gs8ULoiDwDV6uC3q9IbRaIn7bMGRZVlUVdIHPwMdBQRDsSG2YGDabCBkAgDOW6zkol39DCEeT7Pq0LNM0O33YnX3H3o05BrbAz7IwNSwwmMWepz8Uht3f5HFACAEA2Gq956BYKl8X6LtGfbGxfBsMAztoNrsCwWCwWCwNBAZBjpsaTeCgL9AcEbja0Z1AQ3y3AMdxE0Vk3sl3RCQIQs9BoXglMGE4aHhDNxZzU6B4yw7GbcKcNKKeQCgU+lUoGgb+EJloxHVvJnTF9nT2ZVw+CBkmQrqu8zyPBZaWltiLC1EUFRW0Ffyd+Xeo3fElScIC09PTMZKMHx4eUlQsEUumUlQiSSUSt7Hd/KWSNP3x0+d4nGQYpvfD+a/4A1LXXgEMz61OAAAAAElFTkSuQmCC" nextheight="1192" nextwidth="2000" class="image-node embed"></li></ol><p>Resumen de las diferentes propiedades:</p><ul><li><p><strong>name:</strong> El nombre de la NFT</p></li><li><p><strong>description:</strong> Descripción de la NFT</p></li><li><p><strong>external_url:</strong> Esta URL aparece debajo de la imagen en marketplaces como OpenSea y permite a los usuarios ver la NFT desde su sitio.</p></li><li><p><strong>background_color:</strong> Una propiedad opcional disponible en OpenSea. Debe utilizar el formato hexadecimal de seis dígitos (#).</p></li><li><p><strong>youtube_url:</strong> Similar a la URL externa, esto permitirá a los usuarios ver el canal de YouTube o el vídeo detrás de la NFT.</p></li></ul><p>Esta opción también te permite cargar una variedad de diferentes tipos de archivos. El archivo CSV se utiliza para añadir el archivo NFT junto a las propiedades, que se analizarán.</p><ul><li><p><strong>image:</strong> Un enlace a la imagen o archivo a subir. El enlace puede ser una imagen local o una URL de un NFT cargado en un servicio, como IPFS. Tipos de archivo admitidos: png, jpg, jpeg y gif.</p></li><li><p><strong>animation_url:</strong> enlace a la animación que se va a cargar. Tipos de archivo admitidos: cualquier archivo que no sea una imagen, como mp4, archivos de audio, pdf, CSV, modelos 3d, etc.</p></li></ul><p>Además de estas propiedades específicas, también puedes añadir propiedades que pueden ser únicas para su colección. En el siguiente ejemplo, tenemos un proyecto NFT Shapes Collection con propiedades de forma, color y lados.</p><img src="https://storage.googleapis.com/papyrus_images/5a19de3c3c614fbc1e3c98d12af23145.png" alt="Screenshot of shapes view" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATCAIAAAB+9pigAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEjUlEQVR4nLWV7U7bVhjHcwH9UqlAoYVSXhaaYSgdVTU+IPUOege7gd3HNGnaJk2TNonSaghC4iSQtldRakgU28lJ/AZxEuL3t+NjJ7EzxU670E3bp/306OjYOjp/P//n8TmJRCKBPVrd3FxNJTe2traxra1kMpVMpnae7+7uPt/dfb6zs7u9/SyZSi0vJycjXjYZy8nk4nJyfn5+Zm5m6v6DxZWVRAy2soZhj5aXUmspLLW+ubi4em9haX37yebjp5uPn2IbXyUfYffnl2bnFmbnFu7Ojsa5ew+mZ+buTN29MzUXx9T07Mzswvz9+bVV7MnGzpO1Lx8ufTHa/dnDZ9///tPewau9vf29vZcv91+9fn2QTmePjo5xPIfjuVyuUCicjOLk9PS0WHzztlh8U3zzNp8vjBbk8rlcHsfzmQx+cJg+Kbz7ef/Xb777Nrv/w+kvPyburiRefP2CV3joQw95vV7P87x+vz8YDIbD4WAwCIJgGNEPxi//E8FonlDvJIn1WJCYXU1MT0+3W20PeZIsqarqjfAt24bQtUbYvu87EOq2aRimpumWZTsQOhBatm07jmGaqqpZluW6bq/X931vGI5kEEKMKEYFWFoiqVq1cdWWbaHZFQTBgRBC14EQeR6EsNO5dl1XUdR+f6DrumlZpmldX3c934/D7/VGE89H0ce5CNkQItfUO5VE4lYCwzCW5aqAFdtSV1JpmmYjAAAMw2iaJkmS53mtVisMQ9u2B4OBYRgAAFEUBxGxpZP0+32E0KWoRBlgGC8INE2LzaaiyKVymSTJcrlcKpUqlYosy53ra4RQUxSHw6HtOGEYGoZRKpc5jgvDMN4xCIJPYyyBEAKCcmsswAsAALpabbVapVKJpEgAQKwhCEK9Xrdt++rqaiRg22EY6rpeKpcrlQqEMNb4TCDOQOxcjzPgOJ4XBIZhJEkCADQaDUEQGo0GAKDVanEc5zhOt9sNw9BxnCAILMuKl7muGwRBbNGkTb1eDyEkyd2xAMNy9UaDpulOp0OSJEVRAACKokiS5Hm+Xq9bltXudEY1iARM06QjnMix0dbxp9/MQJbksQDLchRFEQTB8/z79+8vLi5Ikry4uCAIgqbp8/NzTdMuLy8/WaRp2ocPH87OznRdH/0i/f4/WqQoH4vMcTwXIUlStVptNBoMw4CIVrsdN24nygBCGGdQq9Xq9TpC6F8s+kuA5TiWZQVBUFQ17s64TQEA3W633W4jhGKLYtNN06zX6zzP+74/EvisSf8uwLBcpVIRBEGSpLOzs0oEQRDlcrkrSVfNpuu6N7rIMAiC4DjukzmDmxb1Ji3a2NhgWJaiKEmSFEU5J85BrRaXpFarGYYRnx+CIIRhYNt2EASaphEEIYpi7M/YookxiJKQ5ajI6+vrV2JLUTXLcXTLUDVNUTVZUSVZ1Q3TdqBpO9HJE50gHzEta/LxM2wENU0zDCO6DW7fPjg8TB8fH6XTB5nDfKGQwQtZHM/ghUwWT2ey6Wz245jJRPNMNpvJ5+P5zchks/j+0R+/Hb0svi3iOD6+cP5X/gRRYyorgituQgAAAABJRU5ErkJggg==" nextheight="1192" nextwidth="2000" class="image-node embed"><ol start="5"><li><p>Una vez que hayas terminado de editar, exporta tu archivo como <code>.csv</code> y añádelo a una carpeta con todos tus activos.</p></li><li><p>Sube tus activos al panel de control, comprueba que tu colección está correctamente asignada y haz clic en <code>Next</code>, donde se te pedirá que configures más opciones.</p><img src="https://storage.googleapis.com/papyrus_images/a28a0438edb125ddf14586b14cc3f19c.gif" alt="Gif of drag and drop" blurdataurl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAEJElEQVR4nKWUbU/bVhTHHUAKTZtgkzhOAqhjU5m0TXu1kELCgDKVQAt5dHjoaCmIbhOi2r7AvsA+QrUhNo2O0HbT2KZlEZlW7TN0QKuWhRCUB18ntnPjxLEz2Q4B0u7FtKO/jo+tq/O795zrg5g7L5qsXUR7V/frPRff6CGsXa0GI27pxC2dqNmGETaM6FC8Ephtbbj1HEZoUVxWm0nWqfgcRhhMBGa2GfAOHLcSli6EDM2QoWl/gJyfX1i889HM7Jw/SJKh6UCQ9PkDvkDQHyR9gaAqcmrqxs15X4Cc8Hg9Pr/XL3+c8Po8Pr+6IDQ7t3T71sryZ/Mf3/38k8U7szNI9dhESWIYhmXZIoQcx/E8X33JsllqO/JzJBqJRH6L/BrZ3HywEX6wtfXT1o9b9+9/F94Ib4Y3NzbC4Y3w+rfrD7//gWU5RDplh4fJg4NEMnmUSBxmMlmZKpskipIgCNVq9dHDR4O9bzuc7znsvb12u06rRRCk02LptFoRBGnRaHRabaumBTt/HkGQdr3h8eM/TwDVarVcrrBMiWNlsQxPgwINoCoAWAiFL1fXht0e76TX5XK5eu22d/uQL34xdr+JajQEhptRDG9DzShWVzS6LZeoDuA4PpthAOCoLAsAB0BB8bKobA0wMDIWDJKugfd77fbXet5658NPu7ovmXR6M2pSATVGG0pgxu3tWK0HKgDCIpVllf1yx76gBipgdXXNNXyVDAYHB4cdjss2grC2IASK4kpGvC5UwWDtMkDJfAwo8AqgtnEawHxOzl4DFGTA4NDw+Nj48NCQ0+m04uZ2fZu65XpxGgFnTlDg1bxq6nQ6lzoC+ZzaA04GfL3uvTF3d2XF7/ONud0dhMWkNzRkrwe1Ep1usnqCbCafSecBxf69n3zxPAEoNpPOp1O0coJvBkbd7lH3ZYejv6/fRhBGBfCyVEBMBTT0IJ0CqRRIp+h0OpfNyKnTKfooSXFseXV1beTKlevXro2PjX8wMtJBEGYUIzBjgyxGk+xNpljs90ZAvUQNAoCDULx37yun0zk5MTF6dbS/r8+oN1xAmvTNWp2mpa4LSJNO09KKNOmam6PRaAOg3HA7QV0UyzKlWOyP5eXlpaWlhdsLczdvBQLk5ITHM+klA0FVwUAgRJLTU9MhMrS4sLCzs3u2BzXAv4phiqlU+smTv3Z393b3nj99cbDzLL73LL4fTxwkDvfj8fhBMpulGIbN5RmOg6IovQLwyhLRtYtUEgQB0HSO4WiWyzFsjpFnF03nOI4DgObyzNnpdQogSZIoiuWyUC5XFNUC4eRVEISKsqYsCBVBqJQUL0lVWaIkiFKhJCpf5Amm2sk0/T8milIOMIcUjO4XKVip/1syQH3wfAlCWIR8EfIQFtXgPwlCWICQ4ZQ0EPLFslr2fwBAkmFUl9Q46AAAAABJRU5ErkJggg==" nextheight="448" nextwidth="800" class="image-node embed"></li></ol><p><strong>JSON</strong></p><p>Se recomienda utilizar el formato JSON cuando se utilice un generador de NFT que genere NFT y sus metadatos correspondientes en un archivo JSON.</p><div><div class="callout-base callout-info" data-node-view-wrapper="" style="white-space:normal"><img src="https://paragraph.xyz/editor/callout/information-icon.png" class="callout-button"><div class="callout-content"><div><p><strong>CONSEJO</strong></p><p>Algunos generadores que recomendamos son <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://github.com/HashLips">Hashlips</a> y <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out" href="https://www.niftygenerator.xyz">niftygenerator</a>. La función de carga es compatible con cualquier generador.</p></div></div></div></div><hr><p></p><h2>Recursos adicionales</h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/"><strong>Documentación thirdweb</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/"><strong>Blog Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://blog.thirdweb.com/guides/"><strong>Guías Oficiales</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://portal.thirdweb.com/templates"><strong>Plantillas</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/thirdweb"><strong>Youtube Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://www.youtube.com/@thirdwebes"><strong>Youtube Español</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.com/events"><strong>Eventos</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb"><strong>Discord Oficial</strong></a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://support.thirdweb.com/">Support</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb">Twitter Oficial</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_es">Twitter Oficial ES</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://twitter.com/thirdweb_jp">Twitter Oficial JP</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out" href="https://paragraph.xyz/@samusarmiento">Blogs y guías en Español</a></p></li></ul><p></p><hr><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="https://paragraph.xyz/@samusarmiento/subscribe">Subscribe</a></div><hr><p>Si tienes alguna pregunta, únete a los más de 36.000 creadores de nuestra comunidad de <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://discord.com/invite/thirdweb?ref=blog.thirdweb.com">Discord</a>, o <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out dont-break-out dont-break-out dont-break-out dont-break-out" href="https://thirdweb.typeform.com/to/ZV3gUhiP?typeform-source=thirdweb.com&amp;ref=blog.thirdweb.com">ponte en contacto</a> directamente con el equipo para obtener más información sobre cómo empezar con thirdweb.</p><p>Y si quieres empezar a construir aplicaciones web3, empieza con las herramientas web3 y SDKs de thirdweb - ¡son gratis!</p><div data-type="embedly" src="https://thirdweb.com/?ref=blog.thirdweb.com" data="{&quot;provider_url&quot;:&quot;https://thirdweb.com&quot;,&quot;description&quot;:&quot;Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.&quot;,&quot;title&quot;:&quot;thirdweb: The complete web3 development framework&quot;,&quot;thumbnail_width&quot;:2400,&quot;url&quot;:&quot;https://thirdweb.com/&quot;,&quot;thumbnail_url&quot;:&quot;https://thirdweb.com/thirdweb.png&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;thirdweb&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:1260}" format="small"><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="twitter-card-link" href="https://thirdweb.com/?ref=blog.thirdweb.com" target="_blank" rel="noreferrer"><div class="twitter-summary"><img src="https://thirdweb.com/thirdweb.png" class="false"><div class="twitter-summary-card-text"><span>https://thirdweb.com</span><h2>thirdweb: The complete web3 development framework</h2><p>Web3 Developers use thirdweb Total Contracts Deployed Without thirdweb (88 lines) Anyone can use thirdweb tools without our permission. The code for our contracts, SDKs, dashboard and UI components are open source and available to everyone. Apps and contracts built with our tools are completely owned by you.</p></div></div></a></div></div><p></p>]]></content:encoded>
            <author>samusarmiento@newsletter.paragraph.com (thirdweb ES)</author>
            <category>thirdweb</category>
            <category>thirdweb_es</category>
            <category>documentacion-thirdweb</category>
        </item>
    </channel>
</rss>