BEZ-Coin token logoBEZHAS
descriptionIntegraciónAvanzado4 min de lectura

Smart contracts y ABIs

El protocolo consta de ~88 contratos organizados en un núcleo común y 16 verticales sectoriales. Todos son EVM (Solidity ^0.8.24) y se construyen con Foundry.

Cómo obtener direcciones y ABIs

Nunca copies una dirección a mano. Usa una de estas dos vías:

js
// Vía SDK
const { getContract, getABI } = require('@bezhas/sdk');
const bez = getContract('BEZCoinV2', 'bezhas-l2');
const abi = getABI('BEZCoinV2');
bash
# Vía API
curl https://api.bezhas.com/api/gateway/v1/contracts/addresses
curl https://api.bezhas.com/api/contracts-abi/BEZCoinV2

Se publican los ABI de las interfaces públicas. El código de despliegue, los scripts de operación y los contratos internos no se exponen.

Núcleo del protocolo

ContratoFunción
BEZCoinV2Token nativo ERC-20 con Permit y Votes
BEZSectorStandardBase común de cobro en BEZ para contratos sectoriales
BeZhasPaymentProcesador de pagos con comisión, lotes y reembolso
BeZhasDEXIntercambio on-chain
BeZhasLPToken · LiquidityFarmingLiquidez y farming
StakingPoolStaking de BEZ con boost por tier
ValidatorRegistryRegistro de validadores, tiers y unbonding
EdgeNodeRewardsRecompensas DePIN por trabajo verificado
SlashingManagerPenalizaciones
L2Sequencer · SequencerRotationSecuenciación y rotación
GovernanceSystemDAO (OpenZeppelin Governor + Timelock)
QualityEscrow · DeliveryEscrowEscrow por calidad y por entrega
BeZhasBridgeL2 · BEZPolygonBridge · WrappedBEZPuentes cross-chain
AegisSecurityProviderCapa de seguridad del protocolo
OpenClawAgentIntegración con la capa de agentes IA
BeZhasWorkflowRegistryRegistro de flujos de trabajo
BeZhasCommissionSplitterReparto de comisiones

Wallet e identidad

ContratoFunción
SmartWallet · SmartWalletFactoryCuentas inteligentes (account abstraction)
PaymasterTransacciones sin gas para el usuario final
MultiSigWalletOperaciones institucionales multi-firma
SecurityModule · WalletGuardianLímites, guardianes y recuperación
IdentityRegistryIdentidad on-chain

Tokens y NFT

ContratoFunción
BeZhasLogisticsNFTManifiestos logísticos (ERC-721)
BeZhasPartnerSBTCredencial de partner, no transferible

Contratos por sector

SectorContratos
Supply chainSupplyTracker, ProcurementNFT, WarehouseManager, SupplierScoreOracle, ClearanceCertificateNFT, CustomsClearanceOracle, TrackingIntegrationGateway, TrackingToCustomsGateway
SaludHealthRecordSBT, PharmaTracker, HealthInsuranceEscrow, ClinicalDataMarketplace
EnergíaCarbonCreditToken, P2PEnergyMarket, SolarFarmToken, ESGScoreOracle
AutomociónVehicleIdentityNFT, AutoPartsRegistry, FleetLeaseEscrow, EVChargeToken
IndustriaQualityCertificateNFT, DigitalTwinRegistry, MaterialTokenMRP, PredictiveMaintenanceLog
AgriculturaCropTokenFutures, AgriSupplyChain, AquaFarmMonitor, LandTitleNFT
SegurosPolicyNFT, ParametricInsurance, ClaimAdjuster, ReinsurancePool
EducaciónCourseTokenNFT, SkillBadgeSBT, EduDAO, ScholarshipPool
EntretenimientoEventTicketNFT, FanTokenDAO, RoyaltyDistributor, StreamingRightsMarket
LegalSmartLegalContract, EvidenceVault, ArbitrationDAO, IPRegistryNFT
GobiernoCitizenIdentityNFT, PublicBudgetDAO, LandCadastralRegistry, VotingSystem
FinanzasMicroLendingPool, InvoiceFactoring, CreditScoreOracle, TreasuryVault
ServiciosFreelanceMarketplace, SubscriptionManager, SLAMonitor, ServiceReputationNFT
OtrosLoyaltyRewards, CrowdfundingPool, P2PMarketplace, CharityVault

Interactuar con un contrato

js
import { ethers } from 'ethers';
import { getContract, getABI } from '@bezhas/sdk';

const provider = new ethers.JsonRpcProvider(process.env.BEZHAS_L2_RPC_URL);
const info = getContract('BEZCoinV2', 'bezhas-l2');
const bez = new ethers.Contract(info.address, getABI('BEZCoinV2'), provider);

console.log(await bez.symbol(), ethers.formatUnits(await bez.totalSupply(), 18));

Desarrollar tus propios contratos

Con Foundry:

bash
forge build --sizes
forge test -vvv

Si tu contrato cobra en BEZ, hereda de BEZSectorStandard: obtienes tesorería, comisión acotada y el evento BEZFeeCollected de forma coherente con el resto del ecosistema.

En la red local puedes desplegar libremente. Para desplegar en la red principal se requiere revisión previa.

Convenciones del ecosistema

  • AccessControl por rol, nunca onlyOwner para operaciones sensibles multi-actor.
  • ReentrancyGuard en toda función que mueva valor.
  • SafeERC20 para transferencias de token.
  • Eventos con indexed en los campos por los que vas a filtrar.
  • Errores personalizados (revert ZeroAmount()) en lugar de strings largos.
  • Comisiones acotadas por contrato, no por confianza en el operador.

Ver también