How to add proof of personhood to your Fuse dApp using Humanode Biomapper?

How to add proof of personhood to your Fuse dApp using Humanode Biomapper?

Fuse is a public EVM-compatible blockchain designed for fast, low-cost Web3 payments and real-world use cases. It offers Ethereum interoperability, scalable infrastructure, and business-friendly features like gas abstraction. As the Fuse ecosystem grows, preventing Sybil attacks and bot exploitation is essential to maintain fair governance, reward distribution, and trust in dApps.

Humanode Biomapper is now live on Fuse, offering a privacy-preserving, biometric Sybil-resistance layer. Biomapper makes sure each dApp interaction comes from a real, unique human; no KYC, no exposure of biometric or personal data.

Key Concepts

  • Generations: Uniqueness proofs are valid for a fixed period (“generation”); after expiry, users re-verify.
  • Integration Flow: Users verify once, bridge their uniqueness proof to Fuse, and then use it across all supported dApps.

Step-by-Step Integration Guide

1) Install Biomapper SDK

npm install --save @biomapper-sdk/core @biomapper-sdk/libraries @biomapper-sdk/events

# or

yarn add @biomapper-sdk/core @biomapper-sdk/libraries @biomapper-sdk/events

For Foundry users:

forge install humanode-network/biomapper-sdk

2) Import SDK Interfaces (Solidity)

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

import { IBridgedBiomapperRead } from "@biomapper-sdk/core/IBridgedBiomapperRead.sol";

import { IBiomapperLogRead } from "@biomapper-sdk/core/IBiomapperLogRead.sol";

import { BiomapperLogLib } from "@biomapper-sdk/libraries/BiomapperLogLib.sol";

3) Connect to the Bridged Biomapper Contract

Use the deployed BridgedBiomapper contract address for Fuse in your network.

pragma solidity ^0.8.20;
  
import { IBridgedBiomapperRead } from "@biomapper-sdk/core/IBridgedBiomapperRead.sol";
  
contract FuseApp {
    IBridgedBiomapperRead public biomapper;
  
    constructor(address biomapperAddress) {
        biomapper = IBridgedBiomapperRead(biomapperAddress);
  
    }
    function secureAction() external {
        require(biomapper.isBridgedUnique(msg.sender), "Not a unique human");
  
        // ... your action logic
  
    }
  
}

4) UI Link for Users (Frontend)

Prompt the user to verify uniqueness:

< a href="https://biomapper.hmnd.app" target="_blank">Verify Your Uniqueness< /a>

After verification, they return to your dApp.

5) Local Testing (Optional)

Use SDK’s MockBridgedBiomapper to simulate uniqueness and generations locally. Refer to the SDK docs for mock contract functions and setup.

6) Deploy Your dApp on Fuse

  • Deploy your smart contract on Fuse (testnet/mainnet).
  • Use the correct BridgedBiomapper address for Fuse.
  • Ensure the frontend points users to the Biomapper App for verification.

Resources