Referencia técnica

Documentación

Todo lo necesario para conectarse a Basis Network, interactuar con los smart contracts y entender la arquitectura.

Inicio rápido

Conectar a Basis Network

Basis Network opera como una L1 soberana en Avalanche Fuji Testnet. Puedes conectarte usando cualquier cliente EVM compatible.

// RPC Endpoint

https://rpc.basisnetwork.com.co

// Chain ID

43199

// Currency

LITHOS (Tomo)

// Gas Price

0 Gwei (zero-fee)

Configuración de red

MetaMask / Wallet

Network Name Basis Network
RPC URL https://rpc.basisnetwork.com.co
Chain ID 43199
Currency Symbol LITHOS

Características de la red

Parámetros de la L1

Consensus Snowman (Avalanche)
Block Time ~2 seconds
Gas Price 0 (zero-fee)
EVM Target Cancun
Permissioned TX + Deploy allowlists
Solidity 0.8.24

Contratos desplegados

Smart Contracts

5 contratos en producción en Fuji Testnet. 72 tests unitarios pasando. Solidity 0.8.24 con EVM target Cancun.

EnterpriseRegistry

0xe10CCf26c7Cb6CB81b47C8Da72E427628c8a5E09

Registro y gestión de empresas con control de acceso basado en roles. Permite registrar, actualizar y desactivar empresas en la red.

registerEnterprise() updateEnterprise() deactivateEnterprise() isAuthorized() listEnterprises()

TraceabilityRegistry

0xAC00F4920665b1eA43F4F7Da7ef3714DE7acf6Fc

Registro inmutable de eventos con marca temporal. Indexa por activo, empresa y tipo de evento con verificación de integridad.

recordEvent() getEvent() getAssetHistory() getEventsByEnterprise() verifyEvent()

PLASMAConnector

0xF486547C8bF764eA4E53a05D745543f8a6973133

Puente entre PLASMA (mantenimiento industrial) y la blockchain. Órdenes de trabajo, inspecciones de equipos, tracking de completitud.

recordMaintenanceOrder() completeMaintenanceOrder() recordEquipmentInspection() getMaintenanceHistory()

TraceConnector

0x3ABC06a56b7F7Ec3711C8282B5B778CE8e34Dda0

Puente entre Trace ERP y la blockchain. Ventas, movimientos de inventario y transacciones con proveedores con trazabilidad completa.

recordSale() recordInventoryMovement() recordSupplierTransaction() getSaleHistory()

ZKVerifier

0x6e28B9DD35C752DF4a38040df31c9A82c5285aF2

Verificador on-chain de pruebas Groth16. Utiliza precompilados EIP-196/197 para validar lotes de transacciones con privacidad.

setVerifyingKey() verifyBatchProof() getBatch() getAllBatches()

Arquitectura del sistema

Tres capas de integración

+---------------------------+
|   Enterprise Applications |  PLASMA, Trace (existing DBs)
|   (Node.js Adapters)      |  Dual-write pattern
+-------------+-------------+
              |
              v
+---------------------------+
|     Smart Contracts       |  Solidity 0.8.24
|  EnterpriseRegistry       |  Role-based access control
|  TraceabilityRegistry     |  Immutable event logging
|  PLASMAConnector          |  Maintenance workflows
|  TraceConnector           |  Supply chain tracking
|  ZKVerifier               |  Groth16 proof verification
+-------------+-------------+
              |
              v
+---------------------------+
|   Basis Network L1        |  Subnet-EVM (Avalanche)
|   Chain ID: 43199         |  Snowman consensus
|   Gas: 0 | Permissioned   |  TX + Deploy allowlists
+---------------------------+
          

Pruebas de conocimiento cero

Pipeline ZK (Groth16)

El sistema utiliza circuitos Circom con pruebas Groth16 para verificar lotes de transacciones sin exponer los datos originales. El flujo completo:

Paso 1

Circuito

batch_verifier.circom
742 constraints

Paso 2

Trusted Setup

Powers of Tau
Groth16 keys

Paso 3

Prueba

SnarkJS fullprove
proof.json + public.json

Paso 4

Verificación

ZKVerifier.sol
EIP-196/197 precompiles