Mercado descentralizado.
Transacciones seguras.

POWERED BY ETHEREUM · ESCROW AUTOMÁTICO · NAUTILUS AI · VOLAPÜK
CONTRATO INTELIGENTE
ESCROW AUTOMÁTICO
100% LEGAL
🛒 MERCADO
📤 VENDER
📋 MIS CONTRATOS
❓ CÓMO FUNCIONA
Activos disponibles.
Publicar anuncio.
CÓMO FUNCIONA LA VENTA
  • 1Conecta tu MetaMask y publica tu activo con precio en ETH.
  • 2Un comprador interesado inicia la transacción y el ETH queda bloqueado en escrow.
  • 3Entregas el activo al comprador — accesos, código, dominios, etc.
  • 4El comprador confirma la recepción y el ETH se libera a tu wallet automáticamente.
  • 5Si hay disputa, un árbitro neutral resuelve el caso.
🔒 ESCROW AUTOMÁTICO
El contrato inteligente actúa como intermediario neutral. El ETH del comprador queda bloqueado hasta que ambas partes confirman la transacción. Nadie puede mover los fondos unilateralmente.
01
🦊
CONECTA METAMASK
Instala MetaMask en tu navegador y conecta tu wallet. Sin registro, sin contraseña, sin datos personales.
02
📤
PUBLICA O COMPRA
Publica tu activo o encuentra uno que te interese. El precio se fija en ETH para transparencia total.
03
🔒
ESCROW AUTOMÁTICO
El ETH queda bloqueado en el contrato inteligente. Nadie puede moverlo hasta que ambas partes confirmen.
04
🤝
CONFIRMAR Y LIBERAR
Vendedor entrega el activo. Comprador confirma recepción. El ETH se libera automáticamente.
05
⚖️
ARBITRAJE
Si hay disputa, un árbitro neutral revisa el caso y decide la distribución de fondos.
06
100% LEGAL
Equivale a un contrato de depósito legal. Trazabilidad total en la blockchain de Ethereum.
Contrato Inteligente Solidity
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /** * MINOTAURO VOLAPÜK ESCROW CONTRACT * Nautilus AI · nautilus-ai.es * Escrow automático con arbitraje */ contract MinotauroEscrow { enum State { PENDING, ACTIVE, COMPLETED, DISPUTED, REFUNDED } struct Trade { address seller; address buyer; uint256 amount; State state; string description; bool sellerConfirmed; bool buyerConfirmed; } mapping(uint256 => Trade) public trades; uint256 public tradeCount; address public arbiter; uint256 public constant FEE = 1; // 1% event TradeCreated(uint256 id, address seller, uint256 amount); event TradeFunded(uint256 id, address buyer); event TradeCompleted(uint256 id); event TradeDisputed(uint256 id); function createTrade(string memory desc, uint256 price) external returns (uint256) { tradeCount++; trades[tradeCount] = Trade(msg.sender, address(0), price, State.PENDING, desc, false, false); emit TradeCreated(tradeCount, msg.sender, price); return tradeCount; } function fundTrade(uint256 id) external payable { Trade storage t = trades[id]; require(t.state == State.PENDING && msg.value == t.amount); t.buyer = msg.sender; t.state = State.ACTIVE; emit TradeFunded(id, msg.sender); } function confirmDelivery(uint256 id) external { Trade storage t = trades[id]; require(t.state == State.ACTIVE); if(msg.sender == t.seller) t.sellerConfirmed = true; if(msg.sender == t.buyer) t.buyerConfirmed = true; if(t.sellerConfirmed && t.buyerConfirmed) { t.state = State.COMPLETED; uint256 fee = t.amount * FEE / 100; payable(t.seller).transfer(t.amount - fee); emit TradeCompleted(id); } } function openDispute(uint256 id) external { Trade storage t = trades[id]; require(msg.sender == t.buyer || msg.sender == t.seller); t.state = State.DISPUTED; emit TradeDisputed(id); } }