How to add Proof of Personhood in your Scroll dApp
Scroll is leading the way in building a scalable, secure, and open Layer 2 ecosystem using zero-knowledge rollups. As a zkEVM-based L2, it's fully compatible with Ethereum and designed to bring fast finality, low fees, and high throughput to developers building the next wave of onchain applications.
But when access is easy and cheap, Sybil attacks become a real threat. Whether you’re building a DeFi protocol, an identity credential platform, a social app, or even a gamified dApp, ensuring every wallet belongs to a unique human is essential.
That’s where Humanode Biomapper comes in. Biomapper allows your dApp on Scroll to verify uniqueness without KYC, identity documents, or violating user privacy. Just cryptographic proof that an EVM address = one real, living human.
Why Sybil Resistance Matters on Scroll
Scroll's low-fee, permissionless nature makes it ideal for experimentation, but it also opens the door to bots and multi-wallet farming:
- Sybil-resistant airdrops: Prevent single users from claiming multiple rewards.
- Credential systems: Ensure each SBT, badge, or attestation is tied to a real person.
- DAO governance: One wallet = one vote only works when wallets are tied to real people.
- Contests, games, and incentives: Reward real community participation, not bots.
Biomapper helps solve these issues with a private, secure biometric uniqueness layer, built to complement Scroll’s zero-knowledge vision.
Why Biomapper Fits Seamlessly into the Scroll Ecosystem
Biomapper is designed with privacy and cryptographic trust in mind:
- Private Biometric Verification: Biometric scans are processed in an AMD SEV-SNP secured Confidential Virtual Machine (CVM). Even Humanode can't access them.
- No Identity Exposure: There’s no need to know who a user is, only that they’re real and unique.
- One Person = One Wallet: A user’s biometric data is linked to a single EVM wallet address per generation, and Sybil attacks are cryptographically blocked.
Biomapper doesn't require any centralized attestations or identity documents. Just liveness, uniqueness, and a wallet. That’s it.
Biomapper concepts to know before you integrate
- Generations: Biomapper operates in fixed-time periods. Each generation resets all previous mappings.
- Integration Flow: Users biomap once, bridge that mapping to Scroll, and use it across any dApp on Scroll that supports Biomapper.
How to integrate Biomapper in your Scroll dApp
Step 1: Install the Biomapper SDK
npm install --save @biomapper-sdk/core @biomapper-sdk/libraries @biomapper-sdk/events
Or using yarn:
yarn add @biomapper-sdk/core @biomapper-sdk/libraries @biomapper-sdk/events
Or with Foundry:
forge install humanode-network/biomapper-sdk
Step 2: Import Required Interfaces
// 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";
Step 3: Connect to the deployed Biomapper contract on Scroll
Biomapper is already deployed on Scroll. Here’s an example of how to connect and enforce uniqueness.
Example: Sybil-resistant SBT Minting
pragma solidity ^0.8.0;
import "@biomapper-sdk/core/IBridgedBiomapperRead.sol";
contract UniqueCredentialIssuer {
IBridgedBiomapperRead public biomapper;
mapping(address => bool) public hasMinted;
constructor(address _biomapperAddress) {
biomapper = IBridgedBiomapperRead(_biomapperAddress);
}
function mintCredential() external {
require(biomapper.isBridgedUnique(msg.sender), "Not a unique human");
require(!hasMinted[msg.sender], "Already minted");
hasMinted[msg.sender] = true;
// Call SBT minting logic here
}
}
Step 4: Use Mocks for Local Testing
Use MockBridgedBiomapper for local development to simulate uniqueness checks.
function generationsBridgingTxPointsListItem(uint256 ptr) external view returns (GenerationBridgingTxPoint memory);
Refer to the SDK for full mock testing setup.
Step 5: Frontend Link to Biomapper UI
< a href="https://biomapper.hmnd.app" target="_blank">Verify Your Uniqueness< / a>
Once users are verified, they return to your dApp with proof of uniqueness.
Deployment and Rollout
- Deploy your contracts on Scroll.
- Reference the correct deployed Biomapper contract address.
- Link your frontend to the Biomapper verification UI.
- Test everything thoroughly before going live.
That’s it…
Scroll is scaling Ethereum with zero-knowledge tech, and Biomapper is here to make sure the humans on it are real. No KYC. No identity exposure. Just cryptographic proof of personhood.
Biomapper is now live on Scroll. Add it to your dApp to enable Sybil resistance and build with confidence.