EVM Compatible & Account Abstraction

Build Next-Gen Biometric dApps

Connect your Ethereum / Hardhat / Foundry dApps to the ROYI BlockChain via standard JSON-RPC endpoints. Seamless 100% Solidity & Web3.js compatibility.

Network RPC Specifications

Add ROYI Mainnet L1 to MetaMask or Web3 providers using these connection parameters.

Network Name
ROYI Apertum EVM Mainnet
RPC Endpoint
https://rpc.royi.io
Chain ID
7247 (0x1C4F)
Currency Symbol
ROYI
Block Explorer URL
https://royi.io/explorer

Official Deployed Smart Contracts

Verified contracts on the Apertum EVM Network.

Contract Name Address Description Status
ROYIToken.sol 0x4F19F19E37890987178909871789098717890987 Fixed 1B ERC-20 token with zero burn functionality Verified
ROYIStakingVault.sol 0x882A3901B9827419827419827419827419827419 Time-weighted staking & organic USDT reward engine Verified
BiometricAttestor.sol 0x992B4011C9827419827419827419827419827419 Zero-knowledge identity proof oracle engine Verified

Sample Solidity Integration

Example Solidity snippet for verifying biometric attestation & paying ROYI fee split.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

interface IROYIToken {
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function burn(uint256 amount) external;
}

contract BiometricPaymaster {
    IROYIToken public immutable royiToken;
    address public immutable stakingVault;
    address public immutable treasury;

    constructor(address _royi, address _vault, address _treasury) {
        royiToken = IROYIToken(_royi);
        stakingVault = _vault;
        treasury = _treasury;
    }

    function processVerificationFee(address user, uint256 feeAmount) external {
        // Collect ROYI verification fee
        royiToken.transferFrom(user, address(this), feeAmount);

        // Organic Real-Yield Distribution: 50% Staking, 30% Burn, 20% Treasury
        uint256 stakingShare = (feeAmount * 50) / 100;
        uint256 burnShare = (feeAmount * 30) / 100;
        uint256 treasuryShare = feeAmount - stakingShare - burnShare;

        royiToken.transferFrom(address(this), stakingVault, stakingShare);
        royiToken.burn(burnShare); // Send to null address 0x000...000
        royiToken.transferFrom(address(this), treasury, treasuryShare);
    }
}