CursosEmpresasBlogLiveConfPrecios

Recibir ether desde un contrato

Clase 15 de 21 • Curso de Introducción a Solidity

Clase anteriorSiguiente clase

Contenido del curso

Por qué debes aprender Solidity
  • 1
    Curso de Solidity: Fundamentos y Desarrollo en Blockchain

    Curso de Solidity: Fundamentos y Desarrollo en Blockchain

    01:24
  • 2
    Programación en Solidity para Contratos Inteligentes en Blockchain

    Programación en Solidity para Contratos Inteligentes en Blockchain

    03:23
Introducción a la programación con Solidity
  • 3
    Estructura Básica de Contratos en Solidity

    Estructura Básica de Contratos en Solidity

    10:29
  • 4
    Tipos de datos y variables en Solidity: enteros, booleanos y direcciones

    Tipos de datos y variables en Solidity: enteros, booleanos y direcciones

    12:38
  • 5
    Estructuras y Arrays en Contratos Inteligentes

    Estructuras y Arrays en Contratos Inteligentes

    09:20
  • 6
    Estructuras de datos en Solidity: Mappings y enums

    Estructuras de datos en Solidity: Mappings y enums

    11:53
  • 7
    Estructuras de control en Solidity

    Estructuras de control en Solidity

    10:48
  • 8
    Manejo de Eventos con Solidity

    Manejo de Eventos con Solidity

    05:29
Programación de Funciones en Solidity
  • 9
    Cómo implementar funciones en Solidity

    Cómo implementar funciones en Solidity

    09:13
  • 10
    Uso de Modificadores en Solidity

    Uso de Modificadores en Solidity

    08:41
  • 11
    Manejo de errores

    Manejo de errores

    07:35
Gestionando costos de gas y comisiones
  • 12
    Tipos de almacenamiento

    Tipos de almacenamiento

    05:17
  • 13
    Manejo del gas y comisiones

    Manejo del gas y comisiones

    08:37
  • 14
    Transferencias de ether desde un contrato

    Transferencias de ether desde un contrato

    09:47
  • 15
    Recibir ether desde un contrato

    Recibir ether desde un contrato

    11:50
Conceptos avanzados de Solidity
  • 16
    Manejo de dependencias y librerías

    Manejo de dependencias y librerías

    08:12
  • 17
    Uso de la herencia en Solidity

    Uso de la herencia en Solidity

    14:41
  • 18
    Polimorfismo en contratos inteligentes

    Polimorfismo en contratos inteligentes

    09:05
  • 19
    Tokens

    Tokens

    13:34
  • 20
    Application Binary Interface (ABI)

    Application Binary Interface (ABI)

    06:50
Cómo continuar mi camino desarrollando en Blockchain
  • 21
    Cómo continuar mi camino con Solidity

    Cómo continuar mi camino con Solidity

    01:58
    Juan Carlos Leandro Diaz Zegarra

    Juan Carlos Leandro Diaz Zegarra

    student•
    hace 4 años

    send Ether | msg.data esta vacia? /
    yes no /
    receive() existe? fallback() /
    yes no /
    receive() fallback()

      Maria Ortiz

      Maria Ortiz

      student•
      hace 4 años

      Tu comentario se veía raro (movido) en mi pc pero me gustó la idea y realicé una imagen con la manera en que lo entendí. También le agregué lo de la existencia de una función firmada payable

      Esquema Recepcion

    William De la Cruz

    William De la Cruz

    student•
    hace 4 años

    wei definition:

    Wei is the smallest denomination of ether—the cryptocurrency coin used on the Ethereum network. One ether = 1,000,000,000,000,000,000 wei (1018)

      Adolfo Sebastián Jara Gavilanes

      Adolfo Sebastián Jara Gavilanes

      student•
      hace 4 años

      Gracias por compartirnos la definición

    Sergio Bryan Madrid Nuñez

    Sergio Bryan Madrid Nuñez

    student•
    hace 3 años

    Considero que esta clase no quedo tan clara pero aquí dejo un post que me ayudo un poco, es corto y simple: https://www.educative.io/answers/how-to-receive-ethers-inside-a-smart-contract

      Rodrigo Ramos Xochiteotzin

      Rodrigo Ramos Xochiteotzin

      student•
      hace 3 años

      Muy buen aporte, compañero, me ayudó a entender mejor y a plantear mejor mis dudas. Gracias

      Ronald Cuello

      Ronald Cuello

      student•
      hace 7 meses

      Me ayudó a comprender mucho mejor. Gracias por el aporter

    Fernando Hernandez

    Fernando Hernandez

    student•
    hace 4 años

    Recibir Ether desde un contrato

    • Receive: Recibe el saldo de trasferencias sin parámetros.
    • FallBack: Recibe información adjunta a la trasferencia por medio de los parámetros.
    • Función Payable: Se especifica el tipo payable a una función que puede recibir trasferencias.
    Daniel Vaca

    Daniel Vaca

    student•
    hace 4 años

    Para los que se quedaron con la pregunta ¿Por qué colocar payable a una función?, pues para que en el invocación se pueda enviar ethers, si en la invocación de una función NO PAYABLE le incorporas el envío de ETH, entonces dará error.

    Abidan Triguero Calle

    Abidan Triguero Calle

    student•
    hace 3 años

    RESUMEN CLASE 15: RECIBIR ETHER DESDE UN CONTRATO

    I.- FORMAS DE RECIBIR ETHER

    • Receive: función opcional que se ejecuta cuando se recibe una transferencia de Ether sin parámetros.

    • Fallback: función opcional que se ejecuta cuando se recibe una transferencia de Ether con parámetros.

    • Función payable: se puede recibir Ether en una función si se le especifica el tipo payable.

    • Cuando se envía una transferencia lo primero que se intenta es verificar si existe una función con la firma especificada.

    • Si no se encuentra, se buscará una función fallback que reciba parámetros.

    • Si no tiene parámetros, se buscará una función de receive y en caso de no existir se buscará una función fallback sin parámetros.

    REMIX:

    CLASE 15 Imagen1RecibirEtherDesdeUnContrato.png

    Recepcion.sol

    // SPDX-License-Identifier: GLP-3.0 pragma solidity >=0.7.0 <0.9.0; contract Recepcion { mapping (address => uint) balances; uint public saldoEnviado; receive() external payable{ balances[msg.sender] += msg.value; } fallback() external payable{ } function recibirSaldo(uint numero) public payable { saldoEnviado = msg.value; uint monto = numero; } }
    Edgar Domínguez

    Edgar Domínguez

    student•
    hace 4 años

    Hola!! He unido en un solo contrato la parte de recibir y transferir, esto es lo unico que esta dentro de mi contrato.

    mapping(address => uint) balances; receive() external payable { balances[msg.sender] += msg.value; } function transferenciaPorTransfer(address destino, uint monto) public { payable(destino).transfer(monto); }

    Realice un deploy sobre Mumbai, envie y transferi matic y fracciones de matic, ahora entiendo cuando comentaste de trabajar los flotantes con enteros XD, hasta aqui todo bien, pero ¿que pasa cuando enviamos otro tipo de token?, entonces desplegue el contrato de un token, lo envie a mi contrato y en el scan de mumbai puedo ver que tiene el token que envie, pero ahora ¿como puedo transferir ese token que tiene el contrato a otra direccion?

    Muchas gracias Saludos

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 4 años

      Hola Edgar, genial todo lo que estás desarrollando !

      Respecto a tu consulta, la sentencia transfer que se aplica sobre una dirección payable utiliza la moneda por defecto de la red (Ether en Ethereum o Matic en Polygon). Para transferir un token, debes utilizar la función de transferencia que corresponda al mismo. Por ejemplo para el ERC20 es una función transfer que recibe una dirección y un monto.

    Maria Emilia Mocayar

    Maria Emilia Mocayar

    student•
    hace 3 años

    Construí este esquema a partir de la clase y los aportes de Juan Carlos, Sergio. Me ayudó a comprender mejor el flujo de la transferencia, se los comparto.

    flujo send ether.png
    Jorge Fidel Zubieta Choque

    Jorge Fidel Zubieta Choque

    student•
    hace 3 años

    // SPDX-License-Identifier: GPL-3.0

    pragma solidity >=0.7.0 <0.9.0; // Contrato que se encargue de recibir transferencias // agregamos 3 tipos de recepciones // 1 recepcion limpia SIN parametros! // 2 recepcion que RECIBA parametros pero que no correspondan a ninguna funcion! // 3 llamada a una funcion (que corresponda con la firma de la funcion) y que ademas tenga un valor asociado en Ethers!

    contract Recepcion {

    mapping(address => uint) balances; // Para hacer un ejemplo : creamos un mappinn relativo a balance, en base a la cantidad de saldo que le envio por transaccion. -> (*) uint public saldoEnviado; // para ver cuanto saldo recibimos creasmo esta variable publica -> y agregamos en recibir saldo : saldo enviado! receive() external payable { // recive obligatoriamente es una funcion del tipo externa y del tipo payable (recibe pagos) los dos si o si! balances[msg.sender] += msg.value; // (*) como primera linea de codigo le digo que al sender de la transaccion le agregue un saldo. // como se el saldo? el sender me trae el monto en weis! muchos ceros 000000000000001 weis } fallback() external payable { // funcion allback que no recive ningun parametro, va a ser external y payable. // como van a ir los parametros? los vamos acceder mediante el msg.data -> asociado a los datos que viene con el mensaje. como s en bytes o vamos a usarlo por el momento para saber que hacer si recibimos una trasnferencia con parametros. } function recibirSaldo(uint numero) public payable { // uint numero es solo para poner como parametro un numero x // funcion convencional de recibir saldo y no sea obligatorioriio que reciba saldo. la habilitamos y puede ser llamada aunque tenga saldo 0! saldoEnviado = msg.value; //para ver el saldo recibido -> saldo enviardo variable creada arriba! // value va a recibir el valor que le enviamos desde el deploy -> hacemos un call al contrato enviandole ese parametro (value del deploy) uint monto = numero; //aca hay un error ya que nos e una la variable monto, pero lo dejamos por ahora no afecta ya que nos interesa saber el saldo recivido que fue enviado! }

    }

    NOTA: al ralizar el deply los textbox que aparcen so los definidos en la sfuncniones del conrtato! Como monto y value! Donde monto es en esta caso solo un numero sin importancia modo ejemplo Pero value sera el saldoenviado al contrato!

    NOTA 2 : sabemos que el contratot es payable porque el boton del deploy esta en rojo!

    Aldo Saul Nuñez Gasca

    Aldo Saul Nuñez Gasca

    Team Platzi•
    hace 4 años

    Saludos, Sebastián y compañeros. No me quedó muy claro el qué significa que una función sea external, alguien podría explicármelo?

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 4 años

      Hola Aldo, una función external es aquella que puede ser llamada desde fuera del contrato pero no puede ser utilizado dentro del mismo. Es decir, no podrás hacer una llamada a esa función desde otra función del mismo contrato pero sí podrás desde web3, rpc o desde otro contrato

    Franklin Gil

    Franklin Gil

    student•
    hace 4 años

    es "Recibir Ether desde un contrato" o "enviar ether a un contrado" porque segun el remix, no recibo nada.

    no me quedo claro tampoco para que son las funciones receive ni fallback no les vi la utilidad. ejecute el contrato sin esas funciones e igual funciono todo...

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 4 años

      Hola Franklin, ambas funciones sirven para que los contratos puedan recibir fondos. Si no se define ni "receive", ni "fallback", ni ninguna función de tipo payable el contrato no podrá recibir fondos. Fuera de eso, su funcionamiento será normal, sólo que no podrá almacenar Ethers en su billetera y por ende luego transferirlos.

    Pablo Campiño

    Pablo Campiño

    student•
    hace 4 años

    Estoy realizando la prueba del código del contrato Recepcion.sol. Al enviarle valor 600 y recibir saldo 60, arroja en saldoEnviado un valor de "uint256: 600000000000". Tambien para correr el contrato tuve que valorar el Gas limit, porque arrojaba error por fondos insuficientes. ¿porque arroja esa respuesta de saldo y como se puede corregir?. Gracias y saludos Aqui el ptsc del Remix y el deploy.

    Captura de pantalla 2022-04-05 183729.png

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 4 años

      Pablo, lo que sucede es que la unidad que estás usando es el Gwei (fijate en la caja de la derecha), entonces te cambia la unidad de valor agregando los ceros cuando hace la transferencia. Te conviene siempre utilizar "wei" para que no tengas diferencias de unidades

      Pablo Campiño

      Pablo Campiño

      student•
      hace 4 años

      Sebastian: De acuerdo, cambié las unidades y funciona perfecto. Gracias.

    LUIS FERNANDO ESPINOSA HERRERA

    LUIS FERNANDO ESPINOSA HERRERA

    student•
    hace 4 años

    saludos una ves por error envie dinero 25 BUSD al contrato de la moneda me comunique con Binance y me dijeron que el monto era muy poco que no hay una manera de recuperarlos me pregunto si por codigo es posible llamando la función si es que existe XD? o como funcionan estos contratos que son monedas .

    o directamente no hay nada que hacer

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 4 años

      Hola Luis, si has enviado una transacción a un contrato y la misma es válida (es decir que por ejemplo contabas con el saldo suficiente) entonces no hay forma de revertirla. El contrato debería tener en el código alguna función para que puedas retirar esos fondos o en caso contrario no hay manera de recuperarla

    Manuel Eduardo Moreno Garcia

    Manuel Eduardo Moreno Garcia

    student•
    hace 4 años

    Todo muy bien pero.... Cuándo recibo un pago, ¿a dónde se va ese dinero, donde se guarda, cómo lo puedo enviar a otro wallet? Si alguien me pudiera apoyar. Saludos.

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 4 años

      Hola Eduardo, siempre el "dinero" (o los Ethers para ser más precisos) van a vivir dentro de la Blockchain (allí se almacena). Si la transferencia es hacia tu cuenta, puedes chequear tu balance en una wallet como Metamask y desde allí mismo puedes enviar Ethers a otra cuenta. En el caso de que el que reciba los ethers sea un contrato, la forma de gestionarlo es como se ve en este módulo ya que el saldo queda asociado al contrato y no puede modificarse desde una wallet si no que debemos transferir por medio del código.

    Alejandro Chavez

    Alejandro Chavez

    student•
    hace 3 años

    ¿Y se pueden hacer transferencias entre cuentas diferentes al contrato?

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 3 años

      Se pueden si lo haces por fuera del contrato. Por ejemplo directamente desde Metamask

    Rodrigo Ramos Xochiteotzin

    Rodrigo Ramos Xochiteotzin

    student•
    hace 3 años

    Los contratos al ser desplegados se les asigna una dirección pública, ¿cierto? Entonces hay direcciones públicas de wallets y direcciones públicas de contratos. ¿Las de wallets tienen habilitadas por defecto funciones de recepción? ¿Algún contrato que no tenga habilitado funciones de recepción entonces no puede recibir Ether?

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 3 años

      Hola Rodrigo, es correcto ambas tienen direcciones públicas y tienen el mismo formato. Las direcciones que corresponden a cuentas que no son contratos no tienen un accionar automatizado al recibir fondos. Respecto a los contratos que no tengan receive, fallback o una función payable no podrán recibir fondos como bien dices.

    Leonardo Jose Jimenez Ortiz

    Leonardo Jose Jimenez Ortiz

    student•
    hace 3 años

    a que se refiere con la firma de la funcion exactamente???

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 3 años

      Hola Leonardo, la firma es el encabezado de la función, por ejemplo si tienes una función:

      function sumar(uint numero1, uint numero2) external { ...

      Tiene como firma: "sumar(uint256,uint256)"

      Fijate que no incluye modificadores de acceso ni nombres de las variables, además se le agrega el 256 a los uint

    Juan Isidro Mejía Peña

    Juan Isidro Mejía Peña

    student•
    hace 3 años

    Hola, una pregunta: ¿Puedo enviar saldo a un contrato payable desde otro contrato directamente sin que tenga este una función diseñada para recibirlo? Por ejemplo algo asó como: address(direccióndeContratoPayable).send(monto)

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 3 años

      Hola Juan, para poder enviarle con .send a un contrato, el mismo debe tener definida la función receive() y/o la función fallback(). En caso contrario va a fallar

    Pablo Campiño

    Pablo Campiño

    student•
    hace 4 años

    Hola: **Balance **reporta 0 y difiere con lo de Sebastian. ¿que puede faltar?

    <// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; contract Recepcion { mapping(address => uint) public balances; uint public saldoEnviado; receive() external payable { balances[msg.sender] += msg.value; } fallback() external payable { } function verBalance (address origen) public view returns (uint) { return balances[origen]; } function recibirSaldo(uint numero) public payable { saldoEnviado = msg.value; uint monto; monto = numero; } }>

    ![](

    Captura de pantalla 2022-04-06 154807.png

    ![](

    Captura de pantalla 2022-04-06 155250.png

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 4 años

      Hola Pablo, primero le debes enviar saldo al contrato desde la dirección que consultas en verBalance como origen. Luego de la transacción, al llamar a la función te debe de mostrar el balance deseado.

      Pablo Campiño

      Pablo Campiño

      student•
      hace 4 años

      Hola Sebastian: modifique la función de acuerdo a su indicación y funciona con lo esperado. Muchas gracias.

      function recibirSaldo(uint numero) public payable { saldoEnviado = msg.value; balances[msg.sender] += msg.value; balances[msg.sender] += numero; }
    Javier Flores

    Javier Flores

    student•
    hace 4 años

    No me quedó claro para que se usan receive y fallback, en realidad el video no muestra como trabajan estas funciones o no identifiqué como lo hacen.

      Sebastian Perez

      Sebastian Perez

      teacher•
      hace 4 años

      Hola Javier ! Las funciones receive y fallback son llamadas automáticamente cuando se hace una transferencia de ethers hacia tu contrato. En el caso de receive es cuando la transferencia no lleva parámetros y con fallback cuando sí los tiene. Estas funciones no pueden ser llamadas de forma externa como el resto de las funciones, sólo cuando se hace una transferencia.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads