# Welcome Havenauts!

Say hello to Haven1, the REKT-Resistant EVM L1 blockchain—purpose-built to scale secure DeFi and enable tokenized Real-World Asset applications, or as we Havenauts say, "DeFi 2.0!"

<figure><img src="/files/sdhqBSK14kVhnVg8hTxm" alt=""><figcaption><p>Haven1 - a purpose-built EVM L1 blockchain to scale DeFi and Tokenized Real-World Assets (RWAs)</p></figcaption></figure>

Welcome, **Havenauts 🧑‍🚀** to the official documentation for Haven1—an EVM-compatible blockchain purpose-built to address the core challenges hindering mass DeFi and Web3 adoption: security, liquidity, and accountability.

As crypto faces persistent threats from hacks, scams, and rug pulls, Haven1's mission is to build and expand a secure and thriving blockchain ecosystem. Haven1 is a complete blockchain network where builders and users can transact confidently, free from the risks of common on-chain exploits—also known in Web3 as getting REKT.

## Haven1: The REKT-Resistant EVM L1 Blockchain, Purpose-Built for DeFi 2.0

Crypto as a whole—and particularly [DeFi](/additional-resources/haven1-terminology)—faces frequent security breaches, scams, and rug pulls. Without a reliable way to verify counterparties, users face increased exposure to security threats and malicious activity.

That's why we created Haven1, a [Layer 1](/additional-resources/haven1-terminology) blockchain designed to address the core barriers to mass Web3 adoption: security and liquidity. A secure blockchain ecosystem where security guardrails are built into the network, enabling more trusted on-chain interactions.

With Haven1, **secure on-chain transactions are finally within reach.** Our anonymized yet verifiable hPassport provides a provable identity framework that enhances trust and accountability, particularly for builders. This is complemented by wallet-level two-factor authentication, 24/7 AI-powered network guardians, and a reserve fund designed to enhance security, incorporating Bitcoin as a key asset for added resilience.

Set to launch in **Q1 2025**, Haven1 is open to anyone who wants to join fellow **Havenauts 🧑‍🚀 in the REKT-Resistance movement.**

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Learn about Haven1</strong></td><td>Learn how Haven1 is enabling on-chain finance for everyone</td><td></td><td><a href="/pages/gjGaDpPP6SLLY9DB7pah">/pages/gjGaDpPP6SLLY9DB7pah</a></td></tr><tr><td><strong>Start building</strong></td><td>Learn how to build on Haven1</td><td></td><td><a href="https://github.com/haven1network/dev-onboarding-template">https://github.com/haven1network/dev-onboarding-template</a></td></tr></tbody></table>


# Haven1 Litepaper

Overview of the most important concepts behind Haven1.

## Introduction to Haven1

The current landscape of blockchain security is complex and rapidly evolving. Despite significant advancements in the underlying technology, there remains a lack of clarity and consensus on the best approach for securing and decentralizing networks.

The requirement for participants to interact with anonymous counterparties and nascent smart contract technology without access to standardized modes of remediation or quality assurance, has created a playground fraught with hacks, scams and rug pulls resulting in billions of dollars worth of assets lost, and limited ability to attract retail, professional and institutional capital in a safe and scaleable way.&#x20;

Without a concerted effort to address these challenges, the potential for blockchain technology to transform the underpinnings of most industries, will not be fully realized.

## A SafeHaven EVM L1 Blockchain Purpose-Built for DeFi 2.0

<figure><img src="/files/sdhqBSK14kVhnVg8hTxm" alt=""><figcaption><p>Haven1 - a purpose-built EVM L1 blockchain to scale DeFi and Tokenized Real-World Assets (RWAs)</p></figcaption></figure>

{% hint style="info" %}
Haven1 is a REKT-Resistant EVM Layer 1 (L1) blockchain meticulously designed to scale DeFi and tokenized Real-World Assets (RWA), while preventing common onchain hacks, scams, and rug pulls with enforced network-level safety guardrails—ensuring a secure environment where community members can interact with ecosystem hApps with complete peace of mind.
{% endhint %}

### Fixing an Industry Stuck in "One-Step Forward, Two-Steps Back"

<figure><img src="/files/nFeFaMTn70D3rB6fQo3U" alt=""><figcaption></figcaption></figure>

#### **Web3 cannot scale with billions of users assets lost every year to scams, hacks, rug pulls and exploits (See:** [**in 2023, Crypto Users lost $2B to hacks, scams and exploits**](https://www.coindesk.com/tech/2023/12/27/crypto-users-lost-2b-to-hacks-scams-and-exploits-in-2023-defi-says/)**).**&#x20;

Most decentralized applications (dApps) built on permissionless blockchains involve financial transactions where digital assets change hands, creating opportunities for malicious actors to exploit user funds.

A more secure blockchain ecosystem that enforces robust security standards and mitigates risks can foster broader adoption by retail, professional, and institutional users who are otherwise deterred by today’s vulnerabilities.

#### **Hacks, exploits, and other malicious activity primarily occur due to:**

* Inability to effectively create and maintain enforced security standards on protocols
* Unknown, unidentifiable counterparties
* Weak governance structures

As more solutions move toward Layer 2s and Rollups, new risks emerge. Some L2 implementations still rely on unproven sequencer technology that may introduce security and centralization concerns if not properly designed.

In order to solve the aforementioned problems, while maintaining decentralization, a blockchain ecosystem must be able to enforce security standards both prior to transactions reaching the network, but also within the consensus mechanism of the network itself.&#x20;

#### **The Answer**&#x20;

A **public-permissioned, proof-of-authority blockchain ecosystem** built on battle-tested technology. Decentralizing the network through a diverse set of reputable third-party businesses ensures network security while maintaining decentralization.

<figure><img src="/files/i7gE8wHZoRW40o8oTeOE" alt=""><figcaption></figcaption></figure>

## The Future Digital Economy Needs a SafeHaven

Haven1 is a public-permissioned, EVM-compatible, Proof-of-Authority (PoA) blockchain ecosystem that provides a secure and trusted environment where verified users can connect with vetted onchain applications and interact without fear of hacks, scams, or exploits.

### Unlike any other blockchain network, Haven1 users can be assured of the following network-enforced protections:

#### **Protection 1:**[ **hPassport**](/products/provable-identity-framework) **Ensures Verified Counterparties**

All users and builders must go through a proprietary anonymized, yet verifiable identity verification process (KYC/KYB) wherein they must mint and hold a valid hPassport in their wallet to transact on Haven1. This ensures an ecosystem with verifiable counterparties and enhanced transparency.

The handling of sensitive information and the protection of user privacy are paramount, particularly regarding financial transactions. To this end, specific user details are not recorded on the blockchain. Instead, only the results of identity checks (i.e., verified or unverified) are stored, enhancing privacy while maintaining transparency and trust in network operations.

#### **Protection 2: Mandatory Smart-Contract Audits & Permissioned Deployment**

Prior to deployment, all builders of smart contracts on Haven1 must submit two (2) verified, third-party audits from Haven1's approved auditor list.

To ensure the audits have been completed and no code has been changed, all smart contracts are diff-checked against the audits and deployed in a permissioned manner on behalf of the builder.

#### **Protection 3: Integrated** [**Wallet Shields**](/haven1-shield-2fa) **for Maximum Protection**

As a permissioned blockchain, all remote procedure calls (RPCs) are permissioned, allowing Haven1 to enforce two-factor authentication (2FA) at the network level. This enables users to opt into **standard 2FA protections**, securing assets against private key and seed phrase theft. A feature rarely seen on other networks today.

Recovery can be completed in conjunction with verifiable identity using hPassport.

Haven1 also collaborates with dedicated third-party partners to offer additional wallet services, such as:

* Multi-signature wallets for institutions or businesses managing capital onchain
* Rule- and anomaly-based transaction monitoring and flagging to prevent unauthorized fund movements

#### **Protection 4: AI-Powered** [**Network Guardians**](/foundations-of-haven1/haven1-network-guardians) **for 24/7 Preventative Threat Detection**

In partnership with dedicated onchain threat and anomaly detection providers (i.e., Network Guardians), AI-powered bots actively monitor the network 24/7, including:

* **Transaction Analysis**: Monitoring network transactions for signs of malicious activity such as double-spending or high gas fees.
* **Smart Contract Monitoring**: Identifying vulnerabilities like reentrancy attacks.
* **Price Manipulation Surveillance**: Detecting manipulation within DEXs or oracle services to maintain asset pricing integrity.
* **Flash-Loan Attack Prevention**: Recognizing large-scale, rapid transactions that indicate market manipulation.
* **Event and Call Trace Analysis**: Reviewing smart contract-generated events to identify irregularities or malicious activity.

#### **\[To Be Voted On] Protection 5: Multi-Asset Reserve Funds for Dispute Resolution**

Haven1 governance may vote on allocating a portion of application fees to a managed reserve fund designed to support [dispute resolution](https://docs.haven1.org/most-secure-blockchain/dispute-resolution-mechanism) mechanisms at the network level.

## "The Collective" a unique role in Haven1's Proof-of-Authority Network

At blockchain genesis, Haven1 will designate nine (9) highly reputable and globally trusted businesses as the Validator & Infrastructure Partner Collective. Each business will undergo a rigorous screening process to ensure they are trusted, reputable.

These entities, recognized for their reliability, are responsible for ensuring the security, stability, and integrity of the network. The Collective receives network-based incentives for securing transactions, supporting governance functions, and ensuring operational integrity.

### The four (4) key responsibilities of The Collective in the Haven1 ecosystem include:

1. **Reliable Network Operations:** Committment to ensuring seamless transactions and network stability by validating blocks and maintaining high-performance infrastructure&#x20;
2. **Active Protection:** Strengthening security and fraud prevention by monitoring network activity and safeguarding users against threats.
3. **Institutional Grade Standards & Trust:** Bringing well-established operational standards, internal controls, and multiple layers of oversight to ensure fair, transparent, and accountable network operations & governance. The Collective participants serve as independent safeguards within the governance framework, with limited override authority that may be exercised only if a simple majority of them deem a proposal to be malicious, a threat to network integrity, or detrimental to long-term sustainability.
4. **Network Growth & Adoption:** Supporting ecosystem expansion by integrating industry expertise, fostering strategic partnerships, and enabling real-world use cases on Haven1.

This rigorous selection and screening process significantly mitigates the risk of malicious behavior on the network and ensures that The Collective remain committed to maintaining security and trust.

{% hint style="info" %}
PoA networks are secured by a carefully selected group of node operators, who validate all transactions on the chain.
{% endhint %}

In the interest of transparency, all partners in The Collective on Haven1 will be publicly verifiable, allowing anyone to confirm their role and track their performance on the network while maintaining appropriate privacy protections.

This rigorous selection and screening process significantly mitigates the risk of malicious behavior on the network and ensures that The Collective is committed to maintaining the security and integrity of the network and it's infrastructure.

Lastly, all partners in The Collective are aligned to either facilitate and/or build real-world applications and use cases on Haven1. In order to join The Collective, existing and new partners must furnish a compelling business case for how they intend to support Haven1's growth, adoption, security and/or reliability.

<figure><img src="/files/bFhWeC6NTj7x9DiYfrnN" alt=""><figcaption><p>Real businesses are operating, securing, and supporting the expansion of the network through real-world use cases.</p></figcaption></figure>

### Permissioned, yet Decentralized

One of the most unique features of Haven1 is that The Collective independently manages access to the secure Haven1 bridge, ensuring that no single entity has unilateral control over network entry or exit. This distributed governance mechanism is a cornerstone of Haven1’s decentralized design.

#### Permissioned Does Not Mean Centralized, and Permissionless Does Not Mean Decentralized

A common misconception in the blockchain community is that the more validators or nodes a network has, the more “decentralized” it must be. This oversimplification overlooks the complexities of how these networks are managed and governed.

For example, many Layer 2 (L2) solutions, often perceived as decentralized because of the underlying Layer 1 blockchain they are built on, are ironically controlled by a single, centralized sequencer in a permissioned manner, creating centralization risk. Even some of the more prominent L1 networks that claim to be Proof-of-Stake (PoS) often rely on Delegated Proof-of-Stake (DPoS) to achieve scalability. This results in a scenario where a small group of entities, typically around 15-20, control the majority of the network’s validation power.

Haven1 adopts a permissioned Layer 1 (L1) approach to enhance security and enforce network-level protections without sacrificing decentralization. By controlling network access through permissioned RPCs, Haven1 enables advanced features like gasless transactions and enforced smart contract audits, which are otherwise difficult to implement on fully permissionless ecosystems. Instead of a central entity, network access and bridging are collectively managed by nine (9) distinct businesses, ensuring no single entity has unilateral control over the network. This approach decentralizes risk and significantly mitigates centralization concerns.

#### Why nine instead or a larger number? Isn’t that centralized?&#x20;

The short answer is *no*, and here’s why.&#x20;

#### **Defining Decentralization**&#x20;

When you look at important bills like[ H.R.4763](https://www.congress.gov/bill/118th-congress/house-bill/4763), it defines "decentralization" as:

> "no person has unilateral authority to control the blockchain or its usage, and no issuer or affiliated person has control of 20% or more of the digital asset or the voting power of the digital asset."

With nine (9) businesses managing network, node and infrastructure access, this ensures that control is at a minimum 1/9 (\~11%), which is materially under the 20% threshold.

#### Nine is Only the Minimum

The current set of businesses has the flexibility to vote in additional, reputable businesses as needed. This ensures that the network remains adaptable, secure, and scalable through governance-driven expansion.

In fact, this has already happened. The original plan was to launch with seven (7) businesses (\~14% threshold), but due to a strong influx of applications from Tier 1 businesses, The Collective has already voted to onboard two (2) additional businesses!

## Validation Process Requires Consensus only with Valid, Verified Counterparties

Proof of Authority (PoA) is a consensus mechanism that emphasizes the value of identity and the reputation of block validators. In Haven1’s network, validators process transactions similarly to other PoA networks while leveraging hPassport technology to enhance verification within network operations.

### A Valid hPassport to Transact

During the transaction process, validators perform a vital task by verifying the user’s wallet address against anonymized, on-chain validation data. This step is essential in upholding network integrity and reinforcing user trust.

The process implements strong security measures to reduce the risk of unauthorized activity on the Haven1 blockchain, ensuring a reliable and trusted network environment.

{% hint style="info" %}

* If a user has not completed the necessary identity verification, the network will not authorize the transaction for execution. This policy is in place to uphold the network’s standard of security and trust.
* If a user’s status changes in a way that affects network integrity, only withdrawal requests will be processed, following predefined security protocols to ensure a safe and compliant ecosystem.
  {% endhint %}

<figure><img src="/files/plfjpgA6RqSy4RpSHbZR" alt=""><figcaption></figcaption></figure>

## A Blockchain You Can Trust

{% hint style="info" %}
A safe, secure, and transparent asset bridge is critically important for Web3 platforms.
{% endhint %}

Beyond decentralizing access via independent, world-renowed and reputable businesses, Haven1 employs a combination of cryptographic attestation for digital assets stored in the [secure asset bridge](/products/asset-bridge-and-storage) and a corresponding audit of user liabilities. This method enables users to utilize existing assets from a variety of alternative blockchains, provided they are whitelisted for onboarding and reviewed by the Haven1 community.

A key challenge with existing cross-chain network implementations is the reliance on automated bridging solutions. As many bridges implement experimental code—often to expedite settlement—the potential for capital losses due to smart contract failures and exploits remains high.

Haven1 addresses this challenge by partnering with established, reputable entities to ensure that every asset within Haven1 is designed to be transparently backed 1:1 by the corresponding underlying asset, ensuring redemption mechanisms remain accessible under normal conditions.

This enables users to utilize cold storage solutions within the Haven1 ecosystem for added protection, introducing an additional layer of security against hacks and exploits.

Further security enhancements can be applied to withdrawals when anomalies are detected. Measures such as time-based withdrawal waiting periods, two-factor authentication, and liveliness tests introduce additional safeguards by providing a challenge window for network validators to identify malicious behavior.

## The Haven1 ($H1) Token

### Governance

Haven1 token holders participate in decentralized governance, contributing to key protocol decisions through voting rights. They can engage in important proposals that impact the operation and development of the network, ensuring alignment with community interests.

Governance participation includes decision-making on key parameters and development aspects of three core network-native protocol applications: an automated market maker, a money market, and a derivatives platform.

### Governance Participation

Haven1 token holders contribute to governance decisions that shape the ecosystem and its development, ensuring alignment with the broader network vision.

### Application fees

The Haven1 token is used for governance, security, and network operations, supporting a seamless and efficient ecosystem.

A unique feature of the Haven1 blockchain is the introduction of an application-specific transaction fee. Asset transfers between accounts will have no charge, whereas interactions with applications, such as swapping an asset on an automated market maker, will incur an application fee.

These fees create a more transparent and developer-friendly ecosystem, ensuring accessibility and sustainability for all participants. Rather than encouraging developers to design inefficient gas contracts to extract value from users, Haven1's application fee model allows builders to set a fixed dollarized fee, paid in $H1.

This decouples builders from the volatility of gas fees and token price while offering multiple benefits, including:

#### **Key Benefits**

1. **Developer Autonomy:** Developers have the flexibility to set their fees, tailoring pricing strategies to their application's value proposition and target audience.
2. **Sustainable Development:** Developers can establish sustainable business models, supporting ongoing development and innovation.
3. **Ecosystem Health:** These fees contribute to the ongoing maintenance, security, and operational efficiency of the Haven1 network.
4. **Adaptive Fee Structure:** Haven1's [FeeContract](https://explorer.testnet.haven1.org/address/0x716C2a405A658F96FCe7E7C2eE81C0C718bb3d76) manages these fees dynamically, ensuring adaptability based on network usage and evolving application needs.

## Core Haven1 Applications (hApps) support network sustainability and ecosystem utility.

Haven1 introduces a unique model where the core protocols are governed by the Haven1 community (i.e., network participants), addressing key liquidity and availability challenges in the Web3 space while ensuring the $H1 token remains central to network operations and governance.

Haven1’s infrastructure is designed to create a sustainable and self-sufficient ecosystem where DeFi applications drive network growth and adoption.

<figure><img src="/files/hrvThll4vh0jZPPYUzQv" alt=""><figcaption><p>Core hApps provide foundational DeFi functionality from blockchain genesis, ensuring liquidity efficiency and strengthening network utility.</p></figcaption></figure>

## The Haven1 Governance Model

The purpose of Haven1 Governance is to provide a decentralized mechanism for making decisions and proposals that shape the operation and development of the Haven1 network. Haven1 token holders can participate in governance decisions that shape the network’s future, ensuring an inclusive and transparent decision-making process.

Governance decisions require validator approval to ensure alignment with the network’s security and stability goals. This structured approach ensures that any changes made to Haven1 reinforce its mission of providing a secure environment for on-chain finance.

The Haven1 governance model is designed to allow the network to adapt and evolve in response to changing conditions. As Web3 infrastructure evolves, the governance structure can implement modifications to maintain network efficiency, security, and usability.

In addition to decision-making, Haven1 governance facilitates the proposal and implementation of new features and upgrades. Token holders may vote on network improvements, such as expanding supported applications or refining existing infrastructure. This process allows Haven1 to continuously enhance its platform, ensuring a robust and secure ecosystem for on-chain finance.

At its core, Haven1 governance ensures the network remains user-driven, maintains safeguards for asset security, and integrates checks and balances to reinforce the integrity of the ecosystem.

## Unlocking New, Innovative Use Cases, While Enhancing Existing

A key benefit of Haven1’s provable identity framework (hPassport) is that developers can access verified identity data to unlock new Web3 use cases that are not currently possible on decentralized platforms.

#### Reputation-Backed Lending Models

Builders can leverage hPassport to integrate real-world credit scores into on-chain lending markets, similar to traditional loan risk management systems. This approach enables trusted lending practices without requiring full collateralization, expanding accessibility while maintaining security.

Integration with Real-World Assets

Haven1 cost-effectively facilitates the integration of real-world assets where proof of identity is required. This includes investment vehicles backed by real estate assets, leveraging non-fungible tokens (NFTs) to represent ownership rights.

#### Global Exchange and Settlement

Tokenized real-world assets can be exchanged and settled efficiently in a global environment, enabling new financial applications within a their own business framework.

#### **Verified Tokenized Money Market Funds in DeFi**

Verified users who meet regulatory requirements can interact with regulated tokenization platforms that offer tokenized money market funds and other real-world assets (RWAs). Users can leverage DeFi looping strategies, such as borrowing and lending, to optimize capital allocation securely within Haven1.

**Compliant Prediction Markets Out-of-the-Box**&#x20;

The prediction market sector has strong potential in Web3 but faces compliance challenges due to age restrictions and country-specific regulations.

Ensuring compliance is complex and often requires extensive verification processes. Traditional methods pose privacy risks and increase operational costs. As a result, many prediction markets struggle to operate legally and efficiently.

The hPassport enables seamless, privacy-preserving verification of users' age and country of residence, removing the need for complex KYC integration. This ensures that prediction markets can comply with legal boundaries while maintaining a frictionless user experience.

More Flexible Business Models for Gaming\
The gaming industry has been an early Web3 adopter, but most games rely solely on NFT sales for monetization. Many developers lack the resources to build complex financial smart contracts, making scalable monetization difficult.

Haven1’s application fee model allows developers to define transaction-based pricing structures, enabling new business models such as subscription-as-a-service, in-game purchases for extra lives or perks, and premium content unlocks.

Large gaming studios already have financial teams that can develop such models, but this approach empowers developers of all sizes to monetize from day one.

#### **Gasless Transactions Enable a Freemium Model**

Haven1’s gasless network allows developers to subsidize user transactions for certain application-level interactions, enabling freemium business models that are cost-prohibitive on other blockchains.

## A Blockchain Designed to Support Institutional Finance

Haven1 connects professional investors to on-chain finance, supporting efficiency and innovation while prioritizing security and responsible on-chain finance.

Built for all, but structured to provide the necessary frameworks and guardrails for institutional and professional adoption, Haven1 is designed to support a secure, efficient, and trusted ecosystem that aligns with institutional-grade security and compliance standards.

The global market capitalization of traditional financial assets is several hundred trillion dollars. By removing barriers to institutional participation in Web3 and addressing key security and compliance challenges, Haven1 creates new opportunities for broader adoption of on-chain finance.

## Strategic Advantages of Haven1

### **Only Verified Builders & Audited hApps**

Only verified builders can deploy on Haven1. Every hApp undergoes two independent audits before launch, ensuring all smart contracts are thoroughly reviewed. We prioritize quality over quantity for financial applications.

### **Permissioned, Yet Decentralized**

Haven1 is secured and validated by world-renowned brands, ensuring trust and reliability. Proprietary multi-signature consensus technology ensures that no single entity controls network access, while permissioned RPCs protect data sent to the network.

Nine initial validators enable the economics of a gasless network, supplemented by application fees, to scale for both public and private infrastructure needs.

### **Game-Changing Utility & Liquidity**

Swap, Lending, and Perpetuals are native to Haven1, governed by the community, and built to enhance network functionality and utility within the Haven1 ecosystem.

Proprietary liquidity technology aggregates liquidity from multiple sources to provide competitive pricing and deep market access while ensuring self-custody of assets.

## About Haven1 Association

The Haven1 Association (“Association”) is a crucial component of the Haven1 network. It is a neutral entity supporting the continued adoption and development of the network.

One of the key responsibilities of the Association is to engage in outreach activities. This includes working with the broader blockchain and Web3 communities to raise awareness and educate potential users about the benefits and features of Haven1. The Association also collaborates with developers, businesses, and organizations to facilitate integration and expansion of the Haven1 ecosystem.

In addition, the Haven1 Association may offer resources and funding opportunities to developers building on the Haven1 network. This includes potential funding and technical support to help developers create new protocols, applications, and innovations on the network. The Association also provides guidance, mentorship, and other forms of support to help developers succeed.

As one of the initial genesis validators, the Haven1 Association contributes to network operations and security in collaboration with other validators. Its involvement helps align the network with global best practices and ensures ongoing integrity and efficiency.


# H1 Tokenomics

## Overview of Tokenomics

The Haven1 economy has been carefully designed to establish a sustainable economic model that supports network participants and long-term ecosystem growth.

This paper provides an overview of the key components of Haven1’s token utility and network structure. For a comprehensive understanding of Haven1’s technical design, we encourage you to refer to the [Haven1 documentation](http://docs.haven1.org).

## Key Participants of Haven1

### 👑 Community Members

Individuals and businesses submit transactions on the Haven1 platform for a variety of actions, including managing digital assets, interacting with smart contracts, and utilizing advanced applications.

Haven1 provides zero gas fees, a critical advantage for maintaining sustainable Web3 ecosystems while mitigating the volatility of transaction costs. Notably, Haven1 introduces an application-specific fee model, ensuring users only pay for the smart contracts they interact with.

### 💎🤲 $H1 Holders

Haven1’s native asset, $H1, has a limited supply. $H1 holders participate in governance, allowing them to engage in Haven1’s decision-making processes. These governance decisions cover important network aspects, including contract deployments, builder grants, protocol upgrades, and fee adjustments—giving $H1 holders a voice in shaping Haven1’s future.

### 🛡️ Validators

Validators are essential to Haven1, responsible for processing transactions and maintaining network security and efficiency. They earn a share of network-based compensation for securing transactions and maintaining network performance.

Unlike many other blockchain implementations, Haven1’s $H1 token is non-inflationary, meaning validators do not arbitrarily mint new tokens. This design ensures incentives remain aligned with the long-term stability of the network.

Validators play a key role in supporting the network’s expansion and security, making Haven1 a trusted, high-performance blockchain ecosystem.

## How the $H1 Token Powers Haven1&#x20;

$H1 is Haven1’s native utility token. It is a finite asset with a fixed supply of two billion $H1 tokens, designed to support Haven1's network operations. The $H1 token has four core components:

### ⛽️ Application Fees

Haven1 is pioneering a zero gas fees ecosystem to ensure a fair, flexible, and sustainable environment that shields users from gas fee volatility.

However, to support the network’s growth and utility, Haven1 introduces a unique dollarized [application-specific fee model](https://docs.haven1.org/build/application-fees), paid in $H1 tokens.

This application fee model addresses key challenges facing networks, builders, and users alike, offering a flexible solution for sustainable ecosystem growth.

#### 👷 Developer & Builder Benefits

Haven1’s application fee model provides a more predictable and flexible approach compared to traditional gas-based models, which can lead to inefficiencies and reliance on volatile market conditions.

With the application fee model, developers can decouple from the volatility of the $H1 token price and adopt more sustainable business models that are adaptable to market conditions and their audience’s needs, enabling a more reliable and stable source of income from day 1.

#### 👑💎🤲 Community & Holder Benefits

Participants of the Haven1 ecosystem benefit from the ability to move assets within the network at no cost, while only paying for smart contract interactions that provide tangible utility and impact to them. This eliminates traditional gas fees, providing a more predictable and efficient transaction experience.

$H1 stakers play a key role in supporting Haven1’s growth and development, aligning the interests of developers and $H1 holders.

### 🏛️ Governance

$H1 token holders participate in governance, helping shape the direction of core hApps (protocols) through voting on:

* **Protocol updates** for core hApps (hSwap, hLend, hPerps, hNFTS, hDomains)
* **New core protocols** to be added
* **Distribution of community-driven rewards** through the Governance Fund and fee channels

This decentralized governance model ensures the representation of $H1 token holders' participation in decision-making. Governance rights extend to key aspects of core hApps, including decisions around network parameters for AMM, credit/debt markets, derivatives, NFT marketplace, and Account Name Service.

### 🏦 Incentive Mechanisms

The Haven1 blockchain will select an independent incentives manager to oversee a fair and transparent on-chain $H1 rewards program that promotes positive and responsible conduct among its operators, including builders, community members, and validators.

### ⚖️ Token Utility & Economic Flywheel for Sustainable Value Recapture

The building block protocols (Core hApps) of Web3 Automated Market Maker, Lending Market, and Derivatives Platform are native to the network and governed by $H1 token holders through network participation and staking.

These essential pillars establish a foundation of network functionality and ecosystem sustainability, enabling the expansion of other features like the NFT Marketplace and Account Name Service.

#### 💡Economic Impact of Community-Owned Core hApps

1. **Concentrated Liquidity = Better Pricing:** Web3 often faces duplication of dApps without adding value to consumers. By concentrating liquidity in core protocols managed by the community, Haven1 ensures resources, mindshare and incentives are concentrated, leading to improved, fairer pricing for the community.
2. **Boosted $H1 Utility:** Without needing to share with third-party builders, the $H1 token will benefit from the demand generated by network usage, contributing to the creation of ecosystem-wide incentives based on network activity and throughput.

<figure><img src="/files/hrvThll4vh0jZPPYUzQv" alt=""><figcaption><p>Core hApps ensure primitive DeFi functionality is readily available, while concentrating liquidity and supporting the utility and demand for the native $H1 token.</p></figcaption></figure>

<figure><img src="/files/NwnEhg2edFMH7y1KmhHH" alt=""><figcaption><p>A multi-pronged approach to sustainable token economics that drives genuine network utility and supports ecosystem growth.</p></figcaption></figure>

## 🥧 $H1 Token Distribution

**The total supply of $H1 tokens is capped at 2,000,000,000 (two billion) and will reach full circulation in 72 months.**

The $H1 token distribution fosters a sustainable and thriving ecosystem by supporting network growth, encouraging active participation, and upholding decentralized governance principles.

45% (Community & Partners) + 3% (Initial User Airdrop) of $H1 tokens are allocated to initiatives aimed at network growth and sustainability, initially overseen by the Haven1 Association in alignment with decentralized governance principles.

These tokens will be allocated to various network participants, including builders, researchers, and validators, through programs designed to support network participation and ecosystem development.

Notable initiatives include the Developer Grant Program, which supports early projects contributing to Haven1’s growth, and the $H1 Incentive Program, designed to reward on-chain protocols for their contributions.

The remaining $H1 tokens will be distributed to early contributors, backers, market makers, exchange partners, and liquidity partners to help support the initial growth and liquidity of the ecosystem.

<figure><img src="/files/03C6PvVdsI9cxLK5yH8U" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="223">Category</th><th width="135">Percentage</th><th>Description</th></tr></thead><tbody><tr><td><strong>Testnet Airdrop</strong></td><td>2.5% (+0.5%) from Community Incentives</td><td>A series of airdrops to reward members and participants of the Haven1 community for specific helpful behaviors as outlined in the <a href="https://www.haven1.org/rewards">Rewards Hub</a>.</td></tr><tr><td><strong>Community &#x26; Partner Incentives</strong></td><td>45%</td><td>Proactive programs, grants, and incentives designed to stimulate community participation and ecosystem development. Distributed to developers, partners and individuals who actively contribute to Haven1’s growth.</td></tr><tr><td><strong>Early Backers</strong></td><td>10%</td><td>Early backers who supported the Haven1 vision and provided the necessary funding to build and grow the ecosystem.</td></tr><tr><td><strong>Public Round</strong></td><td>12.5%</td><td>Community backers who support the Haven1 vision and want to provide the necessary funding to bring Haven1 to market.</td></tr><tr><td><strong>Core Contributors</strong></td><td>15%</td><td>51 month distribution to people who play a crucial role in transforming the Haven1 concept into a reality, and will serve to fund the ongoing development of the protocol.</td></tr><tr><td><strong>Haven1 Association</strong></td><td>10%</td><td>Tokens allocated to kickstart and boost the core infrastructure initiatives through building, maintaining, liquidity provisioning, marketing and demand-based incentives.</td></tr><tr><td><strong>Floating Liquidity</strong></td><td>5%</td><td>Tokens allocated to providing initial and ongoing liquidity into the market.</td></tr></tbody></table>

## 🚰 $H1 Emissions Schedule

<figure><img src="/files/Rnhmu4zCXHix66BFat6s" alt=""><figcaption><p>A full view of the 72 month $H1 token emmissions schedule </p></figcaption></figure>

<figure><img src="/files/pSluX67Oa5YlUYdN5I4H" alt=""><figcaption><p>A zoomed in version of the first 12 months of the $H1 token emmissions schedule </p></figcaption></figure>

<figure><img src="/files/FhuK2MjZklZh36uXoG0p" alt=""><figcaption><p>Community eats first. Core contributors, last.</p></figcaption></figure>

## Closing Remarks

The Haven1 economy and tokenomics have been carefully designed to create a long-term, sustainable flywheel that drives the continued growth of Haven1 and encourages active participation in the ecosystem.


# Architecture & network design

Explore Haven1's architecture and network design, featuring Proof of Authority consensus, advanced permissioning, and robust security measures to create a scalable and secure blockchain ecosystem.

Haven1 is an EVM-compatible blockchain that extends GoQuorum, originally developed by JP Morgan and open-sourced by Consensys. This architecture leverages Haven1's **Proof of Identity Framework** and **Network-level Guardrails**, providing a secure and reliable blockchain solution. The tailored design enhances permissioning and security measures, positioning Haven1 as a robust solution for on-chain finance and enterprise applications.

#### **Client**

Haven1 utilizes **GoQuorum**, a fork of Geth tailored for permissioned blockchain environments. GoQuorum introduces advanced permissioning, essential for managing security and user verification within Haven1’s ecosystem. These features enable precise control over user access, roles, and permissions, meeting the rigorous demands of traditional finance systems.

#### **Consensus Mechanism**

Haven1 employs a **Proof of Authority (PoA)** consensus mechanism using **Istanbul Byzantine Fault Tolerance (IBFT)**. This consensus model enables trusted validators to establish consensus and validate transactions. By choosing IBFT over Proof of Work (PoW), Haven1 provides a more efficient, scalable solution for permissioned networks, ideal for enterprise blockchain applications.

#### **Nodes**

Validators in Haven1 play a critical role in maintaining the network’s integrity. They process transactions, participate in the IBFT consensus mechanism, and execute smart contracts, ensuring the network remains secure and reliable.

#### **Data Flow**

Haven1 exclusively uses the **public transaction layer** of GoQuorum’s architecture. Transactions are disseminated across all nodes following Ethereum’s standard data flow protocol, ensuring a consistent and universal state across the network.

#### **Network Manager**

The **Network Manager** controls access to the Haven1 blockchain and enables the creation of a permissioned network, ensuring that only verified participants can interact with the ecosystem.

#### **Security and Permissioning**

Haven1 enhances GoQuorum’s permissioning features by integrating **network-level guardrails**. This ensures that access to the network is strictly controlled and that sensitive data and transactions are managed with the utmost security. These permissioning measures meet the stringent security requirements of traditional financial institutions.

***

## **Key network design elements**

### **1.** [**Network-Level Guardrails**](/foundations-of-haven1/network-level-security)

Haven1’s architecture incorporates **security baked into the protocol**, ensuring users are protected at every layer without imposing unnecessary restrictions. Every contract deployed on Haven1 must go through a **whitelisting and approval process**, involving governance participation and risk assessments by the Haven1 team. This stringent process guarantees that deployed contracts adhere to the highest industry standards, offering a secure environment for both developers and users.

At the core of Haven1's guardrails is the **hPassport**, a robust identity verification framework. Every user must complete **KYC/AML** verification before they can engage in on-chain activities. This ensures that all participants are verified, minimizing counterparty risk, preventing fraudulent activities, and streamlining dispute resolution. Despite this stringent identity check, Haven1 maintains **privacy** by storing minimal data on-chain, preserving the user's personal information while enhancing security.

***

### **2.** [**Network Guardians**](/foundations-of-haven1/haven1-network-guardians)

The **Network Guardians** program acts as a proactive firewall, preventing malicious transactions from reaching the network’s RPC. By partnering with leading Web3 security firms, Haven1 leverages **real-time smart contract monitoring**, **two-factor authentication (2FA)**, and **customizable transaction policies** to safeguard users.

This approach offers multiple layers of defense:

* **Smart contract monitoring** actively detects vulnerabilities and potential exploits in real time.
* **2FA** provides users with additional security for their assets, ensuring that even if their private keys are compromised, unauthorized transactions can be blocked.
* **Customizable transaction policies** allow users to set rules on IP, time limits, and transaction size, providing further protection against unauthorized activities.

As Haven1 continues to evolve, the **Network Guardians** program will expand, bringing additional security layers to meet the growing threats within the blockchain ecosystem.

***

### **3.** [**Secure Bridging onto Haven1**](/products/asset-bridge-and-storage)

Haven1’s **Asset Bridge and Storage System** ensures secure and transparent transfers of digital assets between Haven1 and other blockchains. Key elements of this system include **cryptographic attestation** and **1:1 verifiable asset backing**, where tokens bridged onto Haven1 are fully backed by assets held in secure Fireblocks vaults. This provides users with complete transparency and access to proof of reserves.

Additional bridge security measures include:

* **Distributed keys** managed by seven globally recognized validators from both Web2 and Web3, exceeding the security of typical multi-signature setups.
* **Rate limits and time delays** on withdrawals, ensuring that transactions are processed in an orderly and safe manner.
* **Bridge audits** conducted before mainnet launch to further strengthen community trust.

The bridge facilitates **seamless deposits and withdrawals**: tokens deposited into the Fireblocks vault are mirrored as minted tokens on Haven1, while withdrawals involve burning these tokens and transferring the assets back to the user’s destination network.

***

### **4.** [**Best-in-Class Liquidity**](/foundations-of-haven1/best-in-class-liquidity)

Haven1 addresses one of the critical challenges in DeFi: **liquidity fragmentation**. By consolidating liquidity across its ecosystem, Haven1 ensures that market participants benefit from **seamless trading** and **maximized arbitrage opportunities**. This enhances overall **market efficiency** and provides a smoother experience for users.

By concentrating liquidity into its core protocols, Haven1 allows traders to interact with deep pools of capital, optimizing slippage and making cross-application arbitrage much more efficient than on fragmented ecosystems. This ensures better execution for traders and enhances the **value of the H1 token** by driving more activity and demand within the ecosystem.

***

### **5.** [**Core Protocols**](#id-5.-core-protocols)

At the heart of Haven1’s ecosystem are its **six core protocols**, which form the foundation for a more integrated on-chain infrastructure. These protocols, including **Automated Market Makers (AMMs)**, **Lending & Borrowing**, and **Derivatives platforms**, are directly owned and governed by Haven1.

This unique ownership structure eliminates the need for fragmented liquidity across multiple external protocols, instead consolidating it into a single ecosystem. As a result, Haven1’s core protocols generate direct value for **sustainable, ongoing ecosystem participation incentives** through fees, revenues, and governance rights. This integrated approach not only ensures liquidity but also strengthens the utility and value of the H1 token, making it central to the network’s success.


# H1 Token - The Core Utility of Haven1

The H1 token is the essential unit of utility within the Haven1 ecosystem. It is designed to power network operations, enable governance, and align incentives across participants.

### Token Addresses

H1 (ERC-20) token contract address on Ethereum Mainnet:  [0x9e3b5582b22e3835896368017baff6d942a41cd9](https://etherscan.io/token/0x9e3b5582b22e3835896368017baff6d942a41cd9)

H1 (wH1) token contract address on Haven1 Mainnet:  [0xB041be50694f3018912c18c710e7BBB931002598](https://explorer.haven1.org/token/0xB041be50694f3018912c18c710e7BBB931002598)

esH1 (escrowed H1) token address on Haven1 Mainnet:\
[0xC6414DC21b94f88e7aD43b92d98E27EcA6e97cbE](https://explorer.haven1.org/token/0xC6414DC21b94f88e7aD43b92d98E27EcA6e97cbE)

The H1 token is the **payment and utility unit** of Haven1. It is required to interact with applications, participate in governance, and support network operations. H1 also serves as the **common settlement token** across Haven1’s integrated protocols, ensuring consistent and reliable use of the network.

[Here is the link to Tokenomics if that is of interest](/get-started/h1-tokenomics)

***

### 1. Application Fees

Haven1 operates as a gasless network. Developers may choose to charge fees for advanced features within their decentralized applications (hApps). These fees are always settled in H1.

* **For developers**: A standardized method to enable monetization of premium services.
* **For users**: A consistent token that provides access to Haven1’s applications and services.

***

### 2. Network Participation & Staking

H1 holders can support Haven1’s security and reliability by staking their tokens. Stakers actively contribute to safeguarding the network and maintaining its infrastructure. Incentives are provided as protocol-level compensation for services performed, ensuring ongoing contribution to the network’s reliability.

* **Protocol alignment**: Incentives directly reward active support for network operations.
* **Operational resilience**: Staking fosters reliable participation and liquidity.

***

### 3. Ecosystem Fee Recycling

Haven1’s core protocols (e.g., **hSwap, hLend, hPerps, hNFTs, hNames, hRFQ, hAI**) generate usage fees. Usage fees are **recycled into the ecosystem through H1 to maintain protocol incentives for validators, developers, and active stakers.**

* **Sustainable contribution**: Fees help maintain protocol incentives for ongoing participation.
* **Unified utility**: H1 remains the settlement token across all Haven1 applications.
* **Aligned participation**: Protocol incentives are distributed to validators, developers, and contributors in recognition of their active role in maintaining and supporting the ecosystem.

***

### 4. Governance

H1 underpins Haven1’s governance model. Holders of staked H1 who receive veH1 can propose and vote on protocol parameters, ecosystem initiatives, and other decisions shaping the network’s evolution.

* **Influence decisions**: Token holders participate in changes to Haven1’s protocols and applications.
* **Community voice**: Governance ensures inclusive and transparent network development.

***

### 5. Ecosystem Incentives

Haven1 uses H1 to align contributions across all key stakeholders.

* **Validators**: Incentivized for securing the network and ensuring uptime.
* **Developers**: Encouraged to innovate by building new hApps and features.
* **Community participants**: Recognized for active involvement in governance and adoption.

***

### 6. Core Protocol Utility

Haven1 integrates DeFi applications directly into the network — including decentralized exchange, lending, and derivatives. H1 acts as the **settlement token** that ensures smooth operation across all services.

* **Unified settlement layer**: H1 is required for interaction with Haven1 applications.
* **Operational consistency**: Reduces friction and ensures interoperability across the ecosystem.

***

### **Summary**

The H1 token is **not a financial instrument**. It is explicitly designed and framed as a **hybrid payment–utility token** that:

* Powers application-level fees,
* Enables participation in governance,
* Supports security through staking,
* Recycles protocol fees to fund protocol incentives for active participants.
* Serves as the unified settlement token for Haven1’s applications.

H1 provides the **operational infrastructure** for Haven1, ensuring that participants can interact, contribute, and sustain the network effectively.


# Network-level security

Haven1's network-level security measures are meticulously designed to mitigate risks like hacks, exploits, and malicious activities.

### Audit Requirements

1. **Mandatory Audits:** Every application or protocol launched on Haven1 must undergo a minimum of 2 comprehensive audits conducted by recognized and reputable audit partners. The Haven1 team is committed to facilitating connections between developer teams and our trusted audit partners.
2. **Objective of Audits:** These mandatory audits are crucial to ensure that all applications are robust against vulnerabilities and conform to the highest industry standards. This rigorous auditing process significantly bolsters the security infrastructure of the Haven1 network.

For developers on the Haven1 platform, adhering to these protocols is crucial to ensure the integrity and safety of applications.

{% hint style="success" %}
Statistical analysis reveals a compelling insight: Protocols in the blockchain space that have undergone at least **2 audits** (in cases the bytecode remains identical for both audits) have a 99% lower probability of harboring undisclosed vulnerabilities. This underscores our commitment to ensuring the utmost security and reliability of protocols on Haven1.
{% endhint %}

### **hPassport obtained after Identity Verification**

* Haven1’s Passport plays a crucial role in ensuring network security by mandating strict identity verification for all on-chain transactions.
* **Security Enhancement**: Mandatory identity verification for transactions significantly reduces fraudulent activities.
* **Dispute Resolution**: This framework offers a reliable mechanism for resolving disputes, enhancing transparency and accountability.
* **Building Trust**: Verified identities increase user confidence in the network, fostering a more secure blockchain environment.

### **Specific Contract Requirements**

Haven1 imposes several contractual requirements for applications building on Haven1 to bolster network security:

1. **Role-Based Access Control (RBAC)**:
   * **Purpose**: RBAC is crucial for managing sensitive operations within smart contracts. It restricts critical functions like token minting and vote casting to authorized roles, thereby minimizing the risk of unauthorized access or manipulation.
   * **Implementation**: Developers must carefully assign roles and permissions, ensuring that only designated accounts have the authority to perform specific contract functions, enhancing the overall security and governance of the smart contract.
2. **Deployment Control**:
   * **Controlled Deployment**: To safeguard the network from potentially harmful contracts, only accounts owned by the Haven1 Association are permitted to deploy contracts. This centralized control mechanism adds an additional layer of security against rogue or malicious smart contract deployments.
   * **Quality Assurance**: This approach also ensures that all deployed contracts adhere to Haven1's stringent security standards and have undergone necessary audits and reviews, maintaining a high level of trust and integrity within the network.
3. **Contract Pausability**:
   * **Emergency Response**: The mandatory inclusion of a pausability feature in smart contracts allows for immediate response in emergencies. This feature can be crucial in halting operations in the event of detected vulnerabilities or attacks.
   * **User Protection**: Pausability serves as a protective measure, safeguarding users' assets and interests by promptly addressing unforeseen issues. It provides a mechanism for developers to rectify issues without jeopardizing the contract's integrity or user assets.

### Additional optional controls for users

Haven1 introduces several optional controls which users can enable and take advantage of additional security guarantees

1. **2FA**: Haven1 is the first blockchain to have a 2FA integrated at network level. This prevents you from getting REKT in a scenario where you have lost your private keys
2. **Finer access controls**: Users will also be able to turn on/off granular controls such as allowing access only from certain IPs and so. Anytime our RPC sees a transaction from an IP which is out of the selected IPs, the transaction is dropped
3. **Safe for Developers:** Developers can take advantage of built in Haven1 Safe to be able to quorom based access controls on their treasury or their deployments

### Continuous Monitoring and Incident Detection by Network Guardians

Haven1 places a strong emphasis on continuous monitoring and real-time detection of potential security threats. This proactive approach is crucial in identifying and mitigating risks promptly.

1. **Transaction Analysis**: Monitoring all network transactions for signs of malicious activity like double-spending or high gas fees.
2. **Smart Contract Monitoring**: Vigilant observation of smart contract interactions to identify vulnerabilities like reentrancy attacks.
3. **Price Manipulation Surveillance**: Overseeing potential manipulation within DEXs or oracle services to maintain asset pricing integrity.
4. **Flash-Loan Attack Prevention**: Detecting large-scale, rapid transactions to prevent market manipulation.
5. **Event and Call Trace Analysis**: Analyzing smart contract-generated events and call traces to identify irregularities or malicious activities.

### **Oracle Integration**

**Mandatory Oracle Services**: Haven1 mandates the integration of trusted oracle services such as Chainlink or Pyth in its applications.

**Objective**: This ensures data accuracy and overall network safety, essential for applications relying on external data feeds.

{% hint style="success" %}
This approach is aimed at enhancing the overall security of the network and providing a reliable mechanism for dispute resolution.
{% endhint %}


# Haven1 Core protocols

Core protocols such as a decentralised exchange, a perpetuals exchange as well as a lending& borrowing app are the critical DEFI infrastructure on Haven1. And they accrue value to H1 token

Haven1 offers a revolutionary approach to DeFi by owning core protocols like the AMM, Lending & Borrowing, and Derivatives platforms etc. directly enhancing H1 token utility. This integration addresses the critical challenge of liquidity fragmentation, streamlining trading and maximising arbitrage opportunities across the network. By consolidating liquidity, Haven1 improves market efficiency and reinforces the value of the H1 token.

## **Introducing Haven1’s Core Protocols**

Haven1's **core protocols** are designed to form the backbone of a more integrated on-chain infrastructure:

<details>

<summary><a href="https://portal.haven1.org/swap">hSwap</a>, <strong>Automated Market Maker DEX: Live</strong></summary>

[Launch hSwap](https://portal.haven1.org/swap)

**Overview:** Haven1’s AMM DEX serves as the foundational liquidity and trading hub of the chain, offering robust security and efficiency for trading activities. It's designed to facilitate seamless buying, selling, and exchanging of tokens within a trust-enhanced environment.

**Features:**

* **Deep Liquidity Pools:** Enable significant cross-chain arbitrage opportunities, enhancing market efficiency and connectivity.
* **Incentivized Liquidity Provision:** Participants are rewarded with transaction fees and liquidity mining incentives, fostering a vibrant and supportive trading ecosystem.
* **Automated Liquidity Management (ALM):** Integrates cutting-edge ALMs to optimize liquidity strategies, maximizing returns for liquidity providers through more effective capital allocation

</details>

<details>

<summary><a href="https://portal.haven1.org/earn">hEarn</a>, <strong>Automated Earn Vaults - LIVE</strong></summary>

[Launch hEarn](https://portal.haven1.org/earn)

**Overview:**\
hEarn is Haven1’s suite of automated earn vaults, offering users simple, seamless access to yield opportunities across DeFi. Designed for ease and scalability, these vaults allow anyone to earn rewards and farming incentives by depositing assets into curated strategies—without the need for active management or deep DeFi expertise.

**Features:**

* **Single-Sided ALM Vaults at Launch:** Start with eight single-sided vaults powered by automated liquidity management (ALM), optimized for efficient capital deployment and consistent returns.
* **Future Yield Strategies:** Coming soon—one-click access to tokenized treasury yields, basis trades, and structured DeFi products tailored to different risk profiles.
* **Hands-Free Earnings:** Vaults are managed programmatically, ensuring that users benefit from sophisticated strategies while maintaining full custody of their assets.

</details>

<details>

<summary>hLend, <strong>Lending Market: Coming Q3 2025 (Early September)</strong></summary>

**Overview:** Set to operate as a permissionless market, the Borrowing and Lending Market on Haven1 will offer a diverse array of both real-world and on-chain synthetic assets for lending and borrowing.

**Key Features:**

* **Earn Interest:** Users can generate income by lending out their assets.
* **Access Liquidity:** Borrowers can secure loans using their assets as collateral.
* **Transparent Operations:** All lending and borrowing transactions are managed through smart contracts to ensure clear, automated execution and full transparency.
* **Enhanced Composability:** Facilitates integration with various protocols and applications within Haven1, fostering the creation of sophisticated financial applications and seamless interactions across different DeFi services.

This platform aims to expand Haven1’s financial ecosystem by providing robust tools for asset management, enhancing flexibility, and driving innovation in financial services.

</details>

<details>

<summary>hPerps, <strong>Perpetuals Protocol: Coming Q3 2025 (End of September)</strong></summary>

**Overview:** Haven1’s Perpetuals Protocol is an on-chain financial marketplace that offers trading contracts based on the value of underlying cryptocurrencies. This allows traders to engage in the market without the need to own the actual assets.

**Key Features:**

* **Versatile Trading Instruments:** Includes futures, options, swaps, and other derivatives tailored specifically for the Haven1 ecosystem, accommodating a wide range of trading strategies.
* **Market Speculation and Hedging:** Traders can speculate on both upward and downward price movements, using the protocol to hedge against market volatility and manage risks effectively.
* **Leverage Opportunities:** Provides mechanisms for leveraging positions, amplifying potential returns while managing the inherent risks of derivative trading.

The Perpetuals Protocol enhances the financial capabilities of the Haven1 network by integrating a comprehensive suite of financial tools designed for advanced trading and risk management. This addition aims to bolster the economic activities on the platform by offering sophisticated financial products.

</details>

<details>

<summary>hRFQ, <strong>Request-For-Quote Swaps: Scheduled for Q4 2025</strong></summary>

**Overview:** The Request for Quote (RFQ) DEX on Haven1 is designed to revolutionize the way trading is conducted on decentralized exchanges by focusing on large block trades and minimizing market impact.

**Key Features:**

* **Tailored Trading:** Enables traders to request quotes for specific trade sizes directly from liquidity providers, ensuring competitive pricing and discretion.
* **Minimized Slippage:** Ideal for institutional and large-scale traders looking to execute significant transactions without affecting the market price.
* **Transparent Pricing:** Traders receive explicit price quotes before executing a trade, providing clarity and predictability.
* **Diverse Asset Pairs:** Supports a wide range of cryptocurrencies and tokens, facilitating cross-chain and multi-asset trades.

The RFQ DEX aims to cater to the needs of institutional investors and high-net-worth individuals, providing them with a platform that combines the benefits of DEXs with the trading features traditionally found in more centralized financial markets.

</details>

<details>

<summary>hNFTs, <strong>NFT marketplace: Scheduled for Q1 2026</strong></summary>

**Overview:** The NFT Marketplace on Haven1 is set to become a central hub for creators and collectors, facilitating the minting, buying, and selling of non-fungible tokens (NFTs) across various categories.

**Key Features:**

* **Diverse Collections:** Users can explore a wide range of digital assets, from art and music to virtual real estate and unique collectibles.
* **Creator Tools:** Provides artists and creators with intuitive tools to mint and manage their NFT offerings directly on the platform.
* **Secure Transactions:** All transactions are conducted on the blockchain, ensuring transparency and security for buyers and sellers.
* **Community Engagement:** Features like auctions, bidding, and direct artist support foster a vibrant community around digital collectibles.

This platform aims to empower digital creators and provide collectors with a secure and engaging marketplace to discover and invest in unique digital assets.

</details>

<details>

<summary>hNames, <strong>Haven1 Name Service: Scheduled for Q1 2025</strong></summary>

**Overview:** Haven1 Names will serve as the blockchain-based naming system similar to the Ethereum Name Service (ENS), offering users human-readable names that map to your cryptographic addresses on the Haven1 network.

**Key Features:**

* **Easy Name Registration:** Users can register and manage domain names that simplify transactions and interactions within the Haven1 ecosystem.
* **Enhanced Usability:** Provides a more user-friendly way to access and manage assets on the blockchain by replacing complex addresses with simple names.
* **Interoperability:** Integrates seamlessly with other services and applications on Haven1, enhancing the overall user experience across the network.
* **Decentralized Ownership:** Ensures that users have complete control over their registered names without any central authority.

Haven1 Names aims to streamline user interactions and transactions on the blockchain, making the ecosystem more accessible and navigable for everyday users.

</details>

## Network Ownership Benefits

* **Streamlined Market Liquidity**: Owning key infrastructure significantly reduces liquidity fragmentation, providing a seamless trading experience.
* **Enhanced H1 Token Utility**: Ownership ensures all fees, revenues, and governance rights from these protocols goes directly back to the ecosystem, rather than a 3rd-party, strengthening the token’s market utility and demand.

## The H1 token

<figure><img src="/files/PPTc24Wwi2BqOJWX53pk" alt=""><figcaption></figcaption></figure>


# Best in class liquidity

Haven1 is working to ensure users can transact on the network with best in class efficiency

1. **Onboarding institutional liquidity providers**

   Our institutional custody partner supporting Haven1 network gives instant access to asset managers

   Leverage our validator network's clients - all 7 validators are well established as enterprise-grade solutions and work with the largest asset managers/liquidity providers in the space today.
2. **Tapping into off-chain liquidity**

   hSwap will have an RFQ (request-for-quote) product that partners with multiple liquidity providers to source and provide access to deeper liquidity, providing better prices.
3. **Leveraging other communities (both holders as well as cross-chain liquidity providers).**

   Cross-chain Liquidity Aggregators: Working with cross-chain aggregation to bring liquidity from Ethereum Mainnet and the other major L2s to fulfil best in class trade execution on Haven1 Network

   Ethereum Staking on Haven1: Liquid ETH staking product with boosted H1 rewards - in partnership with Stader Labs, we are providing a boosted APY for ETH holders to natively stake their ETH. In addition, they are given a derivative token (hsETH) on Haven1 that can be used in our lending markets to compound their rewards.
4. **Provide products that incentivise people to store assets**

   Users continue to show demand for simple earn products, we’re working to build a RWA-backed earn vaults, where users can deposit their assets to earn dependable and transparent yield.
5. **Dynamically incentivising existing liquidity to move to where the demand is**

   Haven1 has significant portion of the token supply dedicated to community and network growth, which can be used to dynamically incentivise liquidity to move to where demand is by boosting (or lowering) liquidity provisioning rewards with H1 incentives


# Network Guardians: Firewall on Haven1

Haven1's Network Guardians program protects against malicious transactions, stopping them before they reach the network's RPC, ensuring enhanced security for all users.

Haven1 is designed to provide the highest level of security for users, developers, and institutions interacting with the blockchain. To achieve this, we’ve partnered with some of the most reputable security companies in Web3 to create a **Network Guardians** program—a multi-layered firewall that prevents malicious transactions before they reach the Haven1 network.

Our vision is to make Haven1 the **safest haven in the blockchain space**, and our **Network Guardians** program is at the heart of this effort. Let’s walk through the components of this evolving security framework:

***

### **1. Hypernative: Real-Time Smart Contract Monitoring**

At the core of our defense system is **Hypernative**, one of the leading names in Web3 security. Hypernative actively monitors smart contracts and identifies any potential vulnerabilities or signs of compromise in real time. If a contract is suspected to have been hacked or shows signs of abnormal behavior, **Hypernative can stop transactions from going through** before they even hit the Haven1 RPC (Remote Procedure Call) endpoint.

This immediate response is crucial in cases where contracts have been hacked or are otherwise compromised. Hypernative leverages its deep insights into contract behavior to detect and prevent malicious activity, protecting users and developers from potential losses.

***

### **2. Wallet Shield: 2FA for Wallet Security**

In addition to smart contract monitoring, Haven1 offers users **Wallet Shield**, a 2FA-enabled protection mechanism. Wallet Shield ensures that even if a user’s private key is compromised, their funds remain safe. With **two-factor authentication (2FA)**, users can set up an additional layer of security for transaction approvals, providing a safety net in case of phishing attacks or loss of their private key.

This allows users to operate with confidence, knowing that their assets are protected by more than just a private key, reducing the risk of **rug pulls** or unauthorized transactions.

***

### **3.** Tx Policy Shield **with Failsafe**&#x20;

One of the unique features Haven1 offers is a **Tx Policy Shield**. This tool enables users to set **custom transaction policies** that act as automated rules for when transactions should be allowed or denied. These policies can be based on parameters such as:

* **IP restrictions**: Only allow transactions from specific locations.
* **Time windows**: Restrict transactions to certain times of day.
* **Daily  & Transaction limits limits**: Set limits on the number or value of transactions per day.

With **this product,** users have full control over the circumstances under which transactions can occur. This helps mitigate the risk of unauthorised or fraudulent activities, acting as a **failsafe** for sensitive accounts and high-value transactions.

***

### **4. Bridge Transaction Monitoring: Withdrawal Delay for Suspicious Activity**

We’re also working with an **unannounced partner** who specializes in monitoring bridge transactions. This partner will actively review all withdrawal requests coming from Haven1’s bridge, scanning for suspicious behavior. If any transaction appears to be linked to suspicious activity—such as sudden large withdrawals or irregular patterns—the withdrawal can be **delayed** for further investigation.

This added layer of security ensures that funds are not prematurely or maliciously moved off-chain, protecting against **bridge attacks** that have become more common in the Web3 space.

***

### **The Expanding Network Guardians Program**

The **Network Guardians** program is an evolving initiative. As the blockchain space grows and new threats emerge, Haven1 is committed to working with the best Web3 security companies to continuously improve the safety and integrity of the network. By creating a firewall that stops malicious transactions before they even reach the network, Haven1 ensures that users can confidently transact, build, and innovate in a secure environment.

We’re proud of the progress we’ve made so far, but this is just the beginning. The **Network Guardians** program will expand to include even more security partners, with a focus on creating a robust and adaptive defense system that can counter the evolving threat landscape.


# What does Haven1 solve?

Learn how Haven1 tackles key blockchain challenges, providing security, scalability, and institutional-ready DeFi solutions.

**There's currently a disconnect between the worlds of traditional and** [**decentralized finance**](/additional-resources/haven1-terminology)**.** In its current state, DeFi simply isn't built for mass adoption, mainly due to its vulnerability to fraud and the potential for users to lose funds. This disconnect highlights the need for stronger security measures and more robust user protection to build trust and facilitate broader acceptance of DeFi.

## Challenges facing blockchain

Haven1 aims to **propel DeFi into the mainstream** by addressing three key challenges. This will pave the way for the next generation of secure, decentralized financial products.

<figure><img src="/files/4psxqsjnsEbC4OolffCR" alt=""><figcaption></figcaption></figure>

<details>

<summary><strong>Unreasonable risk management expectations from crypto users</strong></summary>

* The DeFi space is complex and intimidating, especially for beginners.&#x20;
* Fraud is rampant in DeFi, with 2022 losses amounting to over [$3.8 billion](https://blog.chainalysis.com/reports/2022-biggest-year-ever-for-crypto-hacking/).
* As a result, retail users are losing trust in the ecosystem.
* The lack of robust risk controls is preventing the flow of institutional capital into the space.&#x20;

</details>

<details>

<summary><strong>Absence of industry standardization</strong></summary>

* Blockchain's underlying principles, mechanisms and terminology are technical and confusing.
* Lack of understanding and technical know-how are the main roadblocks for prospective users, according to [National Research Group](https://www.nrgmr.com/our-thinking/how-consumers-feel-about-web3/).
* To succeed, DeFi must provide a standardized user experience, intuitive wallets, transparent [smart contracts](/additional-resources/haven1-terminology), mandatory oracle integration, and user-friendly interfaces.

</details>

<details>

<summary><strong>Unknown counterparty risk</strong></summary>

* Major players are showing caution towards blockchain technology due to concerns about unknown counterparty risks and the need for more defined governance standards.&#x20;
* The threat of legal liability related to combating financial crimes and maintaining the integrity of transactions is a significant issue for institutions.&#x20;
* For decentralized finance (DeFi) to gain wider acceptance, it must align with global professional standards for governance and responsible stakeholder conduct.

</details>

<br>


# Haven1: Use Cases

Explore how Haven1 enables DeFi 2.0, tokenized Real-World Assets (RWA), and high-performance dapps with built-in user verification, security, and seamless integration for institutions and developers

Haven1 is purpose-built to offer a secure, compliant, and high-performance blockchain infrastructure. With its unique blend of identity verification and robust governance, Haven1 unlocks a variety of use cases across multiple sectors. Below, we’ll explore the most prominent use cases that Haven1 supports.

## 1. **DeFi 2.0 on Haven1**

Haven1 aims to enable the next generation of decentralized finance, often referred to as **DeFi 2.0**. This iteration of DeFi is focused on providing **significantly more security and peace of mind** than previous decentralized finance ecosystems. Traditional DeFi has often been plagued by hacks, exploits, and scams, which create hesitation for many users to engage with it. **DeFi 2.0 on Haven1** changes that by building a more secure and trusted environment for users and developers alike.

With identity verification (KYC) and standardized auditing requirements in place, users can interact with DeFi on Haven1, knowing that all projects are audited and backed by real-world identities. This additional layer of security greatly expands the potential user base by making DeFi accessible and trustworthy for more risk-averse participants.

### **Key DeFi 2.0 primitives on Haven1 include**:

* **Decentralized Exchange (DEX) &** Automated Concentrated Liquidity Management
* **Perpetuals Trading**
* **Lending & Borrowing Markets &** Looping Products to earn maximum yields
* **NFT Marketplaces** for creating and trading unique digital assets

What sets Haven1 apart is that all these DeFi primitives are governed by a **single governance token**, allowing for faster execution and streamlined management. Unlike traditional blockchain ecosystems, where each protocol might have its own governance structure, Haven1’s unified governance ensures quick decision-making across all protocols. This speeds up innovation and simplifies management.

### **Unified DeFi Ecosystem: One-Click Treasury Management**

One of the key advantages of Haven1’s **single governance token** is the seamless integration of multiple DeFi opportunities, all within a unified ecosystem. This drastically simplifies treasury management for institutions and merchants operating in the crypto space.

Imagine being a merchant accepting crypto payments or an institution managing a treasury in stablecoins. With Haven1, you have **one-click access to a wide range of DeFi opportunities**. You can easily choose from a variety of DeFi products without needing to interact with multiple, disconnected protocols.

For example, you might indicate that you’re holding stablecoins and are willing to take a specific level of risk. Haven1’s platform could then suggest relevant DeFi products such as lending opportunities, liquidity pools, or automated yield strategies—all tailored to your preferences. This level of integration makes it far easier to optimize your holdings and take advantage of DeFi’s full potential.

The power of this **"super app" experience** is that it’s fully managed under the umbrella of Haven1’s governance, allowing users to access all DeFi 2.0 primitives—such as DEX, perpetuals, lending, and automated liquidity management—without having to interact with multiple governance models or siloed protocols. Whether you’re an institution or a partner offering white-labeled DeFi products, Haven1 provides a level of **streamlined treasury management and DeFi accessibility** that is unparalleled in the space.

This model offers institutions more optionality and control, while at the same time, making it far easier to engage with decentralized finance in a secure and user-friendly manner. It’s DeFi 2.0 that’s **built for scale, trust, and simplicity**.

Additionally, Haven1’s **institutional partnerships** with key players in the blockchain and financial spaces provide a significant advantage for DeFi protocols. These institutions offer **early liquidity**, making it easier for new DeFi projects to grow and scale on Haven1.&#x20;

Haven1’s network of large crypto native funds also ensures deep liquidity pools, making DeFi markets more efficient and attractive for new and existing users.

## 2. **Real-World Assets (RWA)**

Haven1 is uniquely positioned to facilitate the tokenization of **Real-World Assets (RWA)**, such as:

* Real estate
* Precious assets (e.g., diamonds, gold)
* Cash management loans
* Inventory financing
* Trade finance assets (e.g., treasury bonds, stocks)

One of the core barriers to scaling RWA on blockchain has been **compliance** and **user verification**. Haven1 simplifies this by requiring **KYC/KYB verification** for all users and developers, removing the compliance burden from RWA protocols. This allows RWA projects to focus on scaling their operations without worrying about user verification.

Furthermore, Haven1 enables interesting synergies between **DeFi and RWA**:

* **RWA-backed Collateral**: A user can stake tokenized real estate or other assets in a vault and earn additional yield, as other users borrow against that token.
* **Stablecoin Liquidity**: Tokenized RWA can be used as collateral to mint stablecoins, which can then be traded in liquidity pools with stablecoins like USDC or USDT on Haven1’s DEX, stacking multiple layers of yield for users.

Just as in DeFi, Haven1’s **institutional partnerships** with major players provide early liquidity for RWA projects. These institutions bring significant capital and operational expertise, ensuring the RWA ecosystem on Haven1 remains robust and scalable from day one.

## 3. **Regulated and Semi-Regulated Applications**

Haven1 is the ideal platform for developers building applications in **regulated or semi-regulated markets**, where compliance requirements necessitate user verification before services can be offered. This could include identity verification, regional restrictions, or other compliance needs.

For example, in **age-restricted applications**, such as online casinos or adult video content, Haven1 makes it easy to verify a user’s age through its built-in KYC/KYB process. With just one line of code, developers can verify a user’s identity or age with their consent, ensuring compliance with local laws while streamlining the user onboarding process.

The power of Haven1 lies in its ability to simplify compliance across any regulated service, such as:

* Online gambling or casinos
* Geographically restricted services
* Financial services with Know Your Customer (KYC) or Anti-Money Laundering (AML) requirements

Haven1’s user verification process eliminates the complexities associated with compliance, allowing developers to focus on building innovative products and services.

## 4. **On-Chain Identity Solutions**

Haven1 enables developers to create robust **on-chain identity solutions** by bridging off-chain identity data with on-chain activity. This opens up new possibilities for applications that require trust, reputation, or compliance:

* **Credit-Based Loans**: Users can secure loans in DeFi based on their credit history from traditional financial systems (CeFi), thanks to Haven1’s comprehensive KYC and identity solutions.
* **On-Chain Credit History**: Every transaction a user performs on Haven1 contributes to their on-chain credit profile, which can then be used to unlock additional financial services and opportunities.

This cross-chain identity system is particularly exciting for **decentralized finance**, where users could leverage their off-chain credit history to gain access to better lending terms or DeFi services.

## 5. **High-Throughput Applications (Gaming)**

Haven1’s **Proof of Authority (PoA)** setup allows it to support **high transaction throughput** (TPS), making it an attractive destination for **gaming applications** or other high-frequency use cases. With nodes operated by sophisticated, trusted entities, Haven1 ensures:

* **High TPS**: Essential for applications that need to post large amounts of data to the chain quickly.
* **Finality Guarantees**: Fast finality ensures that data is recorded and confirmed efficiently, which is critical for games and similar applications.

Haven1’s infrastructure is tailored for developers needing a **reliable, high-speed environment** with minimal latency.

### **Application Fee for Monetisation**

One unique feature that Haven1 offers to game developers is the **application fee** features out of box.&#x20;

Suppose you’re building a game where players get a certain number of lives or resources for free, and after that, they need to pay to continue playing. With Haven1, implementing this is extremely simple. By adding just **one line of code**, you can start charging a **dollarized fee** for any action or event within the game, such as purchasing extra lives or unlocking special content.

This monetisation model is streamlined through Haven1’s application fee distribution, where **80% of the fees** go to the developer, and **20%** goes to the network. This approach removes the complexity and heavy lifting of writing smart contracts and managing auditing costs, allowing developers to quickly bootstrap monetisation without unnecessary overhead. It’s a powerful and simple way to introduce seamless payments into gaming experiences.

## **6. Monetisation in Depin Networks**

Haven1 also provides an ideal solution for developers building **Depin (Decentralized Physical Infrastructure Networks)** protocols. One challenge many DEPIN projects face is figuring out how to facilitate payments between users and node operators while ensuring the protocol itself benefits financially.

For example, imagine you’re developing a Depin where users provide services, such as **Wi-Fi access**, and charge other users for accessing these services. With Haven1’s **application fee** system, you can easily charge a small fee—say **10 cents per hour of Wi-Fi access**—where **80% of the fee** goes to the user running the service, and **20%** goes to the protocol. This setup allows projects to quickly build monetisation models, without needing to develop complex payment structures or face high auditing costs.

This feature is particularly valuable for Depin projects that need to align incentives and create sustainable revenue streams for both node operators and the protocol itself.


# Understanding GoQuorum

Haven1 network is built upon GoQuorom that was built by JP Morgan and then open sourced by the team at Consensys

## Overview of GoQuorum and Permissions

GoQuorum represents an advanced variant of the Ethereum blockchain, tailored for enterprise needs. It's a modification of go-ethereum (geth), aligned with its updates and releases, yet it distinguishes itself through several key enhancements:

* **Privacy**: At its core, GoQuorum supports both private transactions and contracts. This is achieved through a separation of public and private states and the use of encrypted peer-to-peer messaging for the secure transfer of private data among network participants.
* **Alternative Consensus Mechanisms**: Diverging from the POW/POS models of public Ethereum networks, GoQuorum introduces consensus mechanisms better suited for consortium chains:
  * **QBFT**: An improved version of IBFT, interoperable with Hyperledger Besu.
  * **Istanbul BFT**: A PBFT-inspired algorithm ensuring transaction finality, used in Haven1.
  * **Clique POA Consensus**: A standard POA consensus algorithm incorporated from Go Ethereum.
  * **Raft-based Consensus**: Focused on faster block times and on-demand block creation.
* **Peer Permissioning**: This feature ensures that only known entities can participate in the network, enhancing security and trust.
* **Account Management**: GoQuorum innovates in account management by introducing plugins that allow integration with external account management systems, like vaults.
* **Pluggable Architecture**: The architecture of GoQuorum allows for the addition of new features as plugins, providing flexibility and isolation of core features.
* **Higher Performance**: Compared to public Ethereum networks, GoQuorum demonstrates significantly higher performance throughput.

<figure><img src="/files/nWtpYdRShbDoyE18Rqj5" alt=""><figcaption><p>GoQuorum high-level architecture</p></figcaption></figure>

### GoQuorum's Role in Haven1 Permissioning System

GoQuorum underpins Haven1, enhancing its functionalities, especially in permissioning and security. Haven1 capitalizes on GoQuorum's advanced permissioning to manage network access and transactions, crucial for real-world applications. This integration is central to Haven1’s secure and efficient environment.

**Enhanced Functionalities**

* **Robust Permissioning System**: Haven1 extends GoQuorum's permissioning features, offering dynamic control over network access. This system is vital for maintaining security and managing user verification in real-time.
* **Security Features**: Building on GoQuorum's security infrastructure, Haven1 adds extra layers like network-level guardrails and rigorous identity verification processes, safeguarding against unauthorized access and potential risks.

**Secure and Verified Transactions**

* **Network Access and User Verification**: Haven1 enhances network security by strictly verifying user identities, a crucial aspect for onboarding real-world assets on the blockchain.
* **User Verification Focus**: The platform emphasizes the verification of users, ensuring that all network participants are authenticated and authorized, which is essential in a blockchain environment dealing with sensitive transactions.

**Core of Haven1's Blockchain**

GoQuorum's role in Haven1 creates a blockchain ecosystem that is not only secure and efficient but also prioritizes user verification and network integrity. This alignment makes Haven1 a strong, user-verified platform suitable for businesses seeking a blockchain solution that ensures secure and authenticated transactions.


# Haven1 Blockchain basics

A beginner-friendly guide to blockchain technology, covering its fundamentals and how it powers Haven1.

## Understanding Public, Permissioned Networks

### A Primer on Blockchain Technology Fundamentals

Blockchain technology fundamentally reshapes the way data is stored and transactions are recorded and verified. It's a decentralized, distributed ledger technology (DLT) where each block contains a number of transactions. Every time a new transaction occurs on the blockchain, a record of that transaction is added to every participant's ledger.

### **Types of Blockchain Networks**

* **Public Blockchains**: These are open and decentralized networks where anyone can join and participate in the network. The most well-known public blockchains are Bitcoin and Ethereum. Transactions on public blockchains are transparent and immutable.
* **Permissioned Blockchains**: These networks are typically used purpose-built as opposed to general-purpose blockchains and can be private. In permissioned blockchains, access is restricted to certain users, and the network owner has control over who can participate.

<figure><img src="/files/zWONunWXVulORvTCcqid" alt=""><figcaption></figcaption></figure>

### Context of Haven1

Haven1 utilizes a permissioned blockchain model, building on the foundation of GoQuorum, which is a modification of Ethereum’s standard protocol. In Haven1’s context:

* **Robust Security Framework**: The primary focus of Haven1 is to bolster security, a crucial aspect for enterprises dealing with sensitive information. Utilizing GoQuorum's advanced features, Haven1 ensures a highly secure network, safeguarding data and transactions.
* **Controlled Access**: Haven1's blockchain network access is meticulously controlled. Only verified and authorized entities are granted access, which is essential for applications that prioritize data integrity and a secure operational environment. This level of regulated access is key in ensuring that the network remains secure and functional for real-world assets.

### Smart Contracts and Consensus Mechanisms in Haven1

### Smart Contracts in Haven1

Smart contracts are self-executing contracts where the terms of the agreement are directly written into lines of code. In Haven1:

* **Enhanced Smart Contract Functionality**: Haven1 enhances GoQuorum's smart contract capabilities, enabling the development of more complex and secure contract structures. This is particularly beneficial for real-world assets and applications, where the complexity and security of contracts are crucial.

### Consensus Mechanisms in Haven1

Consensus mechanisms are fundamental to blockchain technology, ensuring that all transactions are verified and agreed upon by the network. Haven1 inherits&#x20;

* **GoQuorum’s Consensus Mechanisms**: Haven1 inherits GoQuorum’s consensus mechanisms, which are more efficient for consortium and enterprise use, like Istanbul BFT and Raft-based consensus.
* **Tailored for Enterprise Needs**: These mechanisms are particularly suited for Haven1’s scalability and security focus, providing faster and more efficient consensus than traditional Proof of Work (PoW) used in public blockchains.

<figure><img src="/files/wWW0QRj2vRHtjRDOwE7y" alt=""><figcaption></figcaption></figure>


# KYC policies on Haven1 blockchain

This document details KYC & KYB requirements on Haven1

**Haven1 is NOT a regulated entity and conducts identity verification as a public service to enhance the network's integrity. Builders and users should not assume that these verifications meet all jurisdictional regulatory requirements. Please ensure that additional compliance needs specific to your jurisdiction are independently met**

Haven1 conducts ID verification as a public good on the network to make users can transact safely on Haven1.

Applications building on Haven1 network may choose to personalize user experience on the platform based off anonymized data available on the Haven1 Passport NFT or may seek user consent to get additional attributes.

**hPassport Lite**

All users are required to have a valid email to transact on the Haven1 network. Lite users may be subject to lower rate limits as a whole, and all transactions and assets bridged into the Haven1 ecosystem are subject to transaction screening and monitoring to ensure funds entering Haven1 clean.

Haven1 and Network Guardians reserve the right for frequent and ongoing screening against regulatory lists. Any user or wallet identified as a match on an AML list may have their hPassport suspended and subject to off-boarding and blacklisting from the network. Users will have the opportunity to appeal for reinstatement through our customer support team.

**hPassport (i.e., hPassport Full)**

1. **User Verification**

All users (Individuals or developers or Corporates) may choose to undergo a verification to transact with certain applications on the Haven1 platform, become eligible for certain features or functionality, or improved rate limits for transacting.

2. **Identity Verification Process for Individuals**

* As an Individual user, you will be expected to declare your country of residence and nationality
* You will also have to undergo a Liveness check and capture photos of the Government issued ID document live.
* Verification process will also involve a facial match against the photo on the provided identification document to confirm your identity.
* You(individual or corporate) will be allowed only one Proof of Identity NFT(Haven1 Passport), which can be linked to multiple wallets through settings in the Haven1 Portal.
* Certain applications may require additional information to be collected, which will be surfaced as a request on the specific application. If you continue with adding additional information, upon your consent, this data can be shared with other applications in the Haven1 ecosystem that require, providing a seamless user experience.

3. **Identity Verification Process for Corporates**

For corporate users, we will be capturing an extensive set of information. This will include:-

* Your corporate information such as Company Name, Registration Number, Jurisdiction Country and Address
* Legal representative will undergo a liveness check, live capture of ID document, address verification , authorization in case legal representative is not listed in register of directors and shareholders
* Certificate of incorporation, memorandum of association and register of directors and shareholders
* UBO verification
  * When UBO is a company : submission of certificate of incorporation, memorandum of association and register of directors and shareholders.
  * When UBO is an individual : ID information and Proof of Address will be collected of every director and every shareholder with more than 25% ownership
* Certain applications may require additional information to be collected, which will be surfaced as a request on the specific application. If you continue with adding additional information, upon your consent, this data can be shared with other applications in the Haven1 ecosystem that require, providing a seamless user experience.

All developers deploying applications on Haven1 will have to go through KYB before their application is available on Haven1 Mainnet.

4. **Screening Against Regulatory Lists**

* For individuals, The name, date of birth and nationality(wherever available) is extracted from the identification document will be cross-referenced with relevant regulatory lists. Any potential matches will undergo manual review, and verified matches will result in the rejection of the identity verification.
* For corporates, the corporation as well as all officers and shareholders will be cross referenced against relevant regulatory lists. Any potential matches will similarly undergo manual review, and verified matches will result in the rejection of the identity verification.
* All transactions and assets bridged into the Haven1 ecosystem are subject to transaction screening and monitoring to ensure funds entering Haven1 clean.

5. **Document Acceptance and Restrictions**

**Electing to complete your full hPassport may lead to restrictions on your account or transacting in the Haven1 network as a whole.**

For other countries, Haven1 will accept commonly accepted ID documents such as

* National ID Card
* Passport
* Driving License
* Residency Proof

6. **User rejection scenarios**

An individual or an institution may be refused onboarding on Haven1 because of the following scenarios

For individuals:-

* The user provides a forged document
* The user is flagged as a duplicate
* The user is flagged for a face match that does not match
* The client is listed on a sanctions list, subject to restrictive measures, or has a positive match with the unfavorable media list related to AML-CFT
* The client is a Politically Exposed Person (PEP).

For corporates:-

* The provided data does not allow clear identification of the UBOs
* The user or the corporate is domiciled in a high-risk country (cf. 5.),
* Any of the directors is listed on a sanctions list, subject to restrictive measures, or has a positive match with the unfavorable media list related to AML-CFT
* Any of the directors is a Politically Exposed Person (PEP)

7. **hPassport NFT**

Upon successful identity verification, a hPassport NFT ([What is hPassport?](/products/provable-identity-framework)) will be minted and linked to the user’s wallet.

This NFT will include details such as:-

* Whether the hPassport is suspended or not
* the date of ID verification
* expiry date of the ID document if available (in case of individual)

8. **Continuous Screening**

Haven1 and Network Guardians reserve the right for frequent and ongoing screening against regulatory lists. Any user identified as a match on an AML list may have their hPassport suspended and subject to off-boarding and blacklisting from the network. Users will have the opportunity to appeal for reinstatement through our customer support team.

9. **Refresh of Identity Information**

* Users are required to update their identity information upon the expiry of their ID document or after three years from the date of last verification, whichever occurs first.
* Users will be given a notice to update their information within a certain time period leading up to expiry date. In case the user doesn't refresh their information, their hPassport may be subject to suspension which can be reinstated if they pass identity verification again.
* Users residing in [FATF grey list](https://www.fatf-gafi.org/en/countries/black-and-grey-lists.html) countries may be needing to renew their identity verification more frequently.

10. **Data Security**

* Identity information will be securely stored by our Identity verification partner.
* This partner complies with the General Data Protection Regulation (GDPR) and acts solely as a Data Processor
* The partner will not have access to user wallets, ensuring no linkage of stored identity information to on-chain activities.

11. **Applications on Haven1 decide their compliance policies**

* Applications on Haven1 can restrict or permit access based on the country information provided in the hPassport, and may request user consent to share required data, which can further restrict or grant application access.
* Applications may request additional identity information from users, subject to user consent.
* Applications may require users to refresh their identity verification periodically to maintain access to services. This will necessitate users to undergo the verification process again.
* **Haven1 is not a regulated entity and conducts identity verification as a public service to enhance the network's integrity. Builders and users should not assume that these verifications meet all jurisdictional regulatory requirements. Please ensure that additional compliance needs specific to your jurisdiction are independently met**

12. **KYC partner strategy**

* Initially, Haven1 will operate with a single KYC partner. We will work with Sumsub. Plans are in place to integrate multiple partners over time to prevent unfair user censorship.
* Periodic audits will be conducted to ensure that our KYC partner complies with set Service Level Agreements (SLAs) and maintains high standards of verification quality.

**Haven1 is NOT a regulated entity and conducts identity verification as a public service to enhance the network's integrity. Builders and users should not assume that these verifications meet all jurisdictional regulatory requirements. Please ensure that additional compliance needs specific to your jurisdiction are independently met**

¹ a physical person is needed at the end of the structure; when an entity is Ubo, the structure must be prolonged until a physical individual is identified.


# Security at Haven1

At Haven1, user safety isn’t an after-thought—it’s a launch requirement.

Every protocol deploying on Haven1 must pass ***two independent security audits*** before going live.\
Below you’ll find the audit history for Haven1’s own code-base and core infrastructure, followed by details of our active bug-bounty programmes.

***

#### 1. Protocol & Contract Audits

| Category                         | Scope                                                  | Auditor(s)                                                                                                                |
| -------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| **Permissioned-layer contracts** | Chain-level permissioning                              | [Hashlock](https://hashlock.com/audits/haven1), [CertiK](https://skynet.certik.com/projects/haven1)                       |
| **Core smart-contracts**         | Token logic, staking, governance, foundation treasury  | [Zokyo](https://github.com/zokyo-sec/audit-reports/tree/main/Haven1), [CertiK](https://skynet.certik.com/projects/haven1) |
| **HSwap (HSOP) DEX**             | AMM pool contracts, router, fee modules                | [Hashlock](https://hashlock.com/audits/haven1), [Certik](https://skynet.certik.com/projects/haven1)                       |
| **Bridge**                       | ERC-20 wrappers, lock-and-mint, burn-and-release flows | Certik, Zokyo                                                                                                             |
| **Guardian API**                 | Module to prevent spam on chain and stop malicious txs | Certik, Zokyo                                                                                                             |

> **Why two audits?**\
> Independent assessments reduce blind spots, uncover edge-case exploits, and ensure mitigations are verified.

***

#### 2. Active Bug-Bounty Programmes

<table><thead><tr><th>Platform</th><th data-type="content-ref">Program Link</th><th>Severity</th><th>Reward Range*</th></tr></thead><tbody><tr><td><strong>CertiK SkyHarbor</strong></td><td><a href="https://skynet.certik.com/projects/haven1">https://skynet.certik.com/projects/haven1</a></td><td>Critical</td><td><strong>Up to $100,000</strong></td></tr><tr><td></td><td></td><td>High</td><td><strong>Up to $10,000</strong></td></tr><tr><td></td><td></td><td>Medium</td><td><strong>Up to $2000</strong></td></tr><tr><td><strong>Immunefi</strong></td><td></td><td>Critical</td><td><strong>Up to $100,000</strong></td></tr><tr><td></td><td></td><td>High</td><td><strong>Up to $10,000</strong></td></tr><tr><td></td><td></td><td>Medium</td><td><strong>Up to $2000</strong></td></tr></tbody></table>

\*Ranges shown are upper-bounds; see programme pages for full terms, scope, and submission guidelines.

***

#### 3. Recommendations for apps building on Haven1

1. **Complete (at least) two reputable audits**.
2. **Publish reports publicly** for transparency.
3. **Run an ongoing bug-bounty** or join aggregated bounty platforms.

***

#### 4. Stay Informed

* **Security disclosures:** <security@haven1.org>


# What is esH1?

esH1 is a special token on Haven1, designed to encourage user participation while strategically reducing market liquidity over the long term.

Direct Token link from Explorer: <https://explorer.haven1.org/address/0xC6414DC21b94f88e7aD43b92d98E27EcA6e97cbE>

esH1, or Escrowed H1, is a HRC20 token within the Haven1 ecosystem designed to encourage long-term holding and participation.&#x20;

esH1 does not increase H1 token supply. Every unit of esH1 in circulation comes at an expense of 1 unit of H1.&#x20;

**1 esH1 is always equal to 1 H1**, meaning it holds the same intrinsic value. However, this token is non-transferable, so it cannot be traded or transferred. **1**

### Key Advantages of esH1

1. Enhanced Staking Rewards: esH1 is the only way to engage in locked staking on Haven1, offering higher rewards than flexible staking methods. This incentivizes users to stay committed to the platform, helping strengthen its long-term stability.
2. Supporting Token Stability: By converting H1 into esH1 and locking it, the circulating supply of H1 is reduced. This helps manage price volatility and ensures the token's economic stability.

### Uses of esH1

* Staking: esH1 can be staked either flexibly or by locking. Locked staking involves committing your esH1 for a fixed duration, earning you higher returns in exchange for your long-term commitment. This commitment is rewarded with significantly higher staking returns.
* Vesting: You can choose to vest your esH1, which means the tokens are gradually released over a set period, typically 365 days. This vesting process is linear by design, aligning your commitment with gradual reward distribution.

### Summary

esH1 serves as a powerful tool for you if you are committed to the long-term health of Haven1. It allows you to maximize your returns through locked staking, participate in governance, and contribute to the stability and security of the platform.&#x20;

By choosing to convert you H1 tokens to esH1 and by locking those esH1 tokens, you demonstrate a vested interest in the future of Haven1, earning greater rewards and playing a pivotal role in its governance.


# Haven1 Roadmap

This document outlines the current status of our ongoing development efforts, divided into several categories to provide clarity on what has been completed, is in progress or planned for future

Please note that the roadmap is updated monthly and is subject to change. This document is for informational purposes only and should not be used as financial advice.

### Categories

#### Label Definitions

* Use this column to learn more about what each of the labels represents on the cards.

#### Long Term

* Visionary projects and strategic initiatives that are planned for the long term.
* Includes ambitious goals and larger-scale features that will shape the future of Haven1.

#### Prioritized Backlog

* Projects and enhancements planned for after the mainnet launch.
* Focus on improvements, additional features, and addressing any post-launch issues.

#### In Progress

* Current projects and tasks that are actively being worked on.
* Includes key initiatives, development work, and any testing phases.

#### Done

* List of completed tasks, milestones, and features that have been successfully implemented.

### Important Notes

1. **Monthly Updates:** The roadmap is typically updated every month. However, there may be times when the information is not current due to ongoing developments.
2. **Fluid Roadmap:** The items on the roadmap are fluid and can shift between categories based on priority, development progress, and unforeseen challenges.
3. **Representation Purpose:** This document is intended for representation purposes only. It should not be construed as financial advice or a guarantee of any specific feature or timeline.

We appreciate your interest in the Haven1 project and your understanding as we work towards building a robust and secure ecosystem. For the latest updates and detailed progress, please refer to our Trello board linked below.

[**Haven1 Trello Board Link**](https://trello.com/b/athpljks/haven1-roadmap)

{% hint style="info" %}
By default, only the color of the label will show when viewing the cards from the board view. If you'd like to see the names of the labels, you can click on the label to display its name. Click the label to toggle back and forth.

<img src="https://images.ctfassets.net/zsv3d0ugroxu/19gb8AuVEdjEM0QQywF4wl/64cd0ebfb17959d49f9efb866b00e0ba/Toggling_label_names_on_and_off" alt="" data-size="original">
{% endhint %}

If you have any questions or need further clarification, please feel free to reach out to our support team.

Thank you for your continued support and participation in the Haven1 community.


# Haven1 is EVM compatible

Unlimited possibilities with EVM-compatible Haven1

The **Ethereum Virtual Machine** ([EVM](/additional-resources/haven1-terminology)) has been a gamechanger in the [blockchain](/additional-resources/haven1-terminology) industry by facilitating the deployment of [smart contracts](/additional-resources/haven1-terminology) - the building blocks of [blockchain](/additional-resources/haven1-terminology) applications.&#x20;

[Haven1](/additional-resources/haven1-terminology) recognizes the significance of EVM blockchains, which is why it is designed to be **EVM-compatible**.

<figure><img src="/files/hVb5FO31QUabTF4zCXtD" alt=""><figcaption></figcaption></figure>

**Key advantages of EVM-compatibility for Haven1:**&#x20;

* Enables the **seamless integration** of pre-existing projects and applications onto EVM-compatible blockchains, allowing prior work to be leveraged while transitioning products onto the network.
* EVM offers **developer familiarity** as the most widely-adopted blockchain in the space: which reduces the learning curve, and facilitates quick skill adaptation and knowledge utilization.
* EVM-compatible platforms thrive on community-driven initiatives, fostering a culture of **innovation**, **collaboration** and **knowledge** sharing among developers. An **active community** and **developer support** provides a wealth of resources, comprehensive documentation and robust libraries - ensuring developers receive the necessary support.
* The widespread adoption of EVM compatibility generates a **significant network effect**. As more projects and developers build on EVM-compatible platforms, the network grows stronger, attracting additional participants, liquidity, and nurtures the  development of the ecosystem.
* **Familiar user experience** for individuals already accustomed to Ethereum-based applications. Users can navigate and interact with EVM-compatible decentralized applications ([dApps](/additional-resources/haven1-terminology)) using their existing knowledge and wallet infrastructure.

Initially, Haven1 will operate as a sidechain to Ethereum, much like Polygon POS Chain. As an EVM-compatible network, Haven1 will seamlessly interact with the Ethereum blockchain and facitiliate efficient asset and data transfers.

Haven1's long-term objective is to transition from a side chain directly into a rollup, utilizing Ethereum as a global settlement layer. This will enable Haven1 to benefit from Ethereum’s highly secure [node](/additional-resources/haven1-terminology) network, which is known for its robustness and stability.


# hBridge: Intro to Haven1 Bridge

Haven1 Bridge is truly decentralised and maximally secure tech to onramp and offramp your assets into Haven1 from and to other chains

{% hint style="info" %}
Haven1's Asset Bridge and Storage system is designed to ensure secure and efficient handling of digital assets within the Web3 environment. This page outlines the key features and functionalities of the system, focusing on safety, transparency, and user convenience.
{% endhint %}

Haven1's asset bridge enables safe and efficient token transfers between Haven1 and other blockchains. This document outlines the key features, security measures, and operational procedures of the bridge to ensure users can manage their assets securely.

### Here's all the ways Haven1 Bridge stands out

* **Funds are SAFU - 1:1 Verifiable Asset Backing:** Every token on the Haven1 bridge is backed 1:1, ensuring full transparency and constant accessibility for users to verify their holdings. This backing can be verified in accompanying proof of reserves(Example [Link](https://portal.testnet.haven1.org/bridge/proof-of-reserves))
* **Bridge to the Safe Haven**
  * **Advanced Security Guarantees :** Haven1's bridge security exceeds typical multi-sig setups found in many Ethereum L2 , employing distributed keys among 9+ globally recognized validators across the Web3 space
  * **Enforced Address Consistency for Secure Transfers** Haven1 Bridge mandates that assets can only be deposited and withdrawn using the same address across networks. This ensures a clear chain of custody, preventing unauthorized transfers or illicit fund movement. By tying assets to KYC-verified users, Haven1 maintains accountability, compliance, and security from deposit to usage.
  * **Bridge Security Audits:** The bridge will undergo 2 comprehensive security audits before the mainnet launch, with reports being published to strengthen the user confidence
* **Decentralised**: Assets being minted or burnt on Haven1 network are done so by our validators. Haven1 Team is not involved in this process.
* **Efficient**: Since Haven1 is a gasless chain, the user doesnt pay any gas fees on Haven1 network on deposits

These security measures are crucial in maintaining trust and integrity within the Haven1 ecosystem, safeguarding user assets with the utmost reliability.

### Deposits and Withdrawals Process

* **Deposits and Token Issuance:** Tokens are deposited into Gnosis Safe Vault(controlled by validators) in the source network after the user initiates the bridge deposit. Once transaction on the source chain is confirmed,  Haven1's validators will mint the corresponding backed tokens on Haven1 network in the same user address
* **Withdrawal Safeguards:** Similarly when the user withdraws these backed tokens from Haven1 network via the bridge, gas fee for the destination network is paid by selling a small amount of asset being withdrawn, and rest of the backed tokens are burnt, and corresponding source assets are sent to user wallet on destination network from the Gnosis safe vault controlled by Haven1's validators.

### Permissioned Token & Chain support

* **Controlled Access:** The integration of tokens from external blockchains is subject to a comprehensive whitelisting and approval process, allowing only secure and pre-vetted assets into the Haven1 ecosystem.
* At Mainnet Launch, Haven1 will support bridging assets from 2 chains to Haven1 Mainnet and vice versa
  * ETH Mainnet: User will be able to Bridge USDC, USDT, ETH, USDT, hsETH and cbBTC&#x20;
  * Base: Users will be able to bridge USDC, cbBTC and cbETH


# hPassport: Accountability Meets Privacy

hPassport is the key to Haven1 ecosystem. By verifying your email or identity once you get to explore several novel Web3 applications.

Haven1’s hPassport system establishes a powerful identity framework designed to enhance **user accountability**, enable **application-level enforcement**, and ensure **builder verification**, all while maintaining **on-chain anonymity** and **user data control**.

### hPassport Types

#### **hPassport Lite:** Simplified access with ZERO compromise.

* No KYC required
* Enables access to open applications that don’t require user-level enforcement

#### **hPassport (i.e., hPassport Full): Unlock unlimited transactions, high-stakes DeFi and more!**

* KYC/KYB verified wallets
* Unlocks higher transaction limits, feature access, and hApps such as tokenized RWAs and high-stakes financial use cases that require users-level verification
* Minted as a **non-transferable NFT** after successful ID verification
* Each Full Passport is tied to a single verified real-world identity
* **Required for all smart contract deployers** to ensure builder accountability and prevent intentionally malicious smart contracts

### Core Functions

#### Application-Level Enforcement

* Developers can choose whether their hApp requires Full or Lite passport access
* Validators will only process transactions from users holding a valid hPassport
* In jurisdictions facing sudden restrictions, full hPassport users will still be able to withdraw assets, but their ability to interact with applications may be limited

#### Builder Accountability

* All contract deployments on Haven1 must originate from a wallet holding a full hPassport
* This ensures every protocol is tied to a real-world verified developer or organization
* Users and partners can trust that contracts are created by accountable entities

#### Privacy and Data Control

* All identity data is encrypted and stored securely off-chain
* Users maintain full control over their information and must explicitly approve any additional data sharing
* hPassport NFTs only expose anonymized signals that apps can use to personalize the experience without revealing personal details

### On-Chain Privacy

* Transactions on Haven1 remain anonymous
* No one, including identity verification partners, can link a wallet address to a real-world identity
* Personal data is never written to the blockchain and cannot be retrieved without user consent

### **Example Use Cases for a Full hPassport**&#x20;

* **Lending Markets with Real-World Credit Scores**: Haven1 can enable the development of lending markets that leverage real-world credit scores, enhancing trust and reliability in lending transactions, by using hPassport.
* **Real-World Asset Integration**: The platform facilitates the integration of real-world assets into the blockchain ecosystem. This includes creating investment vehicles tied to real estate, where NFTs can represent property ownership, bridging the gap between physical assets and digital tokens.
* **Tokenization of Assets**: Haven1 supports the tokenization of various assets, including securities and bonds. This allows for their digital representation, significantly improving the efficiency of global exchanges and settlements by making these assets more accessible and transferable on a global scale.
* **Prediction Markets** Prediction markets have found a strong product market fit our crypto native users. These applications can now ensure that their users are of a legal age to access their application and do not belong to high risk jurisdictions


# Advantages of having ID verification at a network level

This page explains how Haven1 unique network design provides a safe and best in class user experience to users engaging on chain.

Grasping the difference between user verification conducted at the **application level** versus the comprehensive, **network-level** approach adopted by Haven1 is key to appreciating the robust value offered by hPassport.

The table below contrasts these approaches, highlighting the innovative approach adopted by Haven1.

<table><thead><tr><th width="139">Feature</th><th>Application/Protocol Level</th><th>Haven1 Network Level</th></tr></thead><tbody><tr><td>Integration Complexity</td><td><ul><li>Requires bespoke code</li><li>More challenging to change or update.</li></ul></td><td><ul><li>Simple universal SDK.</li><li>More flexibility in updating or changing the KYC process.</li></ul></td></tr><tr><td>Universality of Standards</td><td><ul><li>Multiple standards can co-exist, leading to fragmentation.</li><li>Different applications will have different levels of KYC/KYB scrutiny.</li></ul></td><td><ul><li>One standard for the entire network.</li><li>Ensures uniformity.</li></ul></td></tr><tr><td>User Experience</td><td><ul><li>Tedious: Users will need to undergo KYC processes for multiple applications separately.</li></ul></td><td><ul><li>Smooth: Once verified, users can interact with any application on the chain without re-verification.</li></ul></td></tr><tr><td>Protection from Exploits</td><td><ul><li>Protection varies by application.</li><li>Inconsistencies in defense mechanisms across apps.</li><li>Fragmentation in design enhances surface attack area</li></ul></td><td><ul><li>Centralized control offers a unified defense mechanism, but a flaw affects the entire network.</li><li>Rapid response possible for widespread issues.</li></ul></td></tr><tr><td>Adoption Barriers</td><td><ul><li>Allows for rapid growth as applications can choose to have laxer or stricter KYC norms.</li></ul></td><td><ul><li>Establishes a foundational trust layer by requiring upfront verification, which streamlines future interactions and enhances network security for all users.</li></ul></td></tr><tr><td>Operational Costs</td><td><ul><li>Costs are absorbed by individual applications</li></ul></td><td><ul><li>Cost absorbed by network</li></ul></td></tr><tr><td>Audit and Oversight</td><td><ul><li>Requires overseeing numerous applications individually, which could be resource-intensive.</li></ul></td><td><ul><li>Single oversight is more straightforward.</li></ul></td></tr><tr><td>Privacy Concerns</td><td><ul><li>Decentralized KYC approaches may offer varied privacy benefits but also introduce potential risks for data breaches across multiple points.</li></ul></td><td><ul><li>Unifies user data within a secure, unified framework, using advanced encryption to protect privacy and minimize exposure.</li></ul></td></tr><tr><td>Soulbond Tokens Security</td><td><ul><li>Tailored security per application</li><li>Risks will be localized to specific applications, but inconsistencies in security measures across different applications can exist.</li><li>No recourse mechanic in the event of failure application failure</li></ul></td><td><ul><li>Standardized security ensures consistent protection.</li><li>Consistent level of protection against theft, duplication, or unauthorized transfers.</li><li>Network level recourse mechanic provides a failover solution</li></ul></td></tr></tbody></table>


# hPassport Full: Understanding the ID Verification Process

Haven1 in collaboration with its partners provides a seemless ID verification process to its users.

This page offers a detailed understanding of identity verification and the utilization of a full hPassport.

### **Step-by-Step Guide to Identity Verification in Haven1**

1. **User Registration**: The process starts with users registering on Haven1 and providing the necessary personal details.
2. **Document Submission**: Users submit identity verification documents, such as government-issued IDs or passports along with biometric data
3. **Third-Party Verification**: Verification is conducted by top-quality, reputable third-party partners, ensuring accuracy and reliability.
4. **Verification Outcome**: Following verification, users are either approved or denied. Approved users proceed to receive hPassport
5. **Issuance of Proof of Identity NFT**: Verified users receive a non-transferable Proof of Identity NFT into their Web3 wallet, uniquely linked to their identity. This NFT is referred to has hPassport

### **Role of hPassport**

* **Unique Identity Token**: Verified users are issued ahPassport NFT in their digital wallet, signifying their verified status on the blcokchain.
* **Transaction Authentication**: Validators use anonymized data from these NFTs for transaction cross-checks, ensuring users comply with requisite KYC/AML restrictions.
* **Verified User Transactions**: Only users with a Proof of Identity NFT can execute transactions, enhancing security and regulatory adherence.
* **Regulatory Compliance and Asset Withdrawal**: If users encounter regulatory issues, they can withdraw assets, albeit with restricted transaction capabilities.

### **Anonymity and Privacy**

* **No On-Chain Storage of KYC Data**: To ensure privacy, KYC and verification data are never stored on the blockchain.
* **Regular Updates**: The verification process is regularly updated to comply with the needs of hApp builders on Haven1.
* **Data Encryption and Privacy Policies**: Personal data is encrypted, and Haven1 enforces strict privacy policies for data handling and storage on its partners.

### ID Verification Policies on Haven1 Network

You can read through ID Verification policies [here](#id-verification-policies-on-haven1-network)&#x20;


# hSwap: Spot DEX on Haven1

Welcome to the Future of Malicious MEV-Free Trading on Haven1: Introducing hSWAP

## hSwap: Malicious MEV-Free AMM Decentralized Exchange

A publicly available, malicious MEV-Free, permissioned, yet decentralized spot exchange on Haven1, built from the battle-tested Uniswap v3 and adapted to Haven1’s network-enforced security model.

### Quick links

* **hApp**: <https://portal.haven1.org/swap>
* **Prerequisites**: Connected Wallet, funds bridged to Haven1, 2FA Wallet Shield \[recommended]
* **Docs you may want nearby**: Network‑level security, Oracles on Haven1, Application fees, DeFi lending how-tos

### **Introduction to the much improved DEX on Haven1**

At Haven1, we're continually striving to ensure you have the best decentralized exchange (DEX) experience.

We're excited to announce the launch of hSwap V2, built upon the advanced features of Uniswap V3, promising more control, higher capital efficiency, and better trading experiences compared to our previous version.&#x20;

Our commitment goes beyond just upgrading; we are actively working on integrating Automated Liquidity Management (ALM) solutions, and we have plans to bring in off-chain liquidity via RFQ integrations and a DEX that is built upon the tech from Balancer to ensure our users access top-tier liquidity solutions.

#### Enhanced XP and Community Engagement

Trading on this DEX is not just about efficiency and control; it's also more rewarding. Every swap contributes to earning XPs, enhancing your potential returns just by continuing to trade. We value your feedback deeply as it helps us refine and perfect your trading experience. If you encounter any issues or have suggestions, please share your thoughts with us [here](https://haven1.atlassian.net/servicedesk/customer/portal/2/group/2/create/13).


# hEarn: Earn on Haven1

**Direct link:** <https://portal.haven1.org/earn>

> To use Earn (or any Haven1 dApp) you **must**:
>
> 1. Complete KYC → receive your non-transferable **hPassport**.
> 2. Connect the same wallet when interacting with Earn.

***

#### 1 What is Earn?

Earn is Haven1’s in-house gateway to yield opportunities spanning:

* **DeFi liquidity** (at launch)
* **Real-World Assets (RWA)** & other on-chain income streams (coming soon)

At launch, Earn offers **single-asset liquidity vaults** that supply capital to **hSwap**, Haven1’s native DEX.\
No need to manage 50 : 50 ratios—the vault auto-balances for you.

***

#### 2 Current Vault Line-up (launch cohort)

<table><thead><tr><th>Vault #</th><th>Deposit Token</th><th width="163.32421875">Underlying LP Pool</th><th>Auditor / Builder</th><th>Status</th></tr></thead><tbody><tr><td>1</td><td>H1</td><td>H1 ↔ hUSDC</td><td>Ichi</td><td>Live</td></tr><tr><td>2</td><td>hUSDC</td><td>H1 ↔ hUSDC</td><td>Ichi</td><td>Live</td></tr><tr><td>3</td><td>cbBTC</td><td>CBBTC ↔ hUSDC</td><td>Ichi</td><td>Live</td></tr><tr><td>4</td><td>hUSDC</td><td>CBBTC ↔ hUSDC</td><td>Ichi</td><td>Live</td></tr><tr><td>5</td><td>hETH</td><td>hETH ↔ hUSDC</td><td>Ichi</td><td>Live</td></tr><tr><td>6</td><td>hUSDC</td><td>hETH ↔ hUSDC</td><td>Ichi</td><td>Live</td></tr><tr><td>7</td><td>hsETH</td><td>hsETH ↔ hUSDC</td><td>Ichi</td><td>Live</td></tr><tr><td>8</td><td>hUSDC</td><td>hsETH ↔ hUSDC</td><td>Ichi</td><td>Live</td></tr></tbody></table>

*All vaults auto-rebalance within a tight price range to minimise drift.*

***

#### 3 Reward Mechanics

| Term                       | What it Means?                                                                  |
| -------------------------- | ------------------------------------------------------------------------------- |
| **APR (Annual % Rewards)** | Projected annual token amount paid over the next 7 days relative to current TVL |
| **APY (Annual % Yield)**   | Annualised %, **assuming you harvest & compound weekly**                        |

> Example:\
> *Rewards paid in **H1.** You deposit **HUSDC***\
> • If H1 ↑ versus hUSDC → APR ↑\
> • If H1 ↓ versus hUSDC → APR ↓

***

#### 4 Risk Corner

1. **Impermanent Loss (IL)**\
   *Providing liquidity between a stablecoin & a volatile asset exposes you to IL if prices diverge.*\
   The vault’s ranged market-making reduces but does **not** eliminate IL, and rewards may or may not offset it.
2. **Price-Slippage on Entry**\
   *Single-asset deposits are swapped into both pool assets over time.*\
   Large one-sided deposits in thin liquidity may sit idle (earning nothing) or get executed at less-favourable prices.
3. **Reward Volatility**\
   *Weekly top-ups & token-price movements mean APY is a moving target.*
4. **Smart-contract & Protocol Risk**\
   All vaults are audited (see Security docs), but risk can never be zero.

> **Investors should evaluate these factors carefully before depositing.**

***

#### 5 Roadmap

* **More Builders:** Additional single on multi asset vaults from third-party strategists with diff
* **hLend Vaults:** Fixed-income & structured-yield products.
* **RWA Pools:** Tokenised T-bills, private credit, real-estate notes, etc.

Stay tuned in Discord and on X (@[Haven1Official](https://x.com/Haven1official)) for new vault launches.

***

#### 6 How to Get Started

1. **KYC & hPassport**: Complete the flow at <https://portal.haven1.org/signup>
2. **Bridge Funds (if needed)**: Use the Haven1 bridge to move assets on-chain.
3. **Pick a Vault**: Compare APYs, check pool balance, choose your preferred token
4. **Deposit and Stake**: Approve the vault contract and confirm the transaction. In next txs, approve and deposit vault receipt token into staking pools to earn rewards
5. **Monitor & Harvest**: Claim rewards whenever you like; weekly is assumed in APY. You will pay 20 H1 in fees to claim rewards


# hLend: Lending Market on Haven1

## hLend: Lending & Borrowing on Haven1

A publicly available, permissioned, yet decentralized lending market on Haven1, built from the battle-tested Aave v3 and adapted to Haven1’s network-enforced security model.

***

### Quick links

* **hApp**: [lend.haven1.org](https://lend.haven1.org/)
* **Prerequisites**: Connected Wallet, funds bridged to Haven1, 2FA Wallet Shield \[recommended]
* **Docs you may want nearby**: Network‑level security, Oracles on Haven1, Application fees, DeFi lending how-tos

***

### Glossary

* **aH1hToken:** Interest‑bearing token that represents a supplied asset.
* **Variable debt token:** Token that tracks variable rate borrowing per reserve.
* **LTV:** Loan‑to‑Value, max borrowable portion of collateral value.
* **Liquidation threshold:** Borrow value that triggers liquidation against collateral value.
* **Liquidation bonus:** Extra collateral received by a liquidator.
* **Reserve factor:** Treasury share of interest.
* **Supply cap / Borrow cap:** Limits for supply or debt in a reserve.
* **Isolation mode&#x20;*****(currently disabled)*****:** Collateral type that can only back selected stablecoin debt.
* **E‑Mode&#x20;*****(currently disabled)*****:** Efficiency mode for correlated assets that increases capital efficiency.
* **Health Factor:** Solvency buffer of a borrowing account. HF above 1 is required to avoid liquidation.

***

{% hint style="warning" %}

### Important Disclaimer

Use of hLend carries significant risks, including the potential of partial or total loss of digital assets. Participation is entirely at your own discretion and responsibility. Haven1, its affiliates, contributors, validators, and partners accept no liability for any financial, technical, or regulatory outcomes. Nothing here constitutes investment, legal, tax, or other professional advice.
{% endhint %}

### What is hLend

hLend is a pooled supply and overcollateralized borrowing protocol. Suppliers deposit assets into shared reserves and start earning. Borrowers can draw liquidity against their deposited collateral, within risk limits that are set per asset and enforced by the protocol.

#### Permissioned, yet decentralized by design

* **Market creation:** Only Haven1 governance can list or modify markets. Assets, parameters, and risk controls are onboarded through Haven1’s internal review and governance processes.
* **User access:** Transactions require hPassport Lite, which every wallet receives automatically when connecting. All funds pass AML screening through Network Guardians. In the future, certain markets or assets may be ring‑fenced and require hPassport Full (identity‑verified).
* **Operational controls:** Emergency pause, caps, and other circuit breakers are available and may be used to protect users.

#### How hLend differs from vanilla Aave v3

* **Curation:** No public listings. Only approved assets and configurations.
* **Protections:** monitoring by Network Guardians, asset screening and optional 2FA on wallets.
* **Oracles:** Price feeds are provided through Haven1’s oracle framework in partnership with Redstone and are selected for each listed asset.
* **Market Access Restrictions (coming soon):** hPassport can seamlessly allow (or disallow) market access based on user parameters

***

### Core concepts

#### Reserves

Each listed asset has a reserve with configuration that defines collateral use, interest model, and risk limits.

**Key parameters**

* **LTV (Loan‑to‑Value)**: Max portion of collateral value you can borrow under normal conditions.
* **Liquidation threshold**: The portion of collateral value that, if reached by debt, makes the position liquidatable.
* **Liquidation bonus**: Extra collateral given to liquidators when they repay part of a borrower’s debt.
* **Reserve factor**: Portion of interest that is directed to the reserve treasury.
* **Supply cap** and **Borrow cap**: Upper bounds on total supplied or borrowed amounts for a reserve.
* **Collateral enable**: Whether a supplied asset can be used as collateral.

#### **aH1h**Tokens and debt tokens

* **aH1hTokens**: Interest‑bearing tokens minted to suppliers that track your claim on the reserve.
* **Variable debt tokens**: Track a borrower’s variable‑rate debt per reserve.

#### Alternate Modes (Currently Unavailable/Disabled)

* **Isolation mode** (if enabled for an asset): Asset can be used as collateral to borrow only specific stablecoins, within a per‑user debt ceiling.
* **E‑Mode** (if enabled for a category): Higher efficiency when you supply and borrow within a correlated asset class, such as stablecoins or ETH‑like assets.

#### Health Factor (HF)

Safety metric for a borrowing account. When **HF ≤ 1 (less than or equal to)**, the position becomes eligible for liquidation.

At a high level:

```
HF = (sum over collateral: value × liquidation_threshold) / (sum over borrows: value)
```

**🚩 Keep HF comfortably above 1 to avoid liquidation**, especially during volatile markets.

***

### What you can do in hLend

#### Supply

1. Select a listed asset and click **Supply**.
2. Approve the token if this is your first time.
3. Confirm the supply. You start accruing interest immediately and receive aTokens.
4. Optional: toggle **Use as collateral** where the asset allows it.

#### Withdraw

1. Choose the asset in **Your supplies** and click **Withdraw**.
2. Enter an amount. You can withdraw up to your aToken balance, minus any amount needed to keep your HF above 1 and subject to available liquidity in the reserve.

#### Borrow

1. Supply collateral first and enable it as collateral.
2. Go to **Borrow**, choose an asset, and enter the amount. Stay within the suggested safe range.
3. Confirm. Your HF will decrease as you borrow.

#### Repay

1. Choose the borrowed asset and **Repay** using the same asset, or via supported repay‑with‑collateral flows if available.
2. After repayment, your HF increases, and interest stops accruing on the repaid portion.

#### Manage collateral

* Toggle **Use as collateral** per asset when supported.
* Enable **E‑Mode** when your supplies and desired borrows fit an available category.

***

### Interest rates

**hLend uses a utilization‑based variable rate model.**

* **Utilization**: borrowed liquidity divided by total supplied liquidity.
* **Two‑slope model**:
  * Below the optimal utilization, borrow rates rise slowly.
  * Above the optimal point, borrow rates rise faster to attract more supply and reduce demand.
* **Liquidity rate**: derived from the variable borrow rate and reserve factor, it is what suppliers earn.

Rates update on interactions and accrue continuously on your positions.

***

### Risk controls and protections

#### Oracles

Each reserve uses a specific price feed selected by Haven1 with monitored deployment through the permissioned deployment review. Prices are used for collateral valuation, health factor, and liquidations.

#### Caps and freezes

* **Supply cap**: limits how much of an asset can be supplied.
* **Borrow cap**: limits how much can be borrowed. Caps can be tightened during stress.
* **Freeze**: temporarily disables new supply or new borrows on a reserve. Existing positions can usually be repaid or withdrawn, subject to HF and liquidity.

#### Isolation mode (Currently Disabled)

If configured, an isolated collateral can only back borrows of selected stablecoins, and up to a per‑user debt ceiling.

#### E‑Mode (Currently Disabled)

If configured, E‑Mode allows higher LTV and liquidation thresholds for correlated asset categories. Switch on E‑Mode only if you understand the correlation risk.

#### Liquidations

If your **HF ≤ 1**, liquidators can repay a portion of your debt and seize collateral with a liquidation bonus. A variable close factor may apply near insolvency.

#### Operational controls

Haven1 can pause individual actions or entire reserves, adjust parameters, or delist assets when needed to protect the protocol.

***

### Fees, incentives, and costs

* **Supplier earnings**: From the liquidity rate of the reserve.
* **Borrower cost**: Variable borrow APY plus any platform or application fees shown in the UI.
* **Network and application fees**: Haven1 uses an application fee framework. Some actions may include a dollarized fee in H1. Fees are shown before you confirm.
* **Supply & Borrow Boosts:** Haven1 may incentivize certain markets for a set period of time with H1 tokens from the community & partner incentives allocation.

***

{% hint style="warning" %}

### Risk Disclosure

The use of hLend involves significant risks. By interacting with the protocol, you acknowledge and accept the following:

* **Loss of Assets:** Participation may result in partial or total loss of your digital assets. You should never deposit funds that you cannot afford to lose.
* **Smart Contract & Technical Risk:** hLend operates through smart contracts and supporting infrastructure that may contain vulnerabilities or experience failures. Transactions are typically irreversible.
* **Market & Liquidity Risk:** Volatility in digital asset prices, insufficient liquidity, or unexpected market events may impact your ability to borrow, repay, or withdraw.
* **Regulatory Risk:** The legal status of digital assets and DeFi protocols varies across jurisdictions and may change at any time. You are solely responsible for ensuring compliance with applicable laws.
* **User Responsibility:** All decisions to supply, borrow, or otherwise interact with hLend are made at your own discretion and responsibility.
* **No Liability:** Haven1, its affiliates, contributors, validators, and partners accept no liability for any financial, technical, operational, or regulatory outcomes.
* **No Advice:** Nothing in this documentation, on the website, or in connection with hLend constitutes financial, investment, legal, tax, or other professional advice.

By using hLend, you confirm that you understand these risks and accept full responsibility for any outcomes.
{% endhint %}

### Getting started checklist

1. **Connect Wallet:** Connect your wallet using one of the supported wallet extensions (this automatically issues hPassport Lite).
2. **Bridge assets:** Use hBridge or supported on‑ramps to bring funds to Haven1.
3. **Open hLend:** Supply an approved asset, enable collateral, and borrow within safe limits.
4. **Secure your wallet (optional, recommended):** Enable the 2FA Wallet Shield for extra protection on withdrawals and approvals.

***

### Market listing and changes

#### Initial Supported Assets

* hUSDC
* hUSDT
* hETH
* hBTC

#### New Markets & Listing Procedures

* Asset onboarding, parameter updates, caps, and pauses are controlled by Haven1 governance.
* Listings follow internal risk review, oracle validation, and simulation.
* Changes are announced in release notes or app banners when relevant.

***

### Security posture

* Mandatory audits for protocol code and upgrades.
  * <https://github.com/aave-dao/aave-v3-origin/blob/main/audits/23-12-2022_SigmaPrime_AaveV3-0-1.pdf>
  * <https://github.com/aave/aave-v3-core/blob/master/certora/Aave_V3.0.1_Formal_Verification_Report_Dec2022.pdf>
  * <https://github.com/aave-dao/aave-v3-origin/blob/main/audits/09-12-2022_PeckShield_AaveV3-0-1.pdf>
  * <https://github.com/aave-dao/aave-v3-origin/blob/main/audits/27-01-2022_ABDK_AaveV3.pdf>
  * <https://github.com/aave-dao/aave-v3-origin/blob/main/audits/27-01-2022_SigmaPrime_AaveV3.pdf>
  * <https://github.com/aave/aave-v3-core/blob/master/certora/Aave_V3_Formal_Verification_Report_Jan2022.pdf>
  * <https://github.com/aave-dao/aave-v3-origin/blob/main/audits/14-01-2022_PeckShield_AaveV3.pdf>
  * <https://github.com/aave-dao/aave-v3-origin/blob/main/audits/07-01-2022_TrailOfBits_AaveV3.pdf>
  * <https://github.com/aave-dao/aave-v3-origin/blob/main/audits/01-11-2021_OpenZeppelin_AaveV3.pdf>
* Permissioned smart contract deployment, market and asset creation
* AML enforced markets with hPassport Lite required and additional identity parameters on
* specified transactions.
* Continuous monitoring by Network Guardians.
* Oracle quality controls and anomaly detection.
* Emergency response procedures, including pausability and parameter changes.

***

### FAQs

**Can anyone list a new asset or market?** No. Asset and market listings are permissioned and curated by Haven1 governance.

**Do I need to verify my identity?** Not currently. You do need a valid hPassport Lite to transact on Haven1. Apps, markets and assets may have additional requirements.

**What is a safe Health Factor?** Keep HF well above 1. Many users target 1.5 to 2 or higher, depending on volatility.

**Are flash loans available?** Flash loans are currently disabled by default with higher LTV requirements to protect liquidations. If enabled for a market, the app will show the option and limits.

**Why can’t I borrow more?** You might be at your LTV limit, your asset may be isolated, caps may be reached, or E‑Mode is off.

**Why can’t I withdraw?** There may be insufficient unborrowed liquidity in the reserve, or withdrawing would drop your HF to 1 or below.

**What if the Oracle is compromised or manipulated?** Haven1, in partnership with Redstone, uses permissioned,  approved feeds that can provide data to the protocol, reducing the risk of malicious inputs. In addition, Network Guardians perform continuous anomaly detection on price data. If manipulation is detected, Haven1 can pause markets, switch feeds, or adjust parameters to protect users.

**What happens if collateral no longer covers the debt?** In lending markets there is always a risk that collateral value drops below debt. When collateral weakens and debt is no longer considered healthy, liquidators have an incentive to step in. On other chains, automated bots and flash loans are often used to liquidate positions before they become unrecoverable. Haven1 does not support flash loans. Instead, the solution is external debt monitoring, where users or Haven1 can manually call the smart contract to repay bad debt and restore balance

***

### Developer notes

* hLend is API and contract compatible with Aave v3 patterns for reads and most writes, adapted to Haven1 addresses and access controls.
* Integrate with Haven1 oracles and respect reserve configuration when building on top of hLend.
* Test on the Haven1 test environment before mainnet.


# Liquid ETH Staking on Haven1

Liquid staking ETH on Haven1 allows you to double dip rewards by earning attractive yields by using your hsETH in Haven1 DEFI ecosystem in addition to native ETH staking yield

Get started by going here [Direct Link](https://portal.haven1.org/stake-eth)

Here’s a step-by-step guide to get you started and to help you understand how everything works

First things first, if you have never staked before, you might want to explore [**Ethereum Staking**](https://ethereum.org/en/staking/) to understand the basics.

### Getting Started: Set Your Network Right! 🌐

Now that you are ready, let's make sure you're on the right network. If you’re hanging out on the Haven1 network, you’ll need to switch over to **Ethereum Mainnet**:

1. **Change Network:** Simply click on ‘*Switch Network*’ at the top right of your screen. Easy peasy!

   <figure><img src="/files/ra6u1Me6ZfHKnERhTu0a" alt=""><figcaption><p>ETH staking is being offered on Ethereum Network</p></figcaption></figure>

### Let's Stake Some ETH! 🔥

Now that you're on the Ethereum network, let’s get to the fun part:

2. **Navigate to Stake:** Click on the ‘*Stake*’ tab and decide how much ETH you want to lock in. Feeling generous? Go big!

<figure><img src="/files/bn6jIOzMi7Wt4cPF51pG" alt="" width="563"><figcaption></figcaption></figure>

3. **Stake ETH to obtain hsETH:** On clicking '*Stake ETH*' you will have to approve the spend and then confirm the transaction. Upon staking, you’ll receive hsETH tokens of the exact same $ value. Transaction cost being shown is the gas you pay on Ethereum Mainnet. Haven1 doesn't charge any fees on this action.

{% hint style="info" %}
Note that as hsETH accrues staking rewards, it will rebase and gain in value against ETH. We’ll show you exactly how much hsETH you’re getting back before your stake.&#x20;
{% endhint %}

<figure><img src="/files/hMo9FpZQwG0s6WVup0Hw" alt="" width="563"><figcaption><p><em>Note that is this is just an example. You will see the actual exchange rate on the product page.</em></p></figcaption></figure>

### Bridging hsETH over to Haven1 mainnet

4. You can bridge directly now as a part of the stake transaction itself. You will see the status on the display and may be asked to apporve and confirm multiple transactions on your metamask&#x20;

<figure><img src="/files/f07q5sR9INAKquVkyTRN" alt="" width="368"><figcaption></figcaption></figure>

5. You should also be able to go to bridge next and bridge your hsETH from Ethereum Mainnet to Haven1 Mainnet by going to this [Direct Link](https://portal.haven1.org/bridge)
   1. Simply select **Ethereum** as the Send From Network
   2. Next choose **hsETH** as the token you want to bridge.&#x20;
   3. You will see **Haven1 Mainnet** as the Send To network and **hsETH** has the token you will receive
   4. Fill in the amount of hsETH you want to bridge or simply choose **Max** if you want to bridge in all your hsETH
6. Click Confirm after reviewing everything
7. You will need to pay the gas on Ethereum Mainnet. There is no deposit fee being charged by Haven1 network

### Earn trading fees and incentives by using hsETH on Haven1 Mainnet

5. You can now start using hsETH on Haven1 Mainnet DEFI
   1. Easiest option would be to add liquidity to auto managed vaults by Ichi by going [here](https://portal.haven1.org/earn/0xFAF23030b88F31DD1967298C100d33Be2794e266). These vaults auto balance and keep your assets in play to keep earning you healthy rewards and incentives. Note that you take a risk on impermanent loss when you provide liquidity here.&#x20;
   2. You may want to pool your hsETH with hETH(Bridged Ethereum from Ethereum Mainnet) on hSwap by going [here](https://swap.haven1.org/#/pool)&#x20;

## **Important Notes ⚠️**

**Ready to Unstake?**

* Bridge out hsETH from Haven1 Mainnet to Ethereum Mainnet by visiting this [Direct Link](https://portal.haven1.org/bridge)
* Unstake Anytime: Once you get your hsETH back on Ethereum mainnet, you can decide to unstake your ETH anytime by going to this [Direct Link](https://portal.haven1.org/stake-eth).&#x20;
  * Note that it might take 7 to 10 days, depending upon the Unstake Queue, for your assets to be ready to withdraw once you’ve unstaked.
* Withdrawing Your Unstaked ETH: After the unstaking process is complete, your assets will become available for withdrawal. Visit Withdrawal by visting this [Direct Link](https://portal.haven1.org/stake-eth) to withdraw your ETH

### Audit Reports 🔐

Haven1 mandates application developers to get 2 audits done before they are allowed to deploy any application on the network. In line with the policy, we got 2 audits done for this product.&#x20;

{% file src="/files/l0DNplJEkwPJigNMDtu9" %}
SigmaPrime hsETH audit report
{% endfile %}

{% file src="/files/nVOVxIw2EvBpYmHTq9qM" %}
Zokyo hsETH audit report
{% endfile %}

## FAQ

<details>

<summary>What is hsETH?</summary>

hsETH on Ethereum Mainnet is a liquid token that represents staked ETH on the Ethereum Mainnet. By staking your ETH through Stader Labs, hsETH allows you to maintain liquidity and engage in DeFi activities while accruing staking rewards. This keeps your assets active even as they earn staking benefits.

hsETH at a technical level is the wrapper on Stader's ETHx product with a different name that is branded in line with Haven1 tokens. You can read more about ETHx by going to this [Direct Link](https://www.staderlabs.com/docs-v1/Ethereum/ETHx%20Staking/)

1 ETHx = 1 hsETH

hsETH on Haven1 Mainnet is a bridged version of hsETH on Ethereum Mainnet. hsETH bridged from Ethereum Mainnet is stored securely in a vault on the source chain and corresponding bridged version is minted on Haven1 mainnet. This is done on Haven1 bridge which is operated by Haven1 validators. Users can verify the proof of reserves at anytime by going to this [Direct Link](https://portal.staging.haven1.org/bridge/proof-of-reserves)&#x20;

1 hsETH on Ethereum Mainnet = 1 hsETH on Haven1 Mainnet

</details>

<details>

<summary>Is hsETH safe?</summary>

hsETH at a technical level is the wrapper on Stader's ETHx product with a different name that is branded in line with Haven1 tokens.

You can read all about ETHx security by going to this [Direct Link](https://www.staderlabs.com/docs-v1/Ethereum/ethx-security/)

</details>

<details>

<summary>Is 1 hsETH equal to 1 ETH?</summary>

1 hsETH is not equivalent to 1 ETH.&#x20;

hsETH continuously accrues staking rewards and grows in value against ETH. As an example, you may get .97 hsETH by staking 1 ETH when you stake and  when you unstake this .97 hsETH may grown to 1.1 ETH due to accruing staking rewards.

</details>

<details>

<summary>Can I restake hsETH and earn Eigenlayer points?</summary>

While hsETH cannot currently be restaked, we are actively working to enable this feature with various re-staking protocols.\
\
At the moment, holding hsETH makes you eligible for Haven1's airdrop, offering additional incentives for early and active participation. Once Haven1 launches mainnet, you will be able to earn potentially double digit returns by deploying hsETH in different protocols on Haven1 network.

</details>

<details>

<summary>What can I do with hsETH on Haven1?</summary>

Upon the launch of Haven1's mainnet, you will be able to earn yields on your idle hsETH for a variety of activities such as by providing liquidity on hSwap or by lending hsETH on hLend.&#x20;

</details>

<details>

<summary>Can I trade hsETH? If yes, where? If not, when? What are my options to get out of hsETH?</summary>

hsETH is tradeable. You may need to set up a pool in a DEX such as Uniswap on Ethereum Network to be able to trade hsETH.&#x20;

Note that, you can unstake hsETH at any time and withdraw pending an unstaking period.&#x20;

</details>


# Staking H1 & esH1 - Earning rewards on your H1 holdings

Earn rewards with Haven1’s flexible staking system, offering secure and dynamic yield opportunities.

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td></td><td><strong>What is esH1?</strong></td><td>Learn about Escrowed H1</td><td><a href="/pages/3jwq0SOGi9kmGL8dldjd">/pages/3jwq0SOGi9kmGL8dldjd</a></td><td><a href="/files/PIq7ch6VgeVrwRnJcXj5">/files/PIq7ch6VgeVrwRnJcXj5</a></td></tr><tr><td></td><td><strong>Flexible Staking</strong></td><td>Stake and earn esH1 rewards, withdraw any time</td><td><a href="/pages/ICKDwCbgYzkBEGFQRlNU">/pages/ICKDwCbgYzkBEGFQRlNU</a></td><td><a href="/files/NdwC5kxFfZyQgaN4D60L">/files/NdwC5kxFfZyQgaN4D60L</a></td></tr><tr><td></td><td><strong>Locked Staking</strong></td><td>Stake &#x26; Lock to earn esH1 and governance voting power</td><td><a href="/pages/ZamENMWqvxlFAaq8fqeh">/pages/ZamENMWqvxlFAaq8fqeh</a></td><td><a href="/files/1W2v6FhaW17547YbnJAd">/files/1W2v6FhaW17547YbnJAd</a></td></tr></tbody></table>


# Flexible Staking

Flexible staking on Haven1 allows users to stake their H1 or esH1 tokens ([What is esH1?](/learn/what-is-esh1)) without having to lock these tokens, providing the freedom to earn rewards while retaining the ability to unstake at any time. This flexibility is ideal for users who seek to participate in the network’s growth and earn rewards without committing their tokens for a long duration.

### How Flexible Staking Works

1. **Staking Process:** Users can begin staking by choosing an amount of H1 or esH1 tokens to stake through the Haven1 portal by going [here](https://portal.haven1.org/stake-h1/flexible). There is no minimum staking period, offering immediate flexibility.
2. **Earning Rewards:** Users can see the APR at any time. Note that this APR is variable per the amount of available rewards and demand from users and may change over time. Staked tokens immediately start earning rewards per this APR. These rewards accrue in real-time and can be tracked directly on the same page. Rewards are earned in esH1 ([What is esH1?](/learn/what-is-esh1)) tokens
3. **Unstaking and Claiming Rewards:** Users can unstake their tokens and claim their accumulated rewards at any time. Claiming rewards doesn’t incur any application fees. Unstaking does incur the 1$ application fee paid in H1 tokens. This process is straightforward and executed through the same interface used for staking.

### How to use Flexible Staking

1. Go to the Stake H1 page (<https://portal.haven1.org/stake-h1/flexible>)
2. Enter the amount of H1 or esH1 you would like to stake

   <figure><img src="/files/hzqbF5kBfCGHrP9fv1T0" alt="" width="375"><figcaption></figcaption></figure>
3. Review your stake reward and click `Stake`
4. Confirm the transaction in MetaMask
5. Once completed you can see your rewards at the top of the stake page

   <figure><img src="/files/o7lPBtjMzdTBEckytosW" alt="" width="375"><figcaption></figcaption></figure>
6. You can also `Claim` your rewards at the top of the page

### Application Fees

* Transaction Fees: A nominal fee of $1 worth of H1 is applied for unstaking tokens and claiming rewards. This fee covers the operational costs associated with these transactions on the blockchain.

### Benefits of Flexible Staking

* **Accessibility:** Flexible staking is designed to be accessible to all users, whether they are seasoned crypto investors or new to the space.
* **No Lock-in Period:** Unlike locked staking mechanisms, flexible staking does not require users to commit their tokens for a set period, providing greater control over their investments.
* **Immediate Reward Accumulation:** Rewards begin accumulating immediately upon staking, and real-time tracking allows users to see the benefits of their participation without delay.


# Locked Staking

This document details how users can lock esH1 for up to 208 weeks to earn enhanced rewards as well earn governance rights on the network proportional to their stake

You can try out the product [here](https://portal.haven1.org/stake-h1/lock)

Locked staking allows you to lock your esH1 tokens to earn rewards and to be able to participate in governing the Haven1 network. This is for you if you are willing to lock your tokens in exchange for higher rewards and greater influence within the Haven1 network through governance participation.

### How Locked Staking Works

1. **Initiating a Lock:** First, you have to can choose to lock your esH1 tokens by going [here](https://portal.testnet.haven1.org/stake-h1/lock). Once on the page, you can select a duration that suits your investment strategy, anywhere from one week up to four years. Once locked, these tokens cannot be unstaked until the end of the chosen period. If you want to stake using H1 tokens, you would have to convert them to esH1 first.

{% hint style="info" %}
Note: Lock periods are standardised to begin each Thursday. You will start earning rewards from next Thursday onwards.

For example, if you initiate a lock on Tuesday, the countdown will officially start from the coming Thursday(in 2 days). Our user interface is designed to clearly display your lock and unlock dates before you finalize your transaction, ensuring transparency and understanding.
{% endhint %}

2. **Earning Rewards:** The rewards for locked staking are typically higher than those available through flexible staking. These rewards are not only in the form of H1 tokens but may also include other tokens active within the Haven1 network. Rewards accrue from both the issuance of new H1 tokens and revenue generated from all applications that charge an application fee on Haven1 network.
3. **Claiming Rewards:** While the principal amount remains locked, the accrued rewards can be claimed at any time. Claiming these rewards incurs a standard application fee of $1 worth of H1.
4. **Unstake:** You will only be able to unstake these tokens once the lock period is over. You can go over [here](https://portal.haven1.org/stake-h1/lock/history) to track the exact date of unlock.
   1. IMPORTANT NOTE: You get back the token you used for locked staking. If you used your esH1 in locked staking, you get back esH1 after the lock period is over.
5. **Governance Participation:** Upon locking your tokens, you receive veH1 proportional to the amount and duration of the esH1 locked. This token grants you the power to vote on governance proposals, influencing the development and policies of the Haven1 network.
   1. As your locked period diminishes, so does your veH1, decreasing your voting power gradually. This mechanism ensures that governance influence is aligned with current stakeholder commitment. Examples:
      1. If you lock 100 esH1 for 4 years(max of 208 weeks), you get 100 veH1 starting the next epoch(Epoch starts every Thursday at UTC)
      2. If you lock lock 100 esH1 for 4 weeks, you will earn 4 times the voting power versus if you lock 100 esH1 for 1 week
      3. If you have initially earned 100veH1 power after locking your esH1 tokens for 4 years. your voting power will decay to 75veH1 after 1 year.
6. **Adding to an Existing Lock**: You can add more esH1 to your existing lock at any time. This addition will adhere to the original lock's expiration date and will not initiate a new lock period. Again, the increase in rewards and voting power will occur the Thursday immediately after you do this action.

   <figure><img src="/files/sdhwCBjE6cpt4It12I10" alt="" width="375"><figcaption><p><strong>Here’s how to maximize rewards and influence by added more esH1</strong></p></figcaption></figure>
7. **Increasing your lock duration:** You can always increase the lock duration up to a maximum of 4 years to earn more rewards and to be able to increase your voting power

<figure><img src="/files/Qw8kRtF5BpNrSrmFgDVi" alt="" width="375"><figcaption><p><strong>Here’s how to maximize rewards and influence by extending your commitment.</strong></p></figcaption></figure>

### Application Fees

* **Claiming Rewards Fee:** There is a $1 fee in H1 tokens for each reward claim to cover transactional costs on the blockchain. To minimize transaction fees and maximize your returns, consider aggregating your rewards for a few days before claiming. This strategy reduces the frequency of transaction fees while allowing your rewards to accumulate.

<figure><img src="/files/mW727heZmcv9VutaRlMN" alt="" width="375"><figcaption></figcaption></figure>

### Locked Staking Benefits

* **Higher Rewards:** Due to the committed nature of locked staking, the rewards are significantly higher compared to flexible staking, aligning with the increased risk of longer-term token lockup.
* **Increased Governance Influence:** The veH1 tokens provide you the ability to influence the platform's direction through active participation in governance decisions.
* **Security and Stability:** By locking tokens, You help maintain the stability and security of the Haven1 network, reducing the circulating supply and potential market volatility.

### Key Considerations

* **Irreversible Commitment:** Once esH1 is locked, it cannot be unlocked until the term expires. You should consider your liquidity needs and risk tolerance before opting for locked staking
* **Governance Engagement:** Holding veH1 merits you to be proactive in participation, as these tokens grant you voting rights in Haven1 network's governance processes. You should stay engaged with Haven1 governance by regularly reviewing upcoming proposals by going here and participating in discussions. Your vote counts significantly towards shaping the future of Haven1.


# Vesting esH1 - Converting esH1 to H1

Vesting is the process of converting esH1 into liquid H1, block by block, over a 365 day period

Direct link to esH1 Vesting page&#x20;

Vesting esH1([What is esH1?)](/learn/what-is-esh1) involves the conversion of escrowed H1 (esH1) into the liquid H1 token over a 365-day period.  This process is designed for users who prefer to gradually turn their non-transferable esH1 into H1, which can be freely traded or used on the Haven1 network.

### How Vesting Works

1. Initiating Vesting: Users can start the vesting process with a minimum of 0.01 esH1. The process is straightforward and managed through the Haven1 Portal by going [here](https://portal.haven1.org/vesting). Note that vesting will incur a standard 1$ application fee paid in H1.&#x20;
2. Vesting Period: Vesting occurs linearly over 365 days. The esH1 tokens gradually convert into H1 tokens during this period, ensuring a controlled release into the user's wallet. As an example, if you vest 365 esH1, you would have 100 H1 available to claim after 100 days, 200 H1 after 200 days and so on.
3. Track ongoing vestings & Claiming Vested H1: Users can check the ongoing tranches of vesting and claim their converted H1 tokens at any point by going [here](https://portal.testnet.haven1.org/vesting/schedule) during the vesting period. Once claimed, these tokens are fully liquid and can be used or traded on the Haven1 network.&#x20;

{% hint style="info" %}
Note: Claiming the vested H1 will incur a standard 1$ application fee paid in H1.
{% endhint %}

### Application Fees

* Vesting and Claiming Fees: Initiating vesting and claiming vested tokens each incurs a standard application fee of $1 worth of H1, covering the operational costs of processing these transactions.
* Given the fee considerations, it would not be prudent to vest small amounts of esH1 or claim small amounts of vested H1&#x20;

### Important Considerations

* No Locked Staking Benefits: esH1 undergoing vesting does not accrue staking rewards. This process is solely for converting escrowed tokens into their liquid form.
* No Governance Participation: Vested esH1 does not confer governance rights during the vesting period, as it is not locked.
* User Decision: The choice to vest esH1 is at the user’s discretion, based on their need for liquidity or personal financial strategy. The platform does not advocate or advise on the decision to vest, recognizing that each user's circumstances are unique.

### Summary

The vesting process for esH1 on Haven1 allows users to convert their non-transferable esH1 into liquid H1 tokens in a controlled and predictable manner. This guide is intended to provide a clear understanding of how vesting works and to demonstrate the process through a user-friendly interface on the Haven1 platform.

<br>


# 2FA Wallet Shield

2FA on Haven1 prevents you from getting REKT if you lose your private keys

Haven1 is the first blockchain to have 2FA built-in.&#x20;

### What is 2FA?

Two-factor authentication (2FA) is a security process that requires users to provide an additional code to perform certain actions.  This added layer of security reduces the risk of unauthorized access.

With 2FA enabled, even if someone were to somehow obtain your private keys or seed phrase, they would still need access to your mobile device to generate a unique code for login, or to sign transactions.&#x20;

Wallet Shield is a commitment to peace-of-mind, and dramatically reduces the risk of unauthorized access and keeps your assets secure. By implementing this measure, you’re adding additional layers of protection to protect your assets from unlawful accessibility. As such, with this enabled, we’re able to provide you with more tools to:

* Protect Your Assets: Your digital assets are valuable, and we're taking every precaution to ensure they remain secure within the Haven1 ecosystem.
* Unlock New Opportunities: With enhanced security, we can explore new features and partnerships that require a higher level of trust and verification.

With Wallet Shield (2FA) enabled, you can more confidently use it as a secure onchain storage solution, knowing that your funds are protected by best practice security measures.

### Current Coverage and Future Plans

Launching 2FA at a chain level is momentous feat that needs coordination with all the applications build on Haven1. However, to allow quicker access to the product to our community, we have decided to approach this incrementally.

At Launch, 2FA prevents only the withdrawals of assets via the bridge.

In future versions, there is a lot more in store. Here's a sneak peek.

1. We will expand 2FA coverage to every transaction on chain
2. We will allow you to set up 2FA selectively on only high risk transactions (Such as transactions that spend more than $100 in assets as an example)
3. We will allow you to set up alerts if someone else is trying to enter your account by trying random 2FA codes

#### Ready to set up 2FA?

[Here](/haven1-guides/2fa-set-up-guide) is the detailed guide to setting up and removing 2FA on Haven1<br>


# Governance & veH1

This document explains the role of governance on Haven1 and visualises how you as a network participant can decide the future of the Haven1 network

## **Important Note**

Haven1 intends to be community governed. However, unless the H1 token is sufficiently decentralised,  malicious entities can corner the limited liquidity in the market and propose to harm the network. And hence proposal creation would only be available once the token is sufficiently decentralised. &#x20;

This doesnt mean your voice can't be heard. Please feel free to engage with operators via community channels meanwhile.

## **Haven1 Governance Framework**

1. Haven1 is committed to progressively expanding the rights of veH1 holders as the network stabilizes
2. Initially, the governing council, comprising seven validator partners, holds the veto power to override proposals deemed harmful. This council's composition may evolve, with positions becoming electable by veH1 holders.

### **Governance Participation**

veH1 token holders actively shape the Haven network through the governance products.  These include but not limited to

* Distribution incentives through the Governance Fund
* Grants provided to Builders of 3rd-party hApps on Haven1
* Compensation for core contributors
* Fee split between builders and the network
* Voting for core hApp (hSwap, hLend, hPerps, hNFTS, hDomains) updates

This transparent and fair decentralised governance model ensures the representation of $H1 token holders’ interests. Governance rights extend to core hApps such as: hSwap, hLend(borrowing and lending), hPerpetuals, NFT marketplace and hDomains.

## How to get veH1 voting power

### Step1: Obtain H1

* You will need to complete KYC to be able to transact on Haven1
* You can obtain H1 via one of the DEXs or CEXs where it is listed. Then [bridge](https://portal.haven1.org/bridge) H1 over to Haven1 mainnet. Or you could bridge a different token and then swap into H1 using [hSwap](https://swap.haven1.org/#/swap)

### Step2: Convert H1 to esH1 and Stake esH1

* You will have to convert H1 into esH1 to be able to lock your tokens for staking
* By [Locking](/products/staking-h1-and-esh1/introduction-to-locked-staking) your esH1 tokens, in return you will receive veH1 voting power. Higher the ve power, longer the lock for the same amount of [esH1](/learn/what-is-esh1).&#x20;

{% hint style="info" %}
Your voting power for any proposal is based off snapshot that is taken every Thursday. This means if you obtain veh1 today, you will only be able to participate in governance from the following Thursday onwards.
{% endhint %}

### Reviewing Proposals

1. You can easily view all on-going and past proposal in the **All Proposal** section by going [here](https://portal.testnet.haven1.org/governance?)

   <figure><img src="/files/jwS8VhwkZloi0L3Rzoo4" alt=""><figcaption></figcaption></figure>
2. To review a proposal, simply click on the Proposal. You can vote only on proposals that have Status as ongoing. On this proposal, detail page, you will see proposal details as well as the voting  options.

   <figure><img src="/files/D9hUI8IivveqUIP3tQ7x" alt=""><figcaption></figcaption></figure>
3. You should read through the proposal details. Governing the network comes with this responsibility. To cast your vote simple click on your desired selection.

   <figure><img src="/files/VY2vcWDtrbkQMpkpUq2E" alt="" width="360"><figcaption></figcaption></figure>

   Quorom indicates the voting power that should be needed to implement the changes being proposed. Currently all proposal have a 30% quorom by default. As the governance matures, different quorom settings may be introduced depending upon criticality of the proposal&#x20;
4. You will be prompted to sign a request to confirm your vote.
5. Whichever option has higher votes is the result of the proposal as long as proposal achieves quorom. This is called voting differential. In the beginnning, there is no minimum voting differential to execute a proposal. Simply having more votes is the winning option.
   1. As governance matures, more mature voting differentials options will be launched based upon criticality of proposal

### Submitting a Proposal

1. Click on New Proposal

   <figure><img src="/files/9ZtwUPeJzrWaHfOJfqvN" alt="" width="375"><figcaption></figcaption></figure>
2. Carefully fill in the Title, Description and optional Discussion link
   1. As a proposer, you are responsible for explaining the proposal in detail and with complete clarity
   2. Note that any major changes will be required to be discussed with the community through the discussion forums before submitting a formal proposal. We will launch a forum where such discussions can be held in next few weeks.
3. You can then select the voting system **Basic Voting** or **Single Choice Voting**
   * **Basic Voting (For vs Against) -** The option with the highest number of votes is considered the winning option

     <figure><img src="/files/gINx8vNm7x0UniUSGLPd" alt="" width="375"><figcaption></figcaption></figure>
   * **Single Choice Voting -** You can add custom options. The option with the highest number of votes is considered the winning option

     <figure><img src="/files/tHNMDjLhSPDTFYcnQM37" alt="" width="375"><figcaption></figcaption></figure>
4. Fill in the proposal choices and other info
   * Note that Start Period and End Period is not editable
   * Voting Period is currently fixed to 7 days. Over time, we will create a few different templates where urgent proposals don't need to wait 7 days. at the same time foundational changes have a longer voting period than relatively inconsequential ones
   * When you submit the proposal and you will need to sign a transaction and pay a 1$(paid in H1) application fee

### Current Proposal prerequisites & timeline

1. Submit Proposal: Must have 1000 veH1 power
2. Review period: 3 days
3. Voting period: 7 days
4. If a Proposal achieves quorom, it goes to next stage
5. Next stage is 7 day challenger period
   * Council can veto during the challenger period if the proposal is malicious or harmful to the network as a whole.
6. After challenge period then the proposal is executed

<figure><img src="/files/b4dP4RPCPLUkos2L8RxU" alt=""><figcaption><p>Proposal timeline shows visually</p></figcaption></figure>


# Haven1 block explorer

Track transactions, view contract interactions, and analyze blockchain activity with Haven1’s block explorer.

[**Direct Link to Haven1 Block Explorer**](https://explorer.haven1.org/)

{% hint style="info" %}
The Haven1 Block Explorer is an essential tool for anyone interested in tracking and understanding the activities on the Haven1 blockchain. This guide will help both beginners and experienced cryptocurrency enthusiasts navigate the Block Explorer with ease.
{% endhint %}

### **Step 1: Accessing the Haven Block Explorer**

1. **Direct access**: Visit the Haven1 Block Explorer by typing its URL in your web browser.
2. **Via Haven1 website**: Navigate to the Block Explorer through the official Haven1 website.

### **Step 2: Overview of the homepage**

1. **Search bar**: Use this to search for specific transactions, wallet addresses, or blocks.
2. **Latest blocks**: View recent blocks along with key details like block numbers and transaction counts.
3. **Transaction activity**: Check the list of recent transactions, including sender and recipient details.![](/files/RJMy0puFGdXhWNpCeCB6)

### **Step 3: Exploring blocks and transactions**

1. **Block details**: Click on a block to see its height, timestamp, hash, and included transactions.
2. **Transaction details**: Click on a transaction to view information about the sender, receiver, transaction amount, hash, and status.

<figure><img src="/files/CV44ICoRUG3K4GtCfMYH" alt=""><figcaption><p>Tx shows swap of 500 SILVER Tokens for 133 GOLD Tokens</p></figcaption></figure>

### **Step 4: Navigating the menu**

1. **Transactions**: Access a comprehensive list of transactions on the Haven1 blockchain.
2. **Blocks**: View all blocks, with the option to examine each in detail.
3. **Verified contracts**: Explore contracts with public source code and compiler settings.
4. **Charts & stats**: Analyze various statistics like active accounts and daily transactions.

<figure><img src="/files/kQRk8nxQb53NbVzCQ0t5" alt="" width="200"><figcaption></figcaption></figure>

### **Step 5: Investigating addresses**

1. **Address search**: Input or click an address to view its balance and transaction history.
2. **Transaction history**: See a detailed list of transactions associated with the address.

<figure><img src="/files/9Q4e1wq4ZvBmWp52lXcw" alt=""><figcaption><p>Page shows balance of tokens and recent transactions for this particular address</p></figcaption></figure>

### **Step 6: Exploring contract details**

1. **Contract overview**: Understand the purpose and functionalities of a specific smart contract.
2. **Contract address**: Note the unique deployment address of the contract.
3. **Contract creator**: Identify the creator of the contract.
4. **Transaction history**: Review transactions related to the contract for additional insights.
5. **Contract code**: Examine the source code for transparency and understanding of the contract's logic.

<figure><img src="/files/7yp5E087552yHqwNNbZZ" alt=""><figcaption></figcaption></figure>


# Quick links

Access all essential Haven1 testnet resources, including faucets, verification, and bridging.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Haven1 Portal</strong></td><td><a href="https://portal.haven1.org/">https://portal.haven1.org/</a></td><td><a href="/files/sQo4HkDxcx50j3ZqRpNZ">/files/sQo4HkDxcx50j3ZqRpNZ</a></td></tr><tr><td><strong>Haven1 Customer Support</strong> </td><td><a href="https://haven1.atlassian.net/servicedesk/customer/portals">https://haven1.atlassian.net/servicedesk/customer/portals</a></td><td><a href="/files/swRHrj1xJj2tYabG6CvE">/files/swRHrj1xJj2tYabG6CvE</a></td></tr><tr><td><strong>Bug Report Form</strong></td><td><a href="/pages/SR6CgYk1cJbvqXgOTyK0">/pages/SR6CgYk1cJbvqXgOTyK0</a></td><td><a href="/files/6eQ2YJmRkQcT22HJVsv6">/files/6eQ2YJmRkQcT22HJVsv6</a></td></tr></tbody></table>

## Haven1 Applications <a href="#introducing-haven1" id="introducing-haven1"></a>

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>hSwap</strong></td><td><a href="/files/UYiUR8DlWRFRD5pvSE4b">/files/UYiUR8DlWRFRD5pvSE4b</a></td><td><a href="https://swap.haven1.org/#/swap">https://swap.haven1.org/#/swap</a></td></tr><tr><td><strong>Haven1 Explorer</strong></td><td><a href="/files/FK7CHMHKJUrlydcQwRxx">/files/FK7CHMHKJUrlydcQwRxx</a></td><td><a href="https://explorer.haven1.org/">https://explorer.haven1.org/</a></td></tr><tr><td><strong>Haven1 Gnosis Safe</strong></td><td><a href="/files/i885nPI9rKKWr5Ti7IwH">/files/i885nPI9rKKWr5Ti7IwH</a></td><td><a href="https://safe.haven1.org/">https://safe.haven1.org/</a></td></tr><tr><td><strong>Flexible Staking</strong></td><td><a href="/files/c1ABYNHF02HQhkd5z6wt">/files/c1ABYNHF02HQhkd5z6wt</a></td><td><a href="https://portal.haven1.org/stake-h1/flexible">https://portal.haven1.org/stake-h1/flexible</a></td></tr><tr><td><strong>Locked Staking</strong></td><td><a href="/files/Lk4k20KbEMD7L3gTeUk5">/files/Lk4k20KbEMD7L3gTeUk5</a></td><td><a href="https://portal.haven1.org/stake-h1/lock">https://portal.haven1.org/stake-h1/lock</a></td></tr><tr><td><strong>Vesting</strong></td><td><a href="/files/OvP84t1EmLh9vDxHYT7Z">/files/OvP84t1EmLh9vDxHYT7Z</a></td><td><a href="https://portal.haven1.org/vesting">https://portal.haven1.org/vesting</a></td></tr><tr><td><strong>Haven1 Native Bridge</strong></td><td></td><td><a href="https://portal.haven1.org/bridge">https://portal.haven1.org/bridge</a></td></tr></tbody></table>


# Haven1 onboarding Guide

Step-by-step guide to onboarding and verifying your account on Haven1.

{% hint style="info" %}
Haven1 is an EVM-compatible Layer 1 (L1) providing Web3 users a REKT resitant user experience

This comprehensive guide outlines how to get started with Haven1 and commence your journey today.
{% endhint %}

### **Getting Started:** <a href="#getting-started" id="getting-started"></a>

As Haven1 is an EVM-compatible blockchain, the following wallets will be compatible:

* ​[MetaMask](https://metamask.io/) (Recommended)​
* ​[Wallet Connect](https://walletconnect.com/)​

{% hint style="info" %}
If this is your first web3 wallet, we recommend downloading [MetaMask](https://metamask.io)
{% endhint %}

This tutorial will use the MetaMask browser wallet.

### Step 1: Connecting to Haven1 network in your wallet <a href="#hardbreak-step-1-add-haven1-cove-testnet-to-metamask" id="hardbreak-step-1-add-haven1-cove-testnet-to-metamask"></a>

Haven1 operates on its native token, H1. Therefore, before using Haven1, it is essential to configure MetaMask to recognize both the Haven1 blockchain and the H1 token.

<details>

<summary>Option 1: Through the Haven1 Website</summary>

1. Start at the [Signup Page](https://portal.testnet.haven1.org/signup) and click “Connect” in the top-right-hand corner of the page.

Desktop

<img src="/files/kFyCnvsI7YyqgVc4mE3R" alt="" data-size="original">

Mobile

<img src="/files/w1TMTJOsHfclsASgo17R" alt="" data-size="original">

2. You will see a window which shows a list of wallets

Desktop

![](/files/e7X51ksObRqTc26WgsIM)

Mobile

![](/files/XeIDFL1YvfQBuByIOQXr)

You can select whichever wallet you have installed.

* If you are accessing the website from within Metamask, choose Metamask

3. On clicking, your wallet extension will popup. You can select the wallet you want to connect and click **Next** to complete the connection.

The Haven1 network will then be added automatically. In some cases, you will get an explicit notification to connect with Haven1

</details>

<details>

<summary>Option 2: Manually through the Wallet</summary>

1. Adding Haven1 Mainnet manually to your wallet involves adding some network details to the extension.

First, open MetaMask. click the network dropdown icon and then click “*Add network*” on the pop-up.

<img src="/files/TmqYG4gW2MZe9ncLKugS" alt="" data-size="original">

2. Navigate to ‘*Add a network manually*’ and enter the following:

* Network name: `Haven1 Mainnet`
* New RPC URL:[ ](https://rpc.testnet.haven1.org)`https://rpc.haven1.org`
* Chain ID: `8811`
* Currency symbol: `H1`
* Block Explorer URL: `https://explorer.haven1.org`

<img src="/files/0Qf0ehFKzE5Rj1D16tnP" alt="" data-size="original">

After adding the above details, click “*Save*”.

3. Switch to the new network you have added
4. Visit [Haven1 Website Signup page here](https://portal.haven1.org/signup) and click Connect. Choose the wallet you have added the above network. Once your wallet detect the connection request, it will prompt you to confirm the Connection. Click Connect on the wallet popup

</details>

***

### Step 2: Initiating Signup <a href="#hardbreak-step-2-complete-verification-process" id="hardbreak-step-2-complete-verification-process"></a>

{% hint style="info" %}
In order to transact on the Haven1 network, your account should complete signing up

On the mainnet, however, you would be required to complete KYC(and mint hPassport) to be able to transact.
{% endhint %}

1. Start at Haven1 Portal by going to this [link](https://portal.haven1.org/)
2. Once you have Connected your wallet to Haven1 Portal, you will have to Sign in first to verify that you are indeed the owner of the wallet you have connected. Sign in doesnt cost anything. This is equivalent of entering a password to your user name(wallet addresss)

Click **Sign in**. You wallet will prompt you to sign. Click **Sign**

<figure><img src="/files/HM7sIrfIsTxGmT62WZvU" alt="" width="375"><figcaption></figcaption></figure>

2. Next, you need to provide some very basic information. Enter your email, your invite code would be filled automatically if you have arrived on this page via an invite code. You can leave the Referral Code empty if you don't have it.
   * Please enter a valid email. This email would be used to communicate with you in case there are any issues with your account

<figure><img src="/files/dnOKUNzpp2DtCKietmCh" alt="" width="375"><figcaption></figcaption></figure>

3. Next you need to choose if you are creating this account for yourself or for your company.
   1. Choose Individual if you are creating account for yourself. Choose Business if you are creating this account on behalf of your business.
   2. You will be asked to choose your country of residence and nationality if you choose Individual
   3. If you choose Business, you will be asked to fill your Jurisdiction Country

<figure><img src="/files/TsuCsbnQ7k142vnn6SrY" alt="" width="375"><figcaption></figcaption></figure>

### Step 3: Complete your KYC

1. If you are an individual, check out this KYC guide [LINK](/haven1-guides/onboarding-and-verification/identity-verification)
2. If you are an business, check out the KYB guide here [LINK](/haven1-guides/onboarding-and-verification/business-kyc-kyb-guide)
3. It may take up to 24 hours to pass KYC verification. You will be informed by email you used to sign up.

### Step 4: Explore the applications on Haven1 Network <a href="#whats-next" id="whats-next"></a>

<figure><img src="/files/zTJOqvZBApfgQrsM9sFA" alt="" width="359"><figcaption></figcaption></figure>

1. Once you have submitted your KYC, you may go back to Dashboard by clicking **Back to Dashboard**
2. In Dashboard
   1. You can refer your friends by obtain a referral code by going [here](https://testnet.haven1.org/refer-to-earn) and earn attractive rewards for yourself and the person you refer once they complete signup and make a deposit on Haven1 network
   2. Stay in the loop with all the latest developments in our ecosystem by following us on our social media channels.
   3. Start your journey on the Haven1 network by diving into exciting applications:

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td><strong>Haven1 Faucet</strong></td><td>Receive H1 tokens</td><td><a href="/files/nxIvMAjqR5IyNkhx4xOJ">/files/nxIvMAjqR5IyNkhx4xOJ</a></td><td><a href="https://testnet.haven1.org/faucet">https://testnet.haven1.org/faucet</a></td></tr><tr><td></td><td><strong>Haven1 Bridge</strong></td><td>Bridge assets from Base and Ethereum to Haven1</td><td><a href="/files/2JejB0NWJUIq5w5zpmPW">/files/2JejB0NWJUIq5w5zpmPW</a></td><td><a href="https://portal.testnet.haven1.org/bridge">https://portal.testnet.haven1.org/bridge</a></td></tr><tr><td></td><td><strong>hSwap</strong></td><td>Buy, sell, and explore tokens on Haven1</td><td><a href="/files/UYiUR8DlWRFRD5pvSE4b">/files/UYiUR8DlWRFRD5pvSE4b</a></td><td><a href="/pages/YUs0deTuUyoe4oV6d2hv">/pages/YUs0deTuUyoe4oV6d2hv</a></td></tr><tr><td></td><td><strong>hPassport sample Apps</strong></td><td>Learn about the hPassport</td><td><a href="/files/955BxJnAhZeCERvbS1P5">/files/955BxJnAhZeCERvbS1P5</a></td><td><a href="/pages/i1FC2NTpw19NDCdBq1k3">/pages/i1FC2NTpw19NDCdBq1k3</a></td></tr><tr><td></td><td><strong>Haven1 Explorer</strong></td><td>View blocks, transactions, and network stats</td><td><a href="/files/FK7CHMHKJUrlydcQwRxx">/files/FK7CHMHKJUrlydcQwRxx</a></td><td><a href="https://explorer.testnet.haven1.org/">https://explorer.testnet.haven1.org/</a></td></tr><tr><td></td><td><strong>Haven1 Gnosis Safe</strong></td><td>Multi-sig custody protocol for asset management</td><td><a href="/files/i885nPI9rKKWr5Ti7IwH">/files/i885nPI9rKKWr5Ti7IwH</a></td><td><a href="/pages/PDBsWl5u2ndUdDWY1l0L">/pages/PDBsWl5u2ndUdDWY1l0L</a></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>


# KYC Guide

This is a guide that explains the role and detailed steps required to complete KYC and mint hPassport on Haven1

## Relevant link to understand more about KYC

1. You can read more about the hPassport [here](https://docs.haven1.org/core-concepts-of-haven1/provable-identity-framework) and understand how we keep your data safe
2. You can read Haven1 KYC policies [here](#kyc-policies-for-haven1)
3. Explore some of the applications that use hPassport in unique ways [here](https://docs.haven1.org/haven1-testnet-guide/provable-identity-applications)

### KYC Policies for Haven1

You can see detailed ID Verification Policies on Haven1 Network [here](broken://pages/S0LrvnHgQib4hmIg9ohA). At a high level,

1. We do not onboard users residing in certain high risk countries such as Iran, Iraq, Afghanistan, Myanmar, DPRK, DR Congo, Cuba
2. We do no onboard users that are less than 18 years old

## How to complete KYC?

KYC is mandatory as a part of signing up to Haven1 network

1. Start by going to Haven1 Portal [here](https://portal.testnet.haven1.org/signup)
2. Before you can start your KYC, you need to provide some basic information such as Email. If you haven't filled this information before, you will be prompted to do so
3. Next you will be required to provide your country of Residence and Nationality
4. Once you have provided all the information requested above, you will see this screen to initiate and complete KYC

On Desktop

<figure><img src="/files/HPjpV7pgvhS6dnhwxceS" alt=""><figcaption></figcaption></figure>

On Mobile

<figure><img src="/files/0mlj2bsZEbk82BzoYwZk" alt="" width="180"><figcaption></figcaption></figure>

### Step 1: Start the Verification Process

Visit the Haven1 verification portal. Click 'Continue' to proceed to the next step.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeVqgxjfkM2s60G0jhFyEjItgq7Pz_lC0CKrvgrc5VNW-IdFFz6JDCGRf1dgf7kVGVkxek5d9spyfITd964cKw4e---4L9yf-E4itjS_zQry6m7jleJ0W6nxmq92zdPGcfAXoPyIw?key=6M_7HnFb9Z1MM2PPuqQMzg" alt=""><figcaption></figcaption></figure>

### Step 2: Confirm Your Country of Residence

Choose your country of residence. Select either 'All countries except USA' or 'United States of America'.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeN2HIwct3jtNTcC41Nfw61KoSiirve0a38vTQ8pEsCvGZBKgSOpUq4I8VaXnAcGRvM6pR_tX52m2qTUTxZq0jm_puvkBfgv9ZKax7OWfr9mz4MqXnETxZeeIwOBP1VGJo-C2BrBA?key=6M_7HnFb9Z1MM2PPuqQMzg" alt=""><figcaption></figcaption></figure>

### Step 3: Understand the ID Verification Steps

You'll be required to upload an identity document and complete a liveness check. Click 'Continue on this device' or 'Continue on phone'.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdjdebM3zxnA3pzOQQFDJSiYlWf69bknVLPKJXeAzU0oX6sLgiS8dU3Th4zjktn25V9KHzym4xsEMSeMn-fNj3HJhp3BrJyOqMVAqbqfoiI-2pMZvr52Kh6U4n4EV0CrSkeirS-5w?key=6M_7HnFb9Z1MM2PPuqQMzg" alt=""><figcaption></figcaption></figure>

### Step 4: Select ID Type

Choose the issuing country and select the type of identity document you will use (e.g., ID Card, Passport).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeahTvAIJoWh8BUjvKsw9icljstPF_06QgPupZ0Of3wz7gECaAE6QXFbw4kXHm6WnbRi6nzO85Zh7ZV-ZNIkjrSepcgDqlMWNFAPOeAUaLAFyeb1AIjaLpJqFLFyQEmBAHvS_A9Xg?key=6M_7HnFb9Z1MM2PPuqQMzg" alt=""><figcaption></figcaption></figure>

### Step 5: Prepare to Upload ID

Make sure your ID document is clearly visible, well lit, and not edited. Click 'Continue' to proceed.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdi8_wSJCHgERty_0Sd5Ad1xlzbtsPgbUZ_8bCzbOyiUZwss1TZkCP1Z36HsSc5FTi8OvIlB4Zf1zNAlHXXqT0EcNGz1PBzh_jDWFOQEkOdw006wfAmkiAS2KdSHA11WvVBNRxakA?key=6M_7HnFb9Z1MM2PPuqQMzg" alt=""><figcaption></figcaption></figure>

### Step 6: Grant Camera Access

Allow access to your camera to proceed with the liveness check. Click 'Continue' and grant permission if prompted.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf7Gi4TZMh5eXhFijAKq3Wv2c98tGyABNdGFyLY_KdQCEFjTxlHETvfanph-L6GvAoMJGzTPFf7UDU5JY3zrDCHlghGzs4l7e4sm2S-sFDTFlB7DInCB7SrPOX4UbTmra6StLtotg?key=6M_7HnFb9Z1MM2PPuqQMzg" alt=""><figcaption></figcaption></figure>

### Step 7: Perform the Liveness Check

Follow the instructions on screen to complete the liveness check. Ensure your face is well-lit and clearly visible.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc_OoaFMto2a7pB9PLKElV_92c5nI4smMu2Ya9-CO4J7XLYcSMgw7C2Bon2BtywKZRxumBSEsx4mf59ow0mBx80_zGFhNWXUVgd0fqC1Tn5RYkQDumb87J9q9sXmjOXZqc9AEP-9Q?key=6M_7HnFb9Z1MM2PPuqQMzg" alt=""><figcaption></figcaption></figure>

#### For Business/Corporate KYC (KYB)

* **Corporate Verification:** Guide for Business KYB is [here](/haven1-guides/onboarding-and-verification/business-kyc-kyb-guide)

### Support and Assistance

If you encounter any issues during the identity verification process or have any questions, feel free to reach out to our support team [here](/quick-links/support).

## FAQ

<details>

<summary>My KYC has been rejected and I am not able to submit again. What should I do?</summary>

*Our KYC policies are set up by our compliance partners.*\
*In the event of unsuccessful KYC attempts, you will receive an email notifying you of the failure, unfortunately we will not be able to onboard any user that fails our verification process.*\
*Please be advised that the account will be rejected due to the following reasons:*

* *any document discrepancy*
* *duplicate accounts*
* *prohibited jurisdiction*
* *AML and CTF screening*

</details>

<details>

<summary>What proof of identity documents are accepted in order to complete KYC?</summary>

*To successfully complete KYC on Haven1, you will be required to provide one of the following documents:*

* *National Identification Card;*
* *Passport;*
* *Drivers License or*
* *Residence Permit*

</details>

<details>

<summary>What jurisdictions are prohibited?</summary>

*Haven 1 does not provide services to individuals and corporations based in the following jurisdictions:*

Haven1 will not allow users and developers residing in following countries to onboard on the network. These countries are:

* Afghanistan
* Belarus
* Burundi
* Central African Republic
* Cuba
* Democratic Republic of the Congo (DRC)
* DPRK (North Korea)
* Guinea
* Guinea-Bissau
* Iran
* Iraq
* Lebanon
* Libya
* Mali
* Myanmar (Burma)
* Republic of South Sudan
* Russia
* Somalia
* Sudan
* Syria
* Ukraine (Crimea, Donetsk, Luhansk regions)
* Venezuela
* Yemen
* Zimbabwe

</details>

<details>

<summary>I am facing issues completing KYC, what can I do?</summary>

*If you are experiencing issues completing KYC you can contact our customer support team by using the following* [*link*](https://haven1.atlassian.net/servicedesk/customer/portal/2/group/5)*.*

</details>

{% hint style="info" %}
You can read more about Haven Passport here: [hPassport: Accountability Meets Privacy](/products/provable-identity-framework)
{% endhint %}


# Business KYC(KYB) Guide

Learn how businesses can complete KYC/KYB verification on Haven1 for secure blockchain transactions.

### Step 1: Getting started

1. You can start the KYB by visiting [this](https://portal.testnet.haven1.org/settings/identity-verification) link on your desktop computer
2. Fill your basic personal information.
3. To verify your business account, select 'Business' under Account Type and specify the jurisdiction of incorporation.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd1h8Evk0qvka4MOKXS_2PrYUwHlOZevNPsOBZ1BHLxGBbMXfFX95Y4zvHCgdwgfpxJZczFkhQzOnzfyTcXnNRQB-_jqk9W6k2Ny8ORH6H3ClQsz1DtC_PhO6o--0l0VdZPQgQEKqT4-TdSnecKABSsyWRR?key=-A5VoAc6hIyqPbccddrqwg" alt="" width="375"><figcaption></figcaption></figure>

### Step 2: Click “Continue” on the Haven1-branded Sumsub portal

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXequ6R1VbGd20vAXbGpzcaP_6HPaLtQwWBHBmB8yJ-oDDboqLCHHP6WdvqOzDTwMWcS_LntYb-VjmuyKW1KcIftxL5hZmiO1IPL8Xj3cKVtfH8XdhrHG2coSE14vIA2OIxO51z8TQ?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 3: Confirm Country of Residence

Select your country of residence (e.g., 'All countries except USA' or 'United States of America').

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcfM7FUr9LAmrsWpa2JiFACYcssClAHyu9lGCHRp98JTdYCCsIn9gw3tSmWP1YV6JcwIbhGvyf0L9Wwb8tmtqgCDleqLTi1VUaCQLQJBZWbEQf_ZQ1KSqYpCFlacOmepkxNaVNv?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

Click 'Continue on this device' or ‘continue on phone’ to begin.

### Step 4: Find Your Company

Enter your company name and country of registration, then click 'Find company.'

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe6H-dIz8P8u77inbjRjhDlqGL8XOjkfRdqJiBId7gmBe9fyCxYi7ReYQdDwRcbWPZDtHYemRHP6RVSQN4tQZ78Yv60m7UiDtnAejPyi5OkBle1CrSTyMYZbNy5QEPsdUA0BxFB9g?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 5: Enter Company Details

Add your company name, registration country, and company registration number. Click 'Save and continue.'

You will only be prompted to complete Step5 if your company was not detected on the Public Registry Search

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfZ3a8V8j3J1MVshmize84XJYpXX_e79GTRxver4Vp7f_i-xQ2tFakAlGsRRJySJlHNangZkIa5ybGKdEsIy4_aUpECgvsTit1eDEk26sM_-ZxnFEwYiHNSOkurL8b5blT8ZQvD?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 6: Upload Company Documents

Upload required files such as the Incorporation Certificate and Articles of Association.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdn2tm5qKt3Ntt3TJwKu5CDGXg0raa48dfGR6N0zLi4HOmU3Ppsll_HpzDr4pcY92FDAUmgRBsA4-RzExq_GwSYh5cmM9EuTsCYEg16M5x3JIJukUJMQ2_t8aj_CTn6de8Azr-vkw?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 7: Select Document Type

Select document categories (e.g., Incorporation Certificate, Trust Agreement, etc.) before uploading.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdG5q4gov0LJ1dhdVrT1H__PCRpBHd7i6-zc71CMYchpDQ80cKWS8u2klyqMvLa2a5htS0yd1pGuUlohq65gUh7DBzIfiG3pKnlDslqvcdLf-POYUT79VNRn3aEen-lSmKbpUDN7w?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 8: Add Associated Parties

Add all relevant parties—Directors, Shareholders, Representatives, UBOs—by clicking 'Add individual.'

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdTEu942wWJn350GYXS1j4Ej6ZQ6IuX3dBIuUgB7pdSa5kKDgDiop-NlTCk_Q6kCTuSPML1fOTLrHEXz--LIdRaaCuB-dCJ4kdb40fCz72cmRDK4_NT9nVbtb-AKwlmOlHWZ4vpCg?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 9: Enter Associated Party Information

Input details for each party (name, date of birth) and click 'Create beneficiary.'

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcaC9FaRQEjk1j9h2ORhcrOUdbDMiiK29iRwmOpB5La2Rm3lYuBhR3V2uhagkzXe9MNqnr8z1TTt5QYk_TGYYFOpFSPGov1zmDEu8R8Bwfx0TBhGnaXLGYlE-Rgjf2LWu8dy_cVMg?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 10: Complete Associated Party Verification

Click 'Verify now' to begin the identity verification for each UBO or associated individual.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe8o0WY6FogArIckpHmnTPCLoXZ0IIm56tZio0rGTvuH66CLiUj99i5fr4aC7KtJc4p8cdiv0XQn7YR0Bs9m5k7vjR-HsJWETkTsUdnd1yo5ITHxAob12EmaTpAwBVQEd8GFSvk?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 11: Begin Identity Verification

You will be prompted to complete two steps:\
1\. Upload a valid identity document\
2\. Complete a liveness check (facial scan)\
Click 'Continue on this device' or 'Continue on phone.'

### Step 12: Choose ID Type

Select your country of issuance and type of ID (e.g., ID Card, Passport, Residence Permit).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe9BDisBWd844ijAlOpujLhtgrEZTv8RZZpKRE4kVieunbI83UMf1fZBj9pJAl040WXjcKppAeFFmHO2IThutSkRkAFTT0uUwG4h22aFifYoUMxuFIJKO78JKrQl3Seiw6I2o71?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

### Step 13: Prepare for Liveness Check

Ensure your environment is well lit and your face is fully visible. Avoid hats, glasses, or masks.\
Click 'Continue' to begin the facial scan.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdhqFarS4d-OrcVR1JAmWnk6S4yq0_y9_Ho_44IEflZe4ev49E7RIV7cP6iFaZVzbbbctuGy3z_u99hIP9qwo8lCots8x7oCw2CT1sA56E49p_Ult4lxUqmqs6iSLVgYdnKCkDL?key=HuCkwtV6eLuenQ0OSuExbw" alt=""><figcaption></figcaption></figure>

\
Once all parties have completed verification, the KYB application will be reviewed by Haven1 for approval.

<br>


# Simple Bridging Guide on Haven1 network

We will use a particular example to make this easy to follow along. This example is about bridging Wrapped H1 from Haven1 to Ethereum Network

#### 🛠 Before You Start

1. **Make sure you have MetaMask installed** and are connected to the Haven1 Mainnet. You can add Metamask to your browser by Clicking Add to Metamask by going [here](https://chainlist.org/chain/8811) ![](/files/YSJes3nAonyJyneYRMPH)
2. **Check your wH1 balance** in your Haven1 wallet.
3. **(Optional)** To see your wrapped H1 balance in MetaMask:
   * Go to the Haven1 Block Explorer ([Here](https://explorer.haven1.org/token/0xB041be50694f3018912c18c710e7BBB931002598)).
   * Find the wrapped H1 contract.
   * Click the MetaMask icon(fox icon) to auto-add the token to your wallet ![](/files/RvsW4zoihkbLKfVvVGX9)

***

#### 🚀 Bridging Steps

1. **Visit the Bridge**\
   Head to Bridge URL (<https://portal.haven1.org/bridge>).

<figure><img src="/files/Qq25D4IGd3mvYUQqdeDC" alt="" width="351"><figcaption></figcaption></figure>

2. **Select "From" Network**

* Choose **Haven1 Mainnet**.
* **Choose Token to Bridge.** Select **wrapped H1 (wH1)** from the token list.
* **Enter Amount to Bridge**
  * You can type a specific amount or click **Max** to bridge your entire wH1 balance.
* **Select "To" Network**
  * Choose **Ethereum**
* Under Ethereum, you’ll see only one token option: **H1**. That’s what you’ll receive on the other side. Select that token
* Verify everything.  Click Confirm
  * Note that you pay a small fee of 10bps while withdrawing assets
* **Approve Spending (if prompted)**
  * If this is your first time bridging wH1, MetaMask will prompt you to **approve** the bridge contract to spend your tokens.
  * Confirm the approval in MetaMask.
* **Confirm the Bridge Transaction**
  * Once approved, MetaMask will pop up again asking you to **confirm the actual bridge** transaction.
  * Approve and submit.

***

#### ⏳ What Happens Next?

* Your withdrawal is now **in progress**.
* wH1 will disappear from your Haven1 wallet.
* You can **track the status** of your bridge-out at: <https://portal.haven1.org/bridge/history>
* In normal conditions, bridging completes within **\~10 minutes**. Delays may occur if the network is congested.

***

#### 🪙 Viewing H1 on Ethereum

Once the bridge is complete:

1. **Open MetaMask** and switch to the **Ethereum Mainnet**. You can click this area to switch networks ![](/files/ZJ9impXjGdZ7xvkXyGWh)
2. Click on this click area. Choose. **“Import Tokens”** > **“Custom Token”**. ![](/files/u1LYDoq4qUi3ZWege1EP)
3. Paste the **Ethereum H1 contract address** 0x9e3b5582b22e3835896368017baff6d942a41cd9 (<https://etherscan.io/token/0x9e3b5582b22e3835896368017baff6d942a41cd9>).
4. Metamask will fetch rest of the details such as Token name automatically ![](/files/NoPFGmVBTyCNfF52jRv3)
5. Click **Next** and **Import**.

You’ll now see your H1 balance on Ethereum after the bridge transaction is complete

***

#### 💡 What Can You Do with H1 on Ethereum?

* **Send it** to another wallet using MetaMask.
* **Trade it** on platforms like **KuCoin** or **Uniswap**.
* **Use it** in DeFi apps

***

Need help? Reach out to the Haven1 community or support team. Happy bridging!


# Adding multiple wallets to a hPassport

Haven1 allows you to link multiple wallets to single KYC so that you can manage you assets across multiple wallets which avoids single points of failure

You may want to keep your wallets segregated for a number of reasons including security. Spread your assets across multiple wallets is a common strategy to avoid single points of failure in case you lose your private keys. And hence Haven1 allows you to link all your wallets to a single hPassport so that you can transact on the network with all those wallets.

### Here is how you can set this up

1. You must complete KYC to mint hPassport on 1 wallet first. This wallet would be referenced as Primary
2. Go to Settings -> Manage wallets in Haven1 Portal. Here is a Direct Link [LINK](https://portal.haven1.org/settings/manage-wallets)
3. Connect using your Primary wallet. You will need to Sign first. Click **Sign to link more Wallets.** On clicking, you will be prompted to Confirm the Sign In from Metamask. Click Confirm.

<figure><img src="/files/SGIgwG0ydPaV1yQz9Lcb" alt="" width="563"><figcaption></figcaption></figure>

4. Once you do that, you will see this guide&#x20;

<figure><img src="/files/uEWW9tYREtteQLpJ9Q9U" alt=""><figcaption></figcaption></figure>

5. Go to your metamask extension and switch to the wallet you want to link. And **Connect account** once that wallet is switched.&#x20;

   *In this example Account 5 is my primary account and now I am adding Account 7 to this hPassport.*

![](/files/x7B0ypV2hxt26FPywguz)![](/files/V55vrqsaEphaY3PVavMG)

5. As soon as you connect this new wallet, you will see a popup to link wallet. Click on '**Yes, link wallet**'

&#x20;                              <img src="/files/hAT0zxSwAnEdgSzSO5WL" alt="" data-size="original">

6. You will then be prompted to confirm this linking via metamask sign in. Click Confirm.                                                            ![](/files/nC3621hlTotDRa9sKNIn)
7. You will see that this new wallet has been added

&#x20;                                        ![](/files/SyEt3rIvO8Z2UQ1YZVmo)

### A few more things to note:-

1. Every time you want to link a new wallet, you will need to switch and connect with your primary wallet
2. Once a wallet has been added, it can not be removed
3. You can not link a wallet with hPassport to another wallet with hPassport. New wallet being added must  not have hPassport


# Haven1 Portal - Your Gateway into Haven1

Haven1 Portal is your homepage Haven1 blockchain. You will see featured applications as well the ability to transact with key hApps from Portal itself

Direct link of landing on [Haven1 Portal](https://portal.haven1.org/)

<figure><img src="/files/pqsstE2Whjle6zsj4Xte" alt=""><figcaption></figcaption></figure>

## **Accessing the Haven1 Portal**

On visting Haven1 website([www.haven1.org](https://haven1.org/)) , you will be see the button "Enter Haven1". Clicking on this button will bring you to Haven1 Portal&#x20;

<figure><img src="/files/Jdk069f6wyQnAHPqi5oM" alt=""><figcaption></figcaption></figure>

## Navigating the Portal

Once you are in the Portal, you will see

1. **Connect Wallet  and complete Signup:** First things first, lets get you signed up. You start by connecting your wallet with Haven1 Portal. You might need to add a network in the process of doing that. Once you are connected, you will need a hPassport to be able to explore any application on Haven1 network. Check out the [Onboarding Guide](/haven1-guides/onboarding-and-verification) if you need help.
2. **Dashboard:** You can now explore top products currently trending within our community&#x20;

<figure><img src="/files/OHrfXBfzDKEuinqCCK4i" alt=""><figcaption></figcaption></figure>

3. **Applications:** Access a variety of applications on the left sidebar for more interactions.

<figure><img src="/files/BumQHIYbVf5QB0IgGbax" alt=""><figcaption></figcaption></figure>

#### These applications include:-

1. [Liquid ETH Staking on Ethereum & bridging hsETH to Haven1](https://portal.haven1.org/stake-eth) You get back derivative asset hsETH on Haven1 mainnet that earn extra rewards by deploying LP on hSwap
2. [Haven1 Bridge](https://portal.haven1.org/bridge) - To bridge in or bridge out of Haven1 network. Base and Ethereum Mainnet will be the supported chains at mainnet launch
3. [hSwap](https://swap.haven1.org/#/swap) - To exchange your tokens into a different token
4. [Staking your tokens](https://portal.testnet.haven1.org/stake-h1/lock) - Flexibly or By Locking to earn rewards on your H1 holdings
5. [Vesting](https://portal.haven1.org/vesting) - To convert your esH1 tokens into liquid H1 tokens
6. More coming..


# 2FA Set up Guide

This guide details the steps you need to follow to set up and remove 2FA on Haven1

### How to set up 2FA on Haven1

Setting up 2FA on Haven is a simple process. You will need an OTP app like Google Authenticator ([Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2\&hl=en\&pli=1) or [iOS](https://apps.apple.com/us/app/google-authenticator/id388497605))

1. Go to [this](https://portal.haven1.org/settings/security) link
2. You may need to Connect and Sign first to prove you have access to keys of the wallet you are connecting&#x20;

<figure><img src="/files/QnpAQTPzUOhXcopvhqJI" alt="" width="304"><figcaption></figcaption></figure>

<figure><img src="/files/TJ2HBG2jeFwhKRlVdy9a" alt="" width="272"><figcaption></figcaption></figure>

3. Click "Enable"

4. This will show a QR code that you can scan with Google Authenticator

   1. Alternatively, you can also copy the key manually to input into your authenticator app

   <figure><img src="/files/Mv1HeRZeWMiwTw2mFHn8" alt="" width="375"><figcaption></figcaption></figure>

5. After you have scanned or added the code to your authenticator app, click "Continue"

6. On the next page enter the PIN from your authenticator app

   <figure><img src="/files/0cWQJIDHDjDwcYvNqpBj" alt="" width="375"><figcaption></figcaption></figure>

7. Your wallet will ask you to sign a message which includes your pin

   <figure><img src="/files/gw2unotqR8exGk7ZVaFX" alt="" width="337"><figcaption></figcaption></figure>

8. After your transaction is finalized you are all set, you now have added an extra layer of security to your assets on Haven1.

### How to disable 2FA

{% hint style="warning" %}
We strongly discourage disabling 2FA
{% endhint %}

1. Go to this [link](https://portal.haven1.org/settings/security)<https://portal.haven1.org/settings/security>
2. Click "Disable"
3. You will be required to put in a PIN from your authenticator app

   <figure><img src="/files/H21521v8cRHvpZKRrwdA" alt="" width="375"><figcaption></figcaption></figure>
4. Thats it 2FA is disabled

<figure><img src="/files/AKIOcXpiuFlhY8mZ7uoC" alt="" width="375"><figcaption></figcaption></figure>

### Lost access to the authenticator app

If you have lost access to the authenticator app please [contact support](https://haven1.atlassian.net/servicedesk/customer/portals)


# Haven1 Airdrop: Claim Process and Strategies

Learn how to claim your Haven1 airdrop. Explore Immediate Liquidity, Maximum Rewards, and Balanced strategies to optimize your H1 tokens. Find out about allocation, claim rules, and requirements.

### Thank You for Your Support

Thank you for your support and dedication to the Haven1 testnet—we couldn’t have made it this far without the backing of our ever-growing community and all our testnet testers!

At Haven1, we're committed to ensuring a **fair and transparent distribution** of H1 tokens, constituting **3% of the total token supply** ([check tokenomics here](/get-started/h1-tokenomics)). As we prepare for our mainnet launch, here’s a guide to help you navigate the claims process for your well-earned H1 tokens.

## Airdrop Allocation Overview

Airdrop allocations are determined by your accumulated Liquidity Points (LP) and Experience Points (XP), adjusted for any earned Boosts. \
Visit [this page](https://docs.haven1.org/haven1-testnet-guide/haven1-rewards-hub) to learn more about XP, LP and Boosts.

### Converting XP and LP into Airdrop allocation

XP and LP are multiplied by Boosts to calculate your total XP and LP

Here's an example:

* You have accumulated **2,500 XP** and **250,000 LP** and **300%** Boost during the testnet.&#x20;
* After Boost adjustments, you earned **10,000 XP** and **1,000,000 LP**

Your claim is pro-rated against the community total XP and LP:

* Assume total community **XP= 1,000,000** and **LP= 50,000,000**&#x20;
* You earned **1% of  XP** and **2% of LP**
* Since XP: LP distribution is **80:20** , your total claim percentage is:\
  **1% x 80% + 2% x 20% = 1.2% of the total airdrop allocation.**

### Claiming Options for Your Airdrop Allocation

You can claim your airdrop as **H1 tokens**, **esH1 tokens**, or a **combination** of both. Learn more about the difference between H1 and esH1 tokens [here](/learn/what-is-esh1).

**Claim Strategies**

#### 1. Immediate Liquidity

* Receive your entire allocation as **H1 tokens**.
* **H1 tokens** are fully liquid and tradable, ideal for quick access to funds.
* Note: This strategy **does not maximize rewards**.

***

#### 2. Maximum Rewards

* **90%** of your allocation converts into **esH1 tokens**, a locked form of H1.
* **10%** remains as liquid **H1 tokens**, ensuring you can interact with Haven1 applications immediately.

**Key Points about esH1:**

* **1 H1 claimed as esH1 = 4 esH1 tokens**, effectively **3.7x your allocation**.
* esH1 tokens vest to liquid H1 over 365 days.
* You can lock-stake esH1 for **up to 100% APR**.

**Ideal for:** Users focused on long-term growth and maximizing rewards.

***

#### 3. Balanced

* **67%** of your allocation claimed as **H1 tokens** for liquidity.
* **33%** converted to **esH1** at a **1:4 conversion rate**, doubling your effective allocation.

**Ideal for:** Users balancing liquidity needs with future rewards.

### Here's an  example:

Your total claim = **2,500 H1**

| Strategy            | H1 Tokens | esH1 Tokens | Total Effective Allocation |
| ------------------- | --------- | ----------- | -------------------------- |
| Immediate Liquidity | 2,500     | 0           | 2,500                      |
| Maximum Rewards     | 250       | 9,000       | 9,250                      |
| Balanced            | 1,667     | 3,333       | 5,000                      |

<figure><img src="/files/sfjvpMEKsC1SDgqkguiz" alt=""><figcaption></figcaption></figure>

To be 100% clear,&#x20;

* if 100% airdrop is claimed in esH1 then total claim in esH1 will be 60,000,000 esH1
* if 100% airdrop is claimed in H1 then total claim will be 15,000,000 H1

### Rules and Geographical Requirements

* hPassport (Haven1 Passport): You must complete KYC (Know Your Customer), which will mint your [hPassport](/products/provable-identity-framework) (or Haven1 Passport), before initiating a claim.
* Geographical Restrictions: Users from the United States, DPRK, Syria, Iran, Iraq, Afghanistan, Democratic Republic of Congo, Cuba, Myanmar and from  Crimea, Donetsk, Luhansk regions of Ukraine are not eligible to participate in the airdrop due to regulatory constraints.&#x20;
  * Haven1 reserves the rights to modify the geographical restrictions list as needed.

### Policy on Unclaimed Airdrops

* Users will have 60 days to claim their airdrop after the end of the incentivized testnet campaign.

**Original**

* ~~Unclaimed airdrops will be rolled into future phases of our airdrop program, ensuring that all tokens either contribute to testnet user rewards or are reserved for subsequent community incentives on mainnet.~~

**Updated on March 20, 2025 from Community Feedback**

* After the 60-day claim window, unclaimed airdrop rewards will be proportionally allocated to esH1 locked stakers as part of an ongoing incentive program for active, committed participants in Haven1.
  * This ensures rewards support those contributing to the ecosystem instead of short-term claimers.
  * Rewards will be distributed over a 12 month period following the 60-day claim period.
  * All reward distributions will be on-chain, documented and fully transparent.

### Summary

The Haven1 airdrop ensures a **fair distribution of rewards** based on XP and LP contributions. Users can tailor their claims to their needs, choosing between **Immediate Liquidity**, **Maximum Rewards**, or a **Balanced Approach**. Whether you're looking for quick access to funds or long-term growth within the Haven1 ecosystem, the claim strategies provide flexibility and incentives to suit every user.

Don't miss this chance to claim your share of Haven1’s journey to revolutionize DeFi. Start your claim today and make the most of your rewards!

Thanks for your active participation in the Haven1 ecosystem.&#x20;

***

### FAQ

#### What are the options for claiming airdrop?

You can claim your airdrop through 3 options:

* Immediate Liquidity: Receive airdrop reward in liquid H1 tokens, ideal for quick access to funds. This strategy does not maximize your total reward allocation.&#x20;
* Balanced Approach: Claim 67% of your airdrop reward in liquid H1 tokens and convert 33.3% into esH1 at a 1:4 ratio. This balances liquidity with future rewards.&#x20;
* Maximum Rewards: Convert 90% of your airdrop reward into esH1 tokens (escrowed H1) at a 1:4 conversion rate. The remaining 10% is received as liquid H1 tokens. esH1 tokens will vest over a 365-day period and can be lock-staked for up to 100% APR.&#x20;

**How can I sell my airdrop?**

You have 3 options if you want to sell your airdrop

1. Sell on hSwap. Simply go [here](https://swap.haven1.org/#/swap) and swap from H1 to asset of your choice. You have the option to swap into a stablecoin such as hUSDC or cBBTC or hETH etc. No gas needed on Haven1 mainnet for claiming or for selling on hSwap.&#x20;
2. Withdraw your H1 to Ethereum Mainnet via Haven1 Bridge and sell on [Uniswap](https://uniswap.org/) on Ethereum Mainnet. You wont need any gas to claim or to bridge. You will have to pay ETH in gas on Ethereum mannet to transact on Uniswap.
3. Withdraw your H1 to Ethereum Mainnet via Haven1 Bridge and then send from Ethereum mainnet to Kucoin Ethereum wallet. No gas needed to claim or to bridge. You will pay gas to transfer to Kucoin from Ethereum&#x20;

**What is the difference between H1 and esH1 tokens?**

* H1 tokens are fully liquid and tradable, for immediate use or trading on exchanges that list H1.&#x20;
* esH1 tokens are non-transferable tokens that vest into liquid H1 over a 365-day period. They can also be lock-staked to earn rewards, offering a multiplier effect for long-term holders.&#x20;

**How does the 1:4 conversion rate for esH1 work?**

For every 1 H1 token allocated as esH1, you receive \~4 esH1 tokens. This means if you allocate 100 H1 tokens to esH1, you receive 400 esH1 tokens, effectively multiplying that portion of your allocation by 4X&#x20;

**Why does the claim model include esH1, and why not make all tokens liquid?**

The claim model has been designed to balance individual preferences with the long-term health of the Haven1 ecosystem.&#x20;

* Fully liquid airdrops, more often than not, can lead to significant sell pressure, which would hurt the token value and undermine the stability of the ecosystem.&#x20;
* The esH1 option rewards users who choose to align with the project’s long-term vision by offering a multiplier on their allocation and additional staking rewards.&#x20;
* By providing multiple claim options, users can choose which option works best for them, whether it’s immediate liquidity, maximum rewards, or a balance between them.&#x20;

This isn’t about forfeiting tokens, it’s about ensuring that the network grows sustainably and rewarding those who actively engage and commit to the project.&#x20;

**Why are users rewarded more for choosing esH1?**

Haven1 is built for long-term sustainability. Choosing esH1 demonstrates a commitment to the project’s growth and stability, which is why this option offers a multiplier and higher rewards. It aligns with the broader goal of reducing immediate sell pressure while incentivizing active participation and staking within the network.&#x20;

**How does lock-staking work, and why should I consider it?**

Lock-staking allows you to earn up to 100% APR by committing your esH1 tokens to the network. This option is ideal for users focused on long-term growth and value accrual, as it maximizes rewards while contributing to the network’s security and liquidity.&#x20;

**Are unclaimed airdrop rewards forfeited?**

Yes, any unclaimed allocations will be forfeited after 60 days. This ensures that the unused tokens can be reintegrated into the ecosystem for other community initiatives. We encourage all participants to claim their tokens promptly.

**Why is the esH1 vesting period 365 days?**

The 365-day vesting period ensures a steady release of tokens into the market, reducing volatility and promoting a stable token economy. The approach benefits both the network and its participants by creating a healthier environment for growth and value accrual.&#x20;

**Are there any geographical restrictions for claiming airdrop rewards?**

Yes, users must complete KYC to mint their hPassport. Users from certain ‘high-risk’ countries (e.g., DPRK, Iran, Cuba) are not eligible to participate, in line with regulatory requirements.

<br>

{% hint style="info" %}
The publishing of this document has no bearing on the actual date of the TGE and/or the airdrop. This is in the interest of transparency—to keep you aware of the airdrop mechanics and invite your feedback on the same.
{% endhint %}

<br>


# Claim Process Walkthrough on Team Finance

This is a quick guide on how to withdraw your vested mH1 tokens that may have been issued to you as an advisor or as investor

**Step 1:** Navigate to <https://www.team.finance> & launch app\
![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdsqps9Ig--sRcYRKcKXSMonXLlinX8NuYHBU-meuKDSHBs0UfgaEkf2xx70hoFYx3o1TFhir_D9J3lcbT6PCtpzEhfO4GOgRn3Aw-ch4yDHzYV25BvzGh0OZz7myVJStRZrvJT?key=oHeFErRVEKIwOM6quzS8CZEx)

**Step 2**: Connect Wallet (using same wallet that you have provided to receive H1 tokens) and choose Haven1 Network.&#x20;

Your Metamask might prompt you to Haven1 network if you haven't done so already. Add network.

This wallet must have hPassport to be able to claim tokens. If you haven't completed KYC/KYB ever go here and sign up using same wallet by going here (<https://portal.haven1.org/signup>)

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdG59tY1inedYrn5zFJ8nSU7gljMkU7VZRTP2_L5w561nugNsrMQ2i_GGUZFrS0aipZx3dWpjt4zevKOD4SLxsPv1LYe-WJXAzWMeN8T11y_HNaI-3CqsLTbCOVMGSE7KeTPk6N?key=oHeFErRVEKIwOM6quzS8CZEx)

<br>

**Step 3:** Review the Dashboard and click through “Manage vesting contracts”.  Direct link here ([https://app.team.finance/token-vesting](https://app.team.finance/token-vesting?tab=user))&#x20;

You will see your vested tokens here&#x20;

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdswFpWpWz4J-FkNKTe46lX_wWNNi4H0w3evOoqzBt-U9cT1-MJDC-PUUA0MQCXmjjCLOkwYb_qvi8A2wkH29c7iRKbNesV31RR4ge0O9Ox5mRQxJ8DQIDaoZOSBsg15H-IkMYnbw?key=oHeFErRVEKIwOM6quzS8CZEx)

**Step 4:** Review Vested tokens and Withdraw. Your Haven1 vested tokens should appear under Blockchain as Haven1 if you done as described so far. Reach out to <legal@haven1.org> if you aren't seeing your tokens.

Remember you don't earn all your tokens at once. You will see only the amount of tokens that have vested by now.

If things are in order, Go ahead and click Actions -> Withdraw.  There is no fees to withdraw your tokens right now. You will be prompted to approve a transaction in Metamask.&#x20;

Approve the transaction

<figure><img src="/files/b5hn3EyZDlrFp1bu3K8c" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/e7Pzq929QQrM5oZXWqN3" alt=""><figcaption></figcaption></figure>

This Wh1 tokens are the just the wrapped version of native token H1 of the network. If you like to move to H1, you can Unwrap WH1 to H1 by [hSwap](https://swap.haven1.org/#/swap) without any fees

Once your transactions is confirmed, you will be issued your vested tokens. You are issued Wrapped H1 tokens. You can now&#x20;

* bridge out these tokens([here](https://portal.haven1.org/bridge))&#x20;
* or earn rewards by provide liquidity ([here](https://portal.haven1.org/earn/0x3f882c7c7a187F0D6876Ea7b67B70B8Dc6c1aEE5))
* or stake these tokens flexibly([here](https://portal.haven1.org/stake-h1/flexible))

**Step 5(Optional):**&#x20;

To be able to see these tokens in your Metamask wallet, you have to add the contract address to metamask.&#x20;

This is how you can do that.&#x20;

1. Go to [this](https://explorer.haven1.org/token/0xB041be50694f3018912c18c710e7BBB931002598) explorer page and click on metamask icon(fox icon).&#x20;
2. You will be prompted in Metamask
3. Once you confirm, you will start to see WH1 balance in Metamask

<figure><img src="/files/xX2Ddrq7EQw8yrnyQAQx" alt=""><figcaption></figcaption></figure>


# Contract Addresses

This page shows all the token contract address on Haven1 Testnet

### Haven1 Mainnet Token Addresses[​](https://docs.base.org/network-information/#base-protocol-addresses)​ <a href="#havne1-cove-testnet-addresses" id="havne1-cove-testnet-addresses"></a>

<table><thead><tr><th width="226">Token Name</th><th>Token Address</th></tr></thead><tbody><tr><td>ProofOfIdentity NFT</td><td><a href="https://explorer.haven1.org/address/0xbd5d92C5e7d60b788125f904f4A4f7b0165dEfD8">0xbd5d92C5e7d60b788125f904f4A4f7b0165dEfD8</a></td></tr><tr><td>Wrapped H1</td><td><a href="https://explorer.haven1.org/address/0xB041be50694f3018912c18c710e7BBB931002598">0xB041be50694f3018912c18c710e7BBB931002598</a></td></tr><tr><td>Escrowed H1</td><td><a href="https://explorer.haven1.org/token/0xC6414DC21b94f88e7aD43b92d98E27EcA6e97cbE">0xC6414DC21b94f88e7aD43b92d98E27EcA6e97cbE</a></td></tr><tr><td>hUSDC</td><td><a href="https://explorer.haven1.org/token/0x33B67ED2b733576572C19D744a365181d97f936c">0x33B67ED2b733576572C19D744a365181d97f936c</a></td></tr><tr><td>hUSDT</td><td><a href="https://explorer.haven1.org/token/0x73A6258c102c636A1b54F400637018cE0E984825">0x73A6258c102c636A1b54F400637018cE0E984825</a></td></tr><tr><td>hETH</td><td><a href="https://explorer.haven1.org/address/0xa4E7604d7A3f9f7A2eE79723cae4122a72Bc6984">0xa4E7604d7A3f9f7A2eE79723cae4122a72Bc6984</a></td></tr><tr><td>cbBTC</td><td><a href="https://explorer.haven1.org/address/0x61cd868eE83319dbc16616D34084904a369D5338">0x61cd868eE83319dbc16616D34084904a369D5338</a></td></tr><tr><td>hcbETH</td><td><a href="https://explorer.haven1.org/token/0x0A7a6384E0640C3Efd5587635E201cb960819456">0x0A7a6384E0640C3Efd5587635E201cb960819456</a></td></tr><tr><td>hsETH</td><td><a href="https://explorer.haven1.org/token/0x750008544Ce5a197eA88A6679962ADA79210c194">0x750008544Ce5a197eA88A6679962ADA79210c194</a></td></tr></tbody></table>

### Ethereum Mainnet Token Addresses <a href="#haven1-cove-testnet" id="haven1-cove-testnet"></a>

<table><thead><tr><th width="231.71875">Token Name</th><th>Token Address</th></tr></thead><tbody><tr><td>H1</td><td><a href="https://etherscan.io/token/0x9e3b5582b22e3835896368017baff6d942a41cd9">0x9e3b5582b22e3835896368017baff6d942a41cd9</a></td></tr><tr><td>hsETH</td><td><a href="https://etherscan.io/token/0x4d8d9f6ced39288a1e8961621bbbc2b698a3b102">0x4d8d9f6ced39288a1e8961621bbbc2b698a3b102</a></td></tr></tbody></table>

### Haven1 Testnet Token Addresses <a href="#haven1-cove-testnet" id="haven1-cove-testnet"></a>

<table><thead><tr><th width="261">Symbol</th><th>Address</th></tr></thead><tbody><tr><td>WH1</td><td><a href="https://explorer.testnet.haven1.org/address/0x584C31C392c695dcD6ef2d4884937539119cfCFc">0x584C31C392c695dcD6ef2d4884937539119cfCFc</a></td></tr><tr><td>ESH1</td><td><a href="https://explorer.testnet.haven1.org/address/0x659DC2D3d8b7502EbF580c6632988fed3024b6Ae">0x659DC2D3d8b7502EbF580c6632988fed3024b6Ae</a></td></tr><tr><td>hAVAX</td><td><a href="https://explorer.testnet.haven1.org/address/0xEd27f75440C075A594e4E03673f8698fDD7d744D">0xEd27f75440C075A594e4E03673f8698fDD7d744D</a></td></tr><tr><td>hBTC</td><td><a href="https://explorer.testnet.haven1.org/address/0x2Fb665F01464552F3CDA9359Cfb0ebA0628690b1">0x2Fb665F01464552F3CDA9359Cfb0ebA0628690b1</a></td></tr><tr><td>hETH</td><td><a href="https://explorer.testnet.haven1.org/address/0xd6e17Ea2F27E1ad83fD41AC5D1A3cb96CA5FC0Ac">0xd6e17Ea2F27E1ad83fD41AC5D1A3cb96CA5FC0Ac</a></td></tr><tr><td>hLINK</td><td><a href="https://explorer.testnet.haven1.org/address/0xe3DEE16F1C4CDf9edFF38F66755eA6CC9f4047F3">0xe3DEE16F1C4CDf9edFF38F66755eA6CC9f4047F3</a></td></tr><tr><td>hUSDC</td><td><a href="https://explorer.testnet.haven1.org/address/0x73dBaF6987B8B37cF201d20Db86AD48B89641017">0x73dBaF6987B8B37cF201d20Db86AD48B89641017</a></td></tr><tr><td>hUSDT</td><td><a href="https://explorer.testnet.haven1.org/address/0x3F4b531b19f176Ef05258c33974aCF1Bc2C708E4">0x3F4b531b19f176Ef05258c33974aCF1Bc2C708E4</a></td></tr><tr><td>SILVER</td><td><a href="https://explorer.testnet.haven1.org/address/0xEe2c6465A17325aD2818053b1eca9cc896D61325">0xEe2c6465A17325aD2818053b1eca9cc896D61325</a></td></tr><tr><td>GOLD</td><td><a href="https://explorer.testnet.haven1.org/address/0x7184138C866258f56ca78520951806Dda980c4D0">0x7184138C866258f56ca78520951806Dda980c4D0</a></td></tr><tr><td>PLATINUM</td><td><a href="https://explorer.testnet.haven1.org/address/0xCa17c34556f213aE75FA92252CE27aC5617ABb23">0xCa17c34556f213aE75FA92252CE27aC5617ABb23</a></td></tr></tbody></table>

If you want to add a token to your metamask, you can click on token address and land on Haven1 block explorer. You will get a quick Call to Action to add the token to Metamask.

<figure><img src="/files/vMBHeNuP3oh0T4qMU1Qr" alt=""><figcaption><p>Add token to Metamask</p></figcaption></figure>


# Getting started

Kickstart your development on Haven1 with our comprehensive builder’s guide.

## Understanding Haven1

Haven1 is designed using GoQuorum, and leverages the Proof of Authority (PoA) consensus mechanism. This allows a distributed network of nodes to reach an agreement on the ordering of transactions, which ensures fault tolerance in the presence of faulty or malicious nodes.

Haven1 is a fully [EVM-compatible](/learn/evm-compatibility) Layer 1 that allows existing projects and applications built on Ethereum to be seamlessly integrated.

All transactions (including contract deployments) in Haven1 require accounts to pass the [provable identity framework](/products/provable-identity-framework), which means the account will be required to hold an ERC-721 Haven1 ID SBT, also referred to as hPassport, token.&#x20;

## Initiating the Process

To engage with the Haven1 Network, you will need a few key components: a **configured wallet** for the network, your **hPassport NFT**, and **H1 Tokens**.

The easiest way to get all three is by following these steps:

1. **Begin Your Journey:** Visit the Haven1 Portal [here](https://portal.haven1.org/) and follow the intuitive guide to get started.
2. **Connect Your Wallet:** Link your wallet with the Haven1 network([Chainlist link](https://chainlist.org/chain/8811)). This is your first step towards interacting with the network.
3. **Sign up and Verify Your Identity:** Utilize Haven1's robust provable identity framework to securely verify your identity. This step is crucial for ensuring a trusted environment on the network.
4. You can bridge in H1 from Ethereum Mainnet as well other supported tokens via the Haven1 bridge([Link](https://portal.haven1.org/bridge))

You can also set up Haven1 testnet to get a feel for the network

1. Add Haven1 Testnet(Chainlist [link](https://chainlist.org/chain/810)) to your wallet and complete signup here (<https://portal.testnet.haven1.org/>)&#x20;
2. **Access the Haven1 Faucet:** Once you've completed the verification, you'll gain access to the Haven1 Faucet [here](https://testnet.haven1.org/faucet). Here, you can obtain H1 Testnet tokens, your token for test transactions.
3. **Start Transacting:** With these steps completed, you're fully equipped to initiate transactions on the Haven1 Testnet Network.

### Ready to deploy

Deployment of contracts on the Haven1 mainnet network is controlled exclusively by accounts owned by the Haven1 Association. This policy is in place to maintain [**network-level risk controls**](/foundations-of-haven1/network-level-security) and to safeguard against potential risks such as hacks, exploits, and any other forms of malicious activity.&#x20;

If you have deployed on any EVM network, deploying on Haven1 should be easy. You will just need to follow these additional best practices([Link](https://docs.haven1.org/build/guidelines-for-secure-deployment)) to set yourself up for success.

We have also made it easier for you to deploy and test your contracts on Haven1 Testnet. You don't need to undergo identity verification to be able to do KYC on Haven1 testnet and you can deploy on your own. If you are having issues deploying on Haven1 Testnet, reach out to us at <dev@haven1.org>&#x20;

If you are ready to deploy, contact the Haven1 team at <dev@haven1.org> for assistance and guidance on how to proceed with deploying your contracts on the Haven1 mainnet network.


# Haven1 Network information

This page contains the network information and contract addresses for Haven1

### Haven1 Mainnet <a href="#haven1-cove-testnet" id="haven1-cove-testnet"></a>

<table><thead><tr><th width="223">Network Name</th><th>Haven1 Testnet</th></tr></thead><tbody><tr><td>Description</td><td>The public mainnet for Haven1</td></tr><tr><td>RPC Endpoint</td><td><a href="https://rpc.haven1.org">https://rpc.haven1.org</a></td></tr><tr><td>Chain ID</td><td>8811</td></tr><tr><td>Currency Symbol</td><td>H1</td></tr><tr><td>Block Explorer</td><td>https://explorer.haven1.org</td></tr></tbody></table>

#### Haven1 Mainnet Token Addresses[​](https://docs.base.org/network-information/#base-protocol-addresses)​ <a href="#havne1-cove-testnet-addresses" id="havne1-cove-testnet-addresses"></a>

<table><thead><tr><th width="226">Token Name</th><th>Token Address</th></tr></thead><tbody><tr><td>ProofOfIdentity NFT</td><td><a href="https://explorer.haven1.org/address/0xbd5d92C5e7d60b788125f904f4A4f7b0165dEfD8">0xbd5d92C5e7d60b788125f904f4A4f7b0165dEfD8</a></td></tr><tr><td>Wrapped H1</td><td><a href="https://explorer.haven1.org/address/0xB041be50694f3018912c18c710e7BBB931002598">0xB041be50694f3018912c18c710e7BBB931002598</a></td></tr><tr><td>Escrowed H1</td><td><a href="https://explorer.haven1.org/address/0xC6414DC21b94f88e7aD43b92d98E27EcA6e97cbE">0xC6414DC21b94f88e7aD43b92d98E27EcA6e97cbE</a></td></tr><tr><td>hUSDC</td><td><a href="https://explorer.haven1.org/address/0x33B67ED2b733576572C19D744a365181d97f936c">0x33B67ED2b733576572C19D744a365181d97f936c</a></td></tr><tr><td>hUSDT</td><td><a href="https://explorer.haven1.org/token/0x73A6258c102c636A1b54F400637018cE0E984825">0x73A6258c102c636A1b54F400637018cE0E984825</a></td></tr><tr><td>hETH</td><td><a href="https://explorer.haven1.org/address/0xa4E7604d7A3f9f7A2eE79723cae4122a72Bc6984">0xa4E7604d7A3f9f7A2eE79723cae4122a72Bc6984</a></td></tr><tr><td>cbBTC</td><td><a href="https://explorer.haven1.org/address/0x61cd868eE83319dbc16616D34084904a369D5338">0x61cd868eE83319dbc16616D34084904a369D5338</a></td></tr><tr><td>hcbETH</td><td><a href="https://explorer.haven1.org/address/0x0A7a6384E0640C3Efd5587635E201cb960819456">0x0A7a6384E0640C3Efd5587635E201cb960819456</a></td></tr><tr><td>hsETH</td><td><a href="https://explorer.haven1.org/address/0xa4E7604d7A3f9f7A2eE79723cae4122a72Bc6984">0xa4E7604d7A3f9f7A2eE79723cae4122a72Bc6984</a></td></tr></tbody></table>

### Ethereum Mainnet <a href="#haven1-cove-testnet" id="haven1-cove-testnet"></a>

<table><thead><tr><th width="231.71875">Token Name</th><th>Token Address</th></tr></thead><tbody><tr><td>H1</td><td><a href="https://etherscan.io/token/0x9e3b5582b22e3835896368017baff6d942a41cd9">0x9e3b5582b22e3835896368017baff6d942a41cd9</a></td></tr><tr><td>hsETH</td><td><a href="https://etherscan.io/token/0x4d8d9f6ced39288a1e8961621bbbc2b698a3b102">0x4d8d9f6ced39288a1e8961621bbbc2b698a3b102</a></td></tr></tbody></table>

### Haven1 Testnet <a href="#haven1-cove-testnet" id="haven1-cove-testnet"></a>

<table><thead><tr><th width="223">Network Name</th><th>Haven1 Testnet</th></tr></thead><tbody><tr><td>Description</td><td>The public testnet for Haven1</td></tr><tr><td>RPC Endpoint</td><td><a href="https://rpc.testnet.haven1.org">https://rpc.testnet.haven1.org</a></td></tr><tr><td>Chain ID</td><td>810</td></tr><tr><td>Currency Symbol</td><td>H1</td></tr><tr><td>Block Explorer</td><td>https://explorer.testnet.haven1.org</td></tr></tbody></table>

#### Haven1 Testnet Token Addresses[​](https://docs.base.org/network-information/#base-protocol-addresses)​ <a href="#havne1-cove-testnet-addresses" id="havne1-cove-testnet-addresses"></a>

<table><thead><tr><th width="226">Name</th><th>Address</th></tr></thead><tbody><tr><td>ProofOfIdentity NFT</td><td><a href="https://explorer.testnet.haven1.org/address/0x3c684807f07ea49959a8De1e6D2A0d39c33f29aE">0x3c684807f07ea49959a8De1e6D2A0d39c33f29aE</a></td></tr><tr><td>WETH9</td><td><a href="https://explorer.testnet.haven1.org/address/0x584C31C392c695dcD6ef2d4884937539119cfCFc">0x584C31C392c695dcD6ef2d4884937539119cfCFc</a></td></tr><tr><td>Wrapped H1</td><td><a href="https://explorer.testnet.haven1.org/address/0x584C31C392c695dcD6ef2d4884937539119cfCFc">0x584C31C392c695dcD6ef2d4884937539119cfCFc</a></td></tr><tr><td>Escrowed H1</td><td><a href="https://explorer.testnet.haven1.org/address/0x3EBBf5A9E30d247bD1Bd536a3D0Ae14CA4Ff3A8D">0x3EBBf5A9E30d247bD1Bd536a3D0Ae14CA4Ff3A8D</a></td></tr><tr><td>UniswapV2Factory</td><td><a href="https://explorer.testnet.haven1.org/address/0x54655A62aa7fbEEB43a038D64539E2a9C62cacFE">0x54655A62aa7fbEEB43a038D64539E2a9C62cacFE</a></td></tr><tr><td>FeeContract</td><td><a href="https://explorer.testnet.haven1.org/address/0x716C2a405A658F96FCe7E7C2eE81C0C718bb3d76">0x716C2a405A658F96FCe7E7C2eE81C0C718bb3d76</a></td></tr><tr><td>FeeOracle</td><td><a href="https://explorer.testnet.haven1.org/address/0x9a85eF6e939Dc661dD10c9c26819D2badE44959f">0x9a85eF6e939Dc661dD10c9c26819D2badE44959f</a></td></tr><tr><td>FeeOracleNPeriod</td><td><a href="https://explorer.testnet.haven1.org/address/0x4FF624F295e4310f41f8D0366A12f97B5709ec9F">0x4FF624F295e4310f41f8D0366A12f97B5709ec9F</a></td></tr><tr><td>FixedFeeOracle</td><td><a href="https://explorer.testnet.haven1.org/address/0x120D9A7A4b341B2eD2ac8ee8cdDD38A22DeA25B7">0x120D9A7A4b341B2eD2ac8ee8cdDD38A22DeA25B7</a></td></tr><tr><td>Multicall</td><td><a href="https://explorer.testnet.haven1.org/address/0x34E53CC3D178Cf10BDF40bf94144444c246003CB">0x34E53CC3D178Cf10BDF40bf94144444c246003CB</a></td></tr><tr><td>Silver Token</td><td><a href="https://explorer.testnet.haven1.org/address/0xEe2c6465A17325aD2818053b1eca9cc896D61325">0xEe2c6465A17325aD2818053b1eca9cc896D61325</a></td></tr><tr><td>Gold Token</td><td><a href="https://explorer.testnet.haven1.org/address/0x7184138C866258f56ca78520951806Dda980c4D0">0x7184138C866258f56ca78520951806Dda980c4D0</a></td></tr><tr><td>Region Based NFT</td><td><a href="https://explorer.testnet.haven1.org/address/0x8C50b7a690d3A528A138229BAFe45690e71d377d">0x8C50b7a690d3A528A138229BAFe45690e71d377d</a></td></tr><tr><td>hLINK</td><td><a href="https://explorer.testnet.haven1.org/address/0xe3DEE16F1C4CDf9edFF38F66755eA6CC9f4047F3">0xe3DEE16F1C4CDf9edFF38F66755eA6CC9f4047F3</a></td></tr><tr><td>hUSDC</td><td><a href="https://explorer.testnet.haven1.org/address/0x73dBaF6987B8B37cF201d20Db86AD48B89641017">0x73dBaF6987B8B37cF201d20Db86AD48B89641017</a></td></tr><tr><td>hETH</td><td><a href="https://explorer.testnet.haven1.org/address/0xd6e17Ea2F27E1ad83fD41AC5D1A3cb96CA5FC0Ac">0xd6e17Ea2F27E1ad83fD41AC5D1A3cb96CA5FC0Ac</a></td></tr><tr><td>hBTC</td><td><a href="https://explorer.testnet.haven1.org/address/0x2Fb665F01464552F3CDA9359Cfb0ebA0628690b1">0x2Fb665F01464552F3CDA9359Cfb0ebA0628690b1</a></td></tr><tr><td>BackedHRC20</td><td><a href="https://explorer.testnet.haven1.org/address/0x56278834007eCfBE61BaeBD42d3Ce5cF2dcbab09">0x56278834007eCfBE61BaeBD42d3Ce5cF2dcbab09</a></td></tr><tr><td>hcbETH</td><td><a href="https://explorer.testnet.haven1.org/token/0x5F5D88D6cD5A772E82403b346754B7a0Cf535576">0x5F5D88D6cD5A772E82403b346754B7a0Cf535576</a></td></tr><tr><td>hsETH.e</td><td><a href="https://explorer.testnet.haven1.org/token/0x808422B173E408D992d30071e80253d047BfEc63">0x808422B173E408D992d30071e80253d047BfEc63</a></td></tr></tbody></table>


# Novel developer benefits on Haven1

Explore the advantages of building on Haven1, from security to compliance-friendly DeFi infrastructure.

{% hint style="info" %}
Haven1 provides a suite of features and support structures specifically geared towards developers in the blockchain space. This page delves into the technical advantages and opportunities that Haven1 offers for development teams and individual contributors.
{% endhint %}

### EVM-Compatibility: Unleashing Developer Potential

EVM compatibility in Haven1 translates to significant technical and operational benefits for developers:

#### Quick Adoption

* **Familiar Development Environment**: With EVM compatibility, developers can utilize their existing Ethereum-based skills and toolsets in Haven1 without a steep learning curve.
* **Broad Ecosystem Compatibility**: The EVM's wide adoption means developers can seamlessly integrate with a vast array of tools and libraries.

#### Seamless Integration

* **Easy Migration of DApps**: Developers can migrate their pre-existing Ethereum projects to Haven1 with minimal refactoring, thanks to EVM compatibility.
* **Rapid Prototyping and Deployment**: The similarity to Ethereum's environment enables faster development cycles and deployment processes.

#### Community-Driven Culture

* **Collaborative Development Ecosystem**: Haven1’s active developer community fosters knowledge sharing, collaboration, and mutual support, enhancing the development experience.

***

### Fee Model: Incentivizing Efficient Development

Haven1's unique fee model provides distinct advantages for smart contract development:

#### Customized Pricing

* **Flexible Fee Structures**: Developers have the freedom to design variable usage fees based on their application's specific needs and user dynamics.
* **Tailored Monetization Strategies**: This flexibility allows for innovative monetization models that align with the application's value proposition and user engagement patterns.

#### Immediate Revenue Generation

* **Direct Revenue Streams**: The ability to implement variable on-chain fees enables developers to establish immediate and direct revenue streams, supporting sustainable development practices.
* **Focus on Efficient Contract Design**: This fee model promotes the development of efficient smart contracts, optimizing resource utilization and transaction costs.

***

### Regional Permissioning: Facilitating Composable Compliance and Innovation

Haven1’s regional permissioning system offers a flexible approach to user management and application functionality, designed to adapt to the diverse requirements of a global audience:

#### Composable Compliance Standards

* **Precise User Management**: Haven1 enables developers to create their unique compliance frameworks. This system allows for the tailoring of user access control based on geographic regions, providing a solution that aligns with the specific needs and preferences of different user groups.
* **Adaptive Application Features**: Developers can utilize this flexibility to deploy region-specific functionalities within their applications, enhancing the relevance and appeal to users in various locales.

#### Streamlined Adaptability

* **Simplified Adaptation Process**: The implementation of regional access on Haven1 is designed to be straightforward and user-friendly. This allows developers to easily integrate region-specific standards into their applications.
* **Flexible Alignment**: Rather than enforcing a one-size-fits-all model, Haven1’s approach encourages developers to devise their compliance strategies. This adaptable framework supports a wide range of applications, from those requiring precise regional alignment to those with broader, more universal reach.

***

### Community & Incentives: Driving Ecosystem Growth <a href="#community-and-incentives-driving-ecosystem-growth" id="community-and-incentives-driving-ecosystem-growth"></a>

The Haven1 ecosystem is bolstered by strong community support and incentivization mechanisms:

**Incentives for Development**

* **Grants for Innovation**: The Haven1 Foundation provides financial grants for projects that demonstrate innovation and potential for adding long-term value to the Haven1 ecosystem.<br>


# High level guide for secure deployment

Best practices for deploying secure and robust smart contracts on Haven1.

Haven1 aims to be the most secure blockchain in the industry. Our mission is to provide a platform where third-party protocols can thrive in a secure, efficient, and trustworthy environment.&#x20;

This guide outlines the essential requirements and best practices for developers seeking to deploy their protocols on the Haven1 network. Adherence to these standards is crucial for maintaining the network's integrity and delivering a superior user experience.

## **1. Specific Contract Requirements** <a href="#id-3.-specific-contract-requirements" id="id-3.-specific-contract-requirements"></a>

Haven1 imposes several contractual requirements to bolster network security:

**Integration with Haven1 Fee Library:**

* Mandatory integration with the Haven1 Fee Library standardizes fee handling, enhancing transparency and consistency for users.
* This integration reduces the complexity of the development process by abstracting the intricacies of fee management.

**Contract Pausability:**

* Smart contracts must include a pausability feature to address emergencies effectively.
* This feature ensures the safeguarding of user assets and allows developers to rectify issues without compromising the contract's integrity.

**Role-Based Access Control (RBAC):**

* RBAC is essential for secure management within smart contracts, limiting critical functions like token minting and vote casting to authorized entities.
* Developers must implement precise role assignments and permissions, ensuring only authorized accounts can execute specific contract functions.

**Deployment Control to Haven1 Association:**

* To safeguard the integrity of the Haven1 network against potentially adverse contracts, deployment privileges are is reserved by the Haven1 Association. Development teams are required to provide access to their code for review, facilitating secure and accurate deployment onto the network. While GitHub is commonly utilized for this purpose, alternative methods of code sharing are also acceptable.
* This measure guarantees that all contracts meet Haven1’s strict security criteria for quality assurance and have passed necessary audits and reviews.
* It is imperative to emphasize that developers retain ownership and attribution for their code, with the Haven1 Association solely ensuring compliance with network standards.

## 2. Audit Requirements <a href="#id-1.-audit-requirements" id="id-1.-audit-requirements"></a>

* Protocols intending to launch on Haven1 must have two comprehensive security audits from our reputable audit partners. The Haven1 team is dedicated to assisting developers in establishing connections with these trusted auditors in the Web3 space.
* The purpose of these compulsory audits is to ascertain the resilience of applications against vulnerabilities, ensuring compliance with the highest industry standards. This thorough auditing not only reinforces the security of the Haven1 network but also instills confidence in the applications deployed.

{% hint style="info" %}
Data analysis has shown that protocols undergoing three audits, especially when the bytecode remains identical, exhibit a significantly reduced vulnerability risk — nearly 99% lower. This underscores our commitment to the utmost security and dependability of the Haven1 platform.
{% endhint %}

***

***

## **3. Developer ID Verification** <a href="#id-4.-developer-verification" id="id-4.-developer-verification"></a>

* To bolster the security and integrity of the Haven1 network, developers must undergo comprehensive KYC/KYB procedures.
* This verification process ensures that all developers are thoroughly vetted and adhere to regulatory standards, thereby fostering a trusted and transparent ecosystem within the Haven1 network.&#x20;

***

Haven1 is committed to fostering a secure and innovative blockchain ecosystem. By adhering to the guidelines and requirements outlined in this document, developers can contribute to this vision, ensuring their protocols integrate seamlessly with Haven1’s infrastructure. We look forward to seeing your contributions to the Haven1 network and are here to support you through every step of the deployment process. Together, we can build a safer and more reliable blockchain future.

For a more detailed guide, you should check out [this](/build/detailed-deployment-guide) link


# Detailed deployment Guide

If you have deployed on an EVM chain before, here a few additional steps you need to follow to deploy on Haven1 network

[Direct link to Developer Tools that you might need to be able to deploy on Haven1](https://docs.haven1.org/build/developer-tools)

### Step 1: Integration of Haven1's Standard Smart Contract for Upgradability and Pausing

***

#### **Overview: Why Integration of Our Standard Contract is Critical**

At Haven1, we aim to protect developers and users from potential risks by providing a secure and standardised smart contract structure. We’ve built a **standard contract** that ensures the upgradability of your dApp and allows for emergency actions such as pausing transactions in case of any detected vulnerabilities.

By integrating our standard contract, you’re ensuring:

1. **Easy upgrades**: Future upgrades or changes can be made to your smart contract without the need for a redeployment.
2. **Security monitoring**: Our network partners (e.g., **Hypernative**) actively monitor your contracts and can pause transactions in the case of any detected exploit.
3. **Application fees**: Integration of Haven1's unique **application fee** mechanism gives you a new monetisation option. ([What is Application Fee?](https://docs.haven1.org/build/application-fees))

***

#### **What You Need to Do**

1. **Inherit Haven1’s Standard Contract**:
   * In your smart contracts, you need to inherit from our **standard contract,** H1DevelopedApplication.sol, which includes functionality for pausing, upgrading, and integrating fees.
   * [Here](https://github.com/haven1network/mainnet-onboarding-template/blob/main/contracts/vendor/h1-developed-application/H1DevelopedApplication.sol) is the link to this contract and [here](https://github.com/haven1network/mainnet-onboarding-template?tab=readme-ov-file#h1-developed-application) is the link to explainer for this contract
   * This ensures you meet Haven1's requirements for security, while also unlocking the features specific to our network.
2. **Steps to Inherit the Contract**: You can integrate the Haven1 standard contract(H1DevelopedApplication.sol)  by inheriting it within your own contract as shown below:

   ```solidity
   solidityCopy codepragma solidity ^0.8.0;

   import "@haven1/contracts/H1DevelopedApplication.sol";

   contract MyDApp is H1DevelopedApplication {
       // Your contract code here
   }
   ```
3. **Upgradeability and Pausing**:
   * Once your contract inherits from H1DevelopedApplication, it allows for **automatic pause and upgrade functionality**.
   * In case a vulnerability is detected by our monitoring systems (e.g., [Hypernative](https://www.hypernative.io/blog)), the contract can be paused to prevent further interactions.
   * Upgrades can be rolled out in a standardized manner, reducing the risk of having to redeploy your entire contract.
4. **Monetisation via Application Fees**: Haven1 operates as a **gasless chain**, but you are offered the flexibility to implement **application-specific fees** to monetize your dApp. (Read more about Application Fees [here](/build/application-fees))

   * You can configure **function-specific fees**. This can provide you with new revenue streams directly within your contract.
   * Important to note: 80% of the application fees collected will be transferred to your account, while 20% will go to the Haven1 network for maintaining infrastructure, validators, id verification etc.
   * Your 80% share of fees are passed to `devFeeCollector` address. This address should have completed KYC/KYB if it is an EOA. If this address is a contract then this contract's DEV\_Admin role addresses should have completed KYC
   * **Example**:

   ```solidity
   solidityCopy codefunction exampleFunction() public payable {
       require(msg.value >= applicationFee, "Insufficient fee");
       // Function logic here
   }
   ```

   <br>
5. When you submit your application to deploy on Haven1, you provide two addresses:&#x20;
   * `developer` called out as **Developer Wallet Address**
     * This address will be assigned the `DEV_ADMIN_ROLE`
     * This role protects the functions that allow the developer to set function fees (`setFee`, `setFees`), along with the function that allows the developer to update the `devFeeCollector` address (`setDevFeeCollector`).&#x20;
     * You can specify multiple addresses on the form in comma separated values
     * This address(/es) should have completed KYC
     * If you want to change the admin roles, you must reach out to us
   * `devFeeCollector`
     * The address to which earned application fees will be sent.&#x20;
     * Does not have to be the same address as the `developer`.
6. **Example Contracts**:
   * We have provided sample contracts [here](https://github.com/haven1network/mainnet-onboarding-template/tree/main/contracts/examples) that showcase how you can integrate these features seamlessly. This can serve as a reference for developing your own contracts on Haven1.

***

#### **Application Fee Configuration**

* Application fees integration is mandatory.
* You can choose to apply 0 fees to some(or all) of your contract’s functions, giving you the flexibility to charge for premium features/services
* These fees are directed to the address that is declared as the `devFeeCollector` when the contract is deployed
* **Denomination**: While fees are dollarized for users, they are paid in **H1 tokens**.

***

#### **Resources for Developers**

1. **Standard Contract Documentation**:
   * Full documentation is available on how the Haven1Standard contract operates is [here](https://github.com/haven1network/mainnet-onboarding-template?tab=readme-ov-file#h1-developed-application). Each function and feature is explained in detail to ensure transparency.
2. **Spotlight Apps**:
   * Check out the Spotlight Apps [here](https://testnet.haven1.org/fees/application-fee),  where you can see live examples of how developers are using these features for monetisation and upgradeability.

***

By inheriting this contract, you ensure that your dApp remains secure and upgradable while giving you the opportunity to benefit from application fees. This also helps Haven1 protect against potential hacks or vulnerabilities that could affect the ecosystem.

{% hint style="info" %}
If for some exceptional reason, you are not able to integrate H1DevelopedApplication contract, such as having a Solidity version as .6X or .7X, then do specify the same while submitting the contract for deployment (in Step 4)
{% endhint %}

### Step 2: Mandatory 2 Audits

***

#### **Why Audits are Mandatory on Haven1**

Security is paramount on Haven1. We've observed that projects audited by reputable auditors experience **significantly lower risk of hacks**. To maintain the highest level of security on our network, we require all projects to undergo **two independent audits** before deployment.

This policy is designed to protect users and safeguard the integrity of the network by ensuring vulnerabilities are caught before contracts go live.

#### **What You Need to Do**

1. **Submit Existing Audits**:
   * If you already have **two audits completed** on your most updated code,  there’s no need for additional audits
2. **If you don’t Have Audits**:
   * You will need to **arrange for two audits** from recognized auditors.&#x20;
   * Haven1 has formed an **Audit Council** to assist ecosystem projects in securing preferential rates and timelines with reputable auditors.
   * We also provide **grants** in certain cases to help cover audit costs. You can apply for a grant [here](https://docs.google.com/forms/d/e/1FAIpQLSdI1foRYeN-_dCF_mc0SdHtuNhddv8CqwyDCg7-VRWQV5IGig/viewform?usp=send_form) if needed.
3. **Why Two Audits?**:
   * **Multiple audits** ensure that different auditors assess your contract for potential risks, providing an extra layer of scrutiny.
   * By having two independent audits, we reduce the possibility of overlooked vulnerabilities and improve the overall security of the network.

***

Once you're ready with these, you can submit your contract and audit reports while submitting the contract for Deployment(Step 4)

### Step 3: KYC/KYB Requirement for Developers

***

#### **Overview: Why KYC/KYB is Essential for Haven1**

Haven1 is built with a primary focus on **user security** and protecting against common risks such as hacks, scams, and rug pulls. A key factor in minimising these risks is ensuring the transparency of developers and applications built on the network. Just as all users must undergo ID verification (KYC) before transacting, developers who wish to deploy contracts on Haven1 must complete **KYC (Know Your Customer)** or **KYB (Know Your Business)**.

This measure helps create an accountable ecosystem, ensuring that developers behind projects are verified and known entities. We are building trust with this foundation, and it’s our way of fostering a safer network for all participants.

#### **What You Need to Do**

1. **Complete signup and KYC/KYB**:
   * All developers wishing to deploy on Haven1 need to undergo KYB. In some cases, KYC may be acceptable depending on your situation.
   * [Here](https://testnet.haven1.org/verify) is the KYC/KYB link where you can initiate and complete the process.
2. **Why It’s Important**:
   * This step helps verify your identity and ensures accountability on the network.
   * Your KYC/KYB verification will be **required before we can deploy your contracts** on the network.
3. **Your data is safe and you will continue to be anonymous on chain**
   * Your data is securely encrypted and stored by ID verification partner [Synaps](https://synaps.io/).&#x20;
     * Synaps is GDPR compliant as well as ISO27001 certified and is using AWS to store user data. They encrypt this data in AES-256bits with a unique encryption key per file.  And they store these Encryption keys on hardware security modules offered by Google. The data is kept for a minimum of 5 years according to the KYC/AML directive and can however be deleted at the user's request.
   * Your on chain identity is very much anonymous. Your ID data can not be linked to your wallet address

### Step 4: Submitting Your Contract for Deployment by Haven1 Governance

***

#### **Overview: How Deployment on Haven1 Works**

Unlike most EVM chains where developers can deploy contracts directly, **Haven1 takes a governance-based approach** to ensure maximum security and compliance. This means that once your contract is ready for deployment, it must be submitted to Haven1 for review and will be deployed via our governance process. This ensures that only audited, verified contracts go live on our network, adding an extra layer of protection for users and developers alike.

***

#### **What You Need to Do**

1. **Finalize Your Contract**:
   * Ensure your smart contract is finalized, audited, and fully prepared for submission.
   * Double-check that the contract you're submitting is **identical** to the version that was **audited**. This is crucial, as discrepancies between the submitted contract and the audited version could lead to security vulnerabilities and delays in deployment.
2. **Submit the Contract for Deployment**:
   * [Here](https://haven1.atlassian.net/servicedesk/customer/portal/2/group/3/create/14) is the submission link where you can request for contract deployment. You will be asked to fill in
     * **Developer Wallet Address**  - Make sure this wallet has completed KYC
       * This should also be the same address you should have declared as DEV.ADMIN in H1Developed Application contract that allows you manage your contract parameters
       * This is ideally also the same address that is receiving any application fees you might have set on your application
     * **Developer Application Fees Receiver Address**&#x20;
       * This wallet can be same or different from Developer Wallet Address&#x20;
       * If this is different wallet address, make this this wallet as completed KYC
       * If this is the same entity as the developer, you don't need to do KYC again. Simply link this wallet into the KYC of Developer wallet by joining the 2 in Portal Settings <mark style="background-color:red;">here</mark>
     * **Audit Reports**(Optional) - Please provide URL to where audit reports can be accessed if the audits are completed - The contract matches the audited version. Preferably, provide the URL that is hosted on the auditors's website/github
     * **Github repo of the contract**
       * Please make sure all required Haven1 contract standards (e.g.,  application fees, upgradability) are integrated.
       * Either make the contracts public or provide access to&#x20;
     * **Email confirmation to**
       * Please make sure this email is correct. We will be communicating with you on this email if there are some unresolved issues with your contract or to confirm the successful deployment
3. **Deployment Process** (*In the future, we plan to automate this process, but currently, deployment is largely manual)*
   * Haven1’s deployment process is **governance-driven**. Once governance team verify that your contract meets all requirements, your contract is ready for deployment
   * The Haven1 association will **deploy your contract** onto the network and assign the `developer` and `devFeeCollector` addresses as well as `DEV_ADMIN_ROLE` role per your asks
   * Deployment team will communicate to you with logs and contract addresses once deployment is complete

***

#### **Key Points to Remember**

* **Audit Consistency**: Ensure the version of the contract you're submitting is the one that was audited. Any discrepancies could lead to delays or rejections.
* **Manual Deployment**: Currently, contracts are deployed manually. This is done to ensure the highest level of security and compliance. We’re working toward automating this process in the future.

***

### **Next Steps After Deployment**

Once your contract is live on the network:

* Ensure that your dApp operates as expected and all functions work correctly.
* Continue to submit any further upgrades or changes through the governance process for future deployments by going [here](https://testnet.haven1.org/developers)

***

***

By following this process, you ensure your contracts are deployed securely and in compliance with Haven1’s best practices. The governance-driven deployment system enhances the trust and security of all applications on the network.

In addition to this, Haven1 team will list your application in our [hApp store](https://testnet.haven1.org/apps) so that users can discover your application easily

### Step 5: Post-Deployment Monitoring and Best Practices

***

**Overview: Managing and Monitoring Your Deployed Contracts**

Once your contract has been successfully deployed on Haven1, there are some best practices and tools available to help you monitor and manage your contract to ensure it runs smoothly and securely.

***

#### **What You Need to Do After Deployment**

1. **Monitor Contract Performance**:
   * After deployment, it’s crucial to keep an eye on how your contract performs. Haven1 provides tools and dashboards for monitoring contract interactions and events in real-time.
   * You can monitor key metrics such as transaction volume, fee collection, and contract interaction history using our Developer Dashboard.
2. **Ensure Contract Upgradability**:
   * Since your contract integrates Haven1’s upgradability feature, make sure to have a plan in place for future upgrades. Any updates should follow the same process as your initial deployment: submitting changes, undergoing audits, and receiving governance approval for redeployment.
   * Having a robust upgrade strategy is crucial for long-term success and security.
3. **Application Fee Collection**:
   * If you’ve opted to integrate application fees, you’ll receive 80% of the fees directly through the network’s fee distribution system.
   * You can monitor the fee collection and payout schedule via the Fee Dashboard, where you’ll see how fees are being distributed between you and the network.
4. **Handle Contract Issues or Hacks**:
   * In the rare case of a security issue with your contract, the integrated **pausing** feature will allow quick action. Should a potential exploit be detected by monitoring services (like HyperNative), your contract’s transactions can be paused temporarily.
   * We advise you to stay vigilant and use our automated alerts system, which will notify you if there is any unusual activity with your contract.

***

#### **Post-Deployment Support**

* **Contact Us**: If you encounter any issues post-deployment, our developer relations team is available for support. Reach out to us directly <mark style="background-color:red;">via our Developer Support Channel</mark> for help with any concerns or troubleshooting.
* **Ongoing Audits**: For large-scale projects, consider scheduling periodic audits to ensure your contracts remain secure as the ecosystem and potential vulnerabilities evolve.

***

#### **Summary: Key Points to Remember Post-Deployment**

* **Monitor your contract** regularly via the developer dashboard.
* **Plan for upgrades** and ensure future changes are secure and auditable.
* **Leverage application fees** for monetization and track payouts.
* Use the **pausing mechanism** to protect your contract from potential threats.


# Developer tools

A suite of powerful tools and resources for developing on Haven1.

The following pages contain resources and tools that will help you build your applications on Haven1:

{% content-ref url="/pages/PDBsWl5u2ndUdDWY1l0L" %}
[Haven1 Gnosis Safe wallet](/build/developer-tools/shared-wallet)
{% endcontent-ref %}

{% content-ref url="/pages/tfYqDuYsnDPFAdCKXVCv" %}
[Oracles on Haven1](/build/developer-tools/oracles-on-haven1)
{% endcontent-ref %}

{% content-ref url="/pages/p1uRK5jUsvTGaw38ZZsV" %}
[Subgraph on Haven1](/build/developer-tools/subgraph-on-haven1)
{% endcontent-ref %}

{% content-ref url="/pages/8mTNiJ5x7U4qSCvGMFTc" %}
[Development frameworks](/build/development-frameworks)
{% endcontent-ref %}

{% content-ref url="/pages/cwAoyojeyn8mAbxorZnE" %}
[Web3 libraries and tools](/build/developer-tools/web3-libraries-and-tools)
{% endcontent-ref %}

{% content-ref url="/pages/I0IAriwfTaupZKgj7bpT" %}
[Haven1 block explorer](/build/developer-tools/haven1-block-explorer)
{% endcontent-ref %}


# Haven1 Gnosis Safe wallet

Shared wallet allows multiple parties to sign and approve a transaction before it is sent for execution to the Haven1 Network

{% hint style="info" %}
Haven1 Shared Wallet, a fork of the renowned Gnosis Safe, is tailored for enhanced security in managing crypto assets on the Haven1 platform. It embodies a multi-signature wallet system, offering a perfect blend of security and flexibility for both individual users and teams.
{% endhint %}

### **Understanding Multi-Signature Framework**

<details>

<summary><strong>Streamlined Multi-Signature security</strong></summary>

The Haven1 Shared Wallet employs a multi-signature security model, necessitating approvals from several owners for each transaction. This multi-approval system substantially boosts digital asset security, effectively reducing unauthorized access and fraud risks.

</details>

<details>

<summary><strong>Collaborative security approach</strong></summary>

This approach promotes collective decision-making among owners, increasing accountability in managing assets. The implementation of this security model underscores Haven1's dedication to providing a secure environment for cryptocurrency management.

</details>

### **Step1: Setting up your Haven1 Shared Wallet**

1. **Access Haven1 Shared Wallet**: Visit the [Haven1 Shared Wallet](https://safe.testnet.haven1.org/welcome) dapp.
2. **Create a new Shared Wallet**: Opt to set up a new wallet, assigning it a unique name for identification.
3. **Configure owners and confirmations**: Choose the wallet's owners and define the required number of confirmations for a transaction, based on your security needs and team dynamics.
4. **Complete Setup**: Carefully review all details and complete the setup. Remember, you can adjust these settings later as needed.

### **Step 2: Executing transactions with Haven1 Shared Wallet**

1. **Start a transaction**: From the dashboard, initiate a new transaction, be it a funds transfer, contract interaction, or another blockchain operation.
2. **Fill in transaction details**: Specify details like the recipient's address, amount, and any other pertinent information.
3. **Submit for confirmation**: After filling in the details, submit the transaction for approval, adding it to the transaction queue.

#### **Multi-Signature confirmation process**

1. **Wait for approvals**: The transaction awaits the pre-set number of approvals from the designated owners.
2. **Independent review and approval**: Each owner reviews the transaction independently and approves or rejects it.
3. **Transaction execution**: The transaction is executed once it receives the necessary approvals.

***

### **Viewing transaction history**

Access a detailed view of all past transactions, including pending and executed ones, to maintain transparency and facilitate auditing within your team or organization.<br>

### **Adding and managing Shared Wallet owners**

1. **Access wallet settings**: Navigate to your wallet's settings.
2. **Modify owners**: Add new owners or remove existing ones. Note that each change is a transaction itself and requires approval.
3. **Adjust confirmation Threshold**: Change the number of confirmations required for future transactions.

### **Benefits of using Haven1 Gnosis Safe**

<details>

<summary>Enhanced security</summary>

The multi-signature system significantly improves the security of asset management.

</details>

<details>

<summary><strong>Flexibility</strong></summary>

Customize the wallet settings to align with your or your team's security requirements.

</details>

<details>

<summary><strong>Transparency</strong></summary>

Complete visibility of all transactions ensures accountability and facilitates auditing.

</details>


# Haven1 SDK

This is the Haven1 official developer kit, featuring comprehensive SDKs for Blockchain, React, Wagmi, and API Client integration.

## Features

**Easy Integration**: Seamlessly integrate with the Haven1 blockchain using our comprehensive SDK.

**TypeScript Support**: Enjoy full TypeScript support for type safety and better development experience.

## Haven1 SDK Packages

This guide will help you quickly get started with each of the Haven1 SDK packages, including Blockchain, React, Wagmi, and API Client.

### Blockchain SDK

**Installation**

{% tabs %}
{% tab title="npm" %}

```sh
npm install @haven1/blockchain-sdk
```

{% endtab %}

{% tab title="yarn" %}

```sh
yarn add @haven1/blockchain-sdk
```

{% endtab %}

{% tab title="pnpm" %}

```sh
pnpm add @haven1/blockchain-sdk
```

{% endtab %}
{% endtabs %}

**Usage**: If your project is based on ethers, this package provides essential configurations and utilities for interacting with the Haven1 blockchain, including chain configurations, contract addresses, ABI definitions, and utility functions.&#x20;

**Dependencies**: `ethers`, `axios`&#x20;

**Peer Dependencies**: `react`, `react-dom`

### Wagmi SDK

**Installation**&#x20;

{% tabs %}
{% tab title="npm" %}

```sh
npm install @haven1/wagmi-sdk
```

{% endtab %}

{% tab title="yarn" %}

```sh
yarn add @haven1/wagmi-sdk
```

{% endtab %}

{% tab title="pnpm" %}

```sh
pnpm add @haven1/wagmi-sdk
```

{% endtab %}
{% endtabs %}

**Usage**: If your project is based on wagmi, this package provides hooks and utilities for managing blockchain interactions, including wallet connections and contract calls.&#x20;

**Dependencies**: `wagmi`, `ethers`&#x20;

**Peer Dependencies**: `@tanstack/react-query`, `react`, `viem`, `wagmi`, `@haven1/sdk-api-client`, `@haven1/react-sdk`, `@haven1/blockchain-sdk`

### React SDK

**Installation**

{% tabs %}
{% tab title="npm" %}

```sh
npm install @haven1/react-sdk
```

{% endtab %}

{% tab title="yarn" %}

```sh
yarn add @haven1/react-sdk
```

{% endtab %}

{% tab title="pnpm" %}

```sh
pnpm add @haven1/react-sdk
```

{% endtab %}
{% endtabs %}

**Usage**: This package includes Haven1 design system React components and hooks for building user interfaces that interact with the Haven1.&#x20;

**Dependencies**: `react`, `react-dom`, `@haven1/blockchain-sdk`&#x20;

**Peer Dependencies**: `react-router-dom`

### API Client SDK

**Installation**

{% tabs %}
{% tab title="npm" %}

```sh
npm install @haven1/sdk-api-client
```

{% endtab %}

{% tab title="yarn" %}

```sh
yarn add @haven1/sdk-api-client
```

{% endtab %}

{% tab title="pnpm" %}

```sh
pnpm add @haven1/sdk-api-client
```

{% endtab %}
{% endtabs %}

**Usage**: This package provides a Open API standard client for interacting with the Haven1 API. It handles authentication and SDK API requests.

**Dependencies**: `axios`&#x20;

**Peer Dependencies**: `react`, `react-dom`

Each package comes with detailed documentation to help you explore more advanced features and configurations.&#x20;

Ensure you have the necessary peer dependencies installed in your project to avoid any issues during development.


# @haven1/sdk-api-client

The @haven1/sdk-api-client package provides seamless connectivity between your project and the Haven1 APIs, adhering to the OpenAPI Specification standard. This package simplifies API interactions by

### Key Features

* **OpenAPI Specification Compliance**: Built on OpenAPI standards for robust and scalable API interactions.
* **Type-Safe Integration**: Includes TypeScript support with fully typed responses and requests for improved development confidence.
* **Simplified API Calls**: Ready-to-use methods for common operations, reducing boilerplate code.
* **Flexible Configuration**: Easily customize base URLs, API keys, and other settings.

### Installation

Install the package using your preferred package manager:

{% tabs %}
{% tab title="npm" %}

```sh
npm install @haven1/sdk-api-client
```

{% endtab %}

{% tab title="yarn" %}

```sh
yarn add @haven1/sdk-api-client
```

{% endtab %}

{% tab title="pnpm" %}

```sh
pnpm add @haven1/sdk-api-client
```

{% endtab %}
{% endtabs %}

### Classes

* AuthModule
* Haven1SDK
* SdkModule

### Type Aliases

* Config
* GuardianTransactionResponse
* IdentityDetailResponse
* IdentityReferralResponse
* NotificationsErrorResponse
* NotificationsItem
* NotificationsParameters
* NotificationsSuccessResponse


# Class: Haven1SDK

Haven1SDK provides access to authentication and SDK functionalities.

This class serves as the entry point for interacting with the Haven1 system. It initializes and provides access to the AuthModule and SdkModule.

### Constructors

#### new Haven1SDK()

> **new Haven1SDK**(`config`): `Haven1SDK`

Creates a new instance of the Haven1SDK.

**Parameters**

**config**

`Config`

The configuration object containing the SDK and Auth API URLs.

**Returns**

`Haven1SDK`

**Defined in**

[haven1SDK.ts:22](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/haven1SDK.ts#L22)

### Properties

#### auth

> **auth**: `AuthModule`

Instance of the AuthModule for authentication-related operations.

**Defined in**

[haven1SDK.ts:13](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/haven1SDK.ts#L13)

***

#### sdk

> **sdk**: `SdkModule`

Instance of the SdkModule for SDK API functionalities.

**Defined in**

[haven1SDK.ts:15](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/haven1SDK.ts#L15)


# Class: AuthModule

The AuthModule class provides methods for interacting with an authentication API. It allows clients to retrieve a nonce, verify a message signature, validate tokens, and sign out from the authenticati

### Constructors

#### new AuthModule()

> **new AuthModule**(`config`): `AuthModule`

Initializes the `AuthModule` instance.

**Parameters**

**config**

`Config`

An object containing the configuration for the authentication module. The `authApiUrl` field in the config is required to initialize the client.

**Returns**

`AuthModule`

**Defined in**

[module/auth.ts:25](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/auth.ts#L25)

### Methods

#### getClient()

> **getClient**(): `undefined` | `Client`<`paths`, \`${string}/${string}\`>

Returns the OpenAPI client instance if it is initialized.

**Returns**

`undefined` | `Client`<`paths`, \`${string}/${string}\`>

The instance or `undefined` if not initialized.

**Defined in**

[module/auth.ts:40](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/auth.ts#L40)

***

#### getNonce()

> **getNonce**(): `undefined` | `Promise`<`FetchResponse`<{}, `undefined` | `FetchOptions`<{}>, \`${string}/${string}\`>>

Retrieves a nonce from the authentication API.

The nonce can be used for generating and signing authentication messages.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, `undefined` | `FetchOptions`<{}>, \`${string}/${string}\`>>

A `Promise` that resolves with the server's response, or `undefined` if the client is not initialized.

**Defined in**

[module/auth.ts:51](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/auth.ts#L51)

***

#### signOut()

> **signOut**(): `undefined` | `Promise`<`FetchResponse`<{}, `undefined` | `FetchOptions`<{}>, \`${string}/${string}\`>>

Signs out the current session using the authentication API.

This function invalidates the authentication session on the backend.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, `undefined` | `FetchOptions`<{}>, \`${string}/${string}\`>>

A `Promise` that resolves with the sign-out response, or `undefined` if the client is not initialized.

**Defined in**

[module/auth.ts:96](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/auth.ts#L96)

***

#### validateToken()

> **validateToken**(`token`): `undefined` | `Promise`<`FetchResponse`<{}, { `params`: { `path`: { `token`: `string`; }; }; }, \`${string}/${string}\`>>

Validates an authentication token using the authentication API.

**Parameters**

**token**

`string` = `''`

The token to be validated. Defaults to an empty string if not provided.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, { `params`: { `path`: { `token`: `string`; }; }; }, \`${string}/${string}\`>>

A `Promise` that resolves with the validation result, or `undefined` if the client is not initialized.

**Defined in**

[module/auth.ts:79](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/auth.ts#L79)

***

#### verify()

> **verify**(`message`, `signature`): `undefined` | `Promise`<`FetchResponse`<{}, { `body`: { `message`: `string`; `signature`: `string`; }; }, \`${string}/${string}\`>>

Verifies a given signature against a message using the authentication API.

**Parameters**

**message**

`string`

The original message to be verified.

**signature**

`string`

The signature to verify against the message.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, { `body`: { `message`: `string`; `signature`: `string`; }; }, \`${string}/${string}\`>>

A `Promise` that resolves with the verification result, or `undefined` if the client is not initialized.

**Defined in**

[module/auth.ts:63](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/auth.ts#L63)


# Class: SdkModule

The SdkModule class provides methods to interact with the SDK API. It handles operations related to notifications, OTP submission, guardian transactions, and identity details.

### Constructors

#### new SdkModule()

> **new SdkModule**(`config`): `SdkModule`

Creates a new instance of the SdkModule.

**Parameters**

**config**

`Config`

The configuration object containing the SDK API URL.

**Returns**

`SdkModule`

**Defined in**

[module/sdk.ts:19](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/sdk.ts#L19)

### Methods

#### getClient()

> **getClient**(): `undefined` | `Client`<`paths`, \`${string}/${string}\`>

Retrieves the OpenAPI client instance for making requests.

**Returns**

`undefined` | `Client`<`paths`, \`${string}/${string}\`>

The API client instance, or undefined if not initialized.

**Defined in**

[module/sdk.ts:34](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/sdk.ts#L34)

***

#### getIdentityDetail()

> **getIdentityDetail**(`filters`?): `undefined` | `Promise`<`FetchResponse`<{}, { `params`: { `query`: { `filters`: `undefined` | `string`; }; }; }, \`${string}/${string}\`>>

Retrieves current signed in user identity details with optional filters.

**Parameters**

**filters?**

`string`

Optional filters for fetching identity details.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, { `params`: { `query`: { `filters`: `undefined` | `string`; }; }; }, \`${string}/${string}\`>>

The server response for the identity details, or undefined if the client is not initialized.

**Defined in**

[module/sdk.ts:117](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/sdk.ts#L117)

***

#### getIdentityReferral()

> **getIdentityReferral**(): `undefined` | `Promise`<`FetchResponse`<{}, `undefined` | `FetchOptions`<{}>, \`${string}/${string}\`>>

Fetches the identity referral information.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, `undefined` | `FetchOptions`<{}>, \`${string}/${string}\`>>

A promise that resolves to the identity referral information.

**Defined in**

[module/sdk.ts:132](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/sdk.ts#L132)

***

#### getNotifications()

> **getNotifications**(`limit`, `offset`, `filters`): `undefined` | `Promise`<`FetchResponse`<{}, { `params`: { `query`: { `filters`: `Record`<`string`, `never`>; `limit`: `string`; `offset`: `string`; }; }; }, \`${string}/${string}\`>>

Fetches a list of notifications with optional filters, limit, and offset.

**Parameters**

**limit**

`number`

The maximum number of notifications to fetch.

**offset**

`number`

The number of notifications to skip for pagination.

**filters**

`Record`<`string`, `string`\[]>

A record AppName and TxType of filters to apply.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, { `params`: { `query`: { `filters`: `Record`<`string`, `never`>; `limit`: `string`; `offset`: `string`; }; }; }, \`${string}/${string}\`>>

The server response for the notifications, or `undefined` if the client is not initialized.

**Defined in**

[module/sdk.ts:46](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/sdk.ts#L46)

***

#### guardianTransaction()

> **guardianTransaction**(`chainId`, `data`, `from`, `to`, `nonce`, `value`): `undefined` | `Promise`<`FetchResponse`<{}, { `body`: { `chainId`: `string`; `data`: `string`; `from`: `string`; `nonce`: `string`; `to`: `string`; `value`: `string`; }; }, \`${string}/${string}\`>>

Submits a transaction for checking guardian requirements.

**Parameters**

**chainId**

`string`

The chain ID of the transaction.

**data**

`string`

The transaction data.

**from**

`string`

The sender's address.

**to**

`string`

The recipient's address.

**nonce**

`string`

The transaction nonce.

**value**

`string`

The transaction value.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, { `body`: { `chainId`: `string`; `data`: `string`; `from`: `string`; `nonce`: `string`; `to`: `string`; `value`: `string`; }; }, \`${string}/${string}\`>>

The server response for guardian requirements, or undefined if the client is not initialized.

**Defined in**

[module/sdk.ts:91](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/sdk.ts#L91)

***

#### submitOTP()

> **submitOTP**(`address`, `hash`, `otp`): `undefined` | `Promise`<`FetchResponse`<{}, { `body`: { `address`: `string`; `hash`: `string`; `otp`: `string`; }; }, \`${string}/${string}\`>>

Submits a one-time password (OTP) for verification.

**Parameters**

**address**

`string`

The user's address.

**hash**

`string`

The tx hash of the OTP.

**otp**

`string`

The OTP to be submitted.

**Returns**

`undefined` | `Promise`<`FetchResponse`<{}, { `body`: { `address`: `string`; `hash`: `string`; `otp`: `string`; }; }, \`${string}/${string}\`>>

The server response for the OTP submission, or `undefined` if the client is not initialized.

**Defined in**

[module/sdk.ts:70](https://github.com/haven1network/haven1-sdk/blob/0001e1c92905c3f34b86b89ff2290ffba9fe7417/packages/api-client/src/module/sdk.ts#L70)


# @haven1/blockchain-sdk

The @haven1/blockchain-sdk package provides essential configurations and utilities to interact with the Haven1 blockchain. It simplifies blockchain integration by offering pre-configured settings, ABI

### Key Features

* **Chain Configurations**: Access predefined settings for the Haven1 blockchain, including chain ID, network URLs, and other parameters.
* **ABI Definitions**: Includes ABI files for key Haven1 smart contracts, allowing seamless interaction with the blockchain.
* **Contract Addresses**: Provides a centralized source of Haven1 contract addresses to eliminate hardcoding.
* **Utility Functions**: Built-in utilities to simplify common blockchain tasks such as initializing providers or interacting with contracts.

### Dependencies

This package requires **ethers.js** as a peer dependency to handle low-level blockchain interactions.

## Installation

Install the `@haven1/blockchain-sdk` package using your preferred package manager.

{% tabs %}
{% tab title="npm" %}

```sh
npm install @haven1/blockchain-sdk
```

{% endtab %}

{% tab title="yarn" %}

```sh
yarn add @haven1/blockchain-sdk
```

{% endtab %}

{% tab title="pnpm" %}

```sh
pnpm add @haven1/blockchain-sdk
```

{% endtab %}
{% endtabs %}

### Summary

The `@haven1/blockchain-sdk` is a comprehensive toolkit designed to facilitate seamless integration with the Haven1 blockchain. It offers a range of features including chain configurations, ABI definitions, and utility functions, all aimed at simplifying blockchain interactions. By centralizing contract addresses and providing pre-configured settings, this SDK reduces the complexity of blockchain development and ensures efficient and reliable integration.

### Namespaces

* DevnetContract
* TestnetContract


# Contracts

This module exports several contract factories and types that are autogenerated from ABI files. Below is a summary of each export:

* **FeeContract**: This is a type representing the FeeContract, which is used for handling fee-related operations within the blockchain.
* **ProofOfIdentity**: This type represents the ProofOfIdentity contract, which is used for getting and verifying the identity of users on the blockchain.
* **ProofOfIdentityV2**: This is an updated version of the ProofOfIdentity contract, providing enhanced features for identity verification.

## Typechain Generated ABI with Ethers.js

The autogenerated ABI files are ready to be used with Ethers.js, providing a seamless integration for interacting with Ethereum smart contracts. The Typechain-generated types ensure type safety and autocompletion in your IDE, making it easier to work with contract methods and events.

### Using the Factories

Each contract has a corresponding factory class that can be used to create instances of the contract. These factories are designed to work with Ethers.js, allowing you to connect to contracts using a signer or provider.

Example usage:

```typescript
import { ethers } from 'ethers';

import { ProofOfIdentity__factory } from '@haven1/blockchain-sdk/contract';

const provider = new ethers.providers.JsonRpcProvider('YOUR_RPC_URL');
const contractAddress = 'YOUR_CONTRACT_ADDRESS';
const proofOfIdentity = ProofOfIdentity__factory.connect(
  contractAddress,
  provider,
);

// Now you can call contract methods
const balance = await proofOfIdentity.balanceOf('0xYourAddress');
console.log(balance.toString());
```

This setup allows you to interact with the blockchain efficiently, leveraging the power of TypeScript for better code quality and maintainability.


# @haven1/wagmi-sdk

The @haven1/wagmi-sdk package is the best way to interact with the Haven1 blockchain when using Wagmi in your React project. This package simplifies adding the Haven1 blockchain to your Wagmi setup

### Key Features

#### 1. **Chain Constants for Wagmi**

* Easily integrate the Haven1 blockchain into your project by using predefined chain constants in the Wagmi data type.
* Automatically configure the Haven1 chain in your Wagmi client setup without needing manual configuration.

#### 2. **Pre-Made React Hooks**

* **Connected Hooks**: Ready-to-use React hooks that connect to Haven1 smart contracts via Wagmi, making it easy to fetch user data, developer fees, and other blockchain-related information.
* **Smart Contract Integration**: Directly interact with Haven1 smart contracts, such as querying user information or retrieving developer fees, with minimal code.

#### 3. **Wagmi-Wrapped Hooks**

* Pre-configured hooks that combine multiple standard Wagmi hooks into one, reducing boilerplate code.
* These wrapped hooks offer more powerful functionalities, providing a higher level of abstraction while keeping things simple and efficient.

#### 4. **Blockchain Utilities**

* **BigNumber Utilities**: Includes helpful utilities for working with large numbers, such as BigNumber manipulation and formatting, essential for handling blockchain values like token balances and transaction amounts.
* Other useful functions for blockchain interactions, such as converting values, handling gas estimation, and more.

### Installation

Add the `@haven1/wagmi-sdk` package to your project:

{% tabs %}
{% tab title="npm" %}

```sh
npm install @haven1/wagmi-sdk
```

{% endtab %}

{% tab title="yarn" %}

```sh
yarn add @haven1/wagmi-sdk
```

{% endtab %}

{% tab title="pnpm" %}

```sh
pnpm add @haven1/wagmi-sdk
```

{% endtab %}
{% endtabs %}

### Namespaces

* DevnetToken
* TestnetToken

### Type Aliases

* AccountStatusId
* Token
* UseWatchOptions
* WagmiHookReturnType

### Variables

* ACCOUNT\_STATUS\_ID
* H1
* H1\_BLOCKTIME
* haven1Devnet
* haven1Testnet

### Functions

* AccountManager
* bigintFromDecimals
* bigIntMax
* formatBigint
* NativeAppFee
* ProofOfIdentity
* ProofOfIdentityV2
* useBalance
* useContractWrite
* useWatch


# Constant Module

This directory contains the token and chain constants used in the Haven1 network. Each token and chain is represented by a TypeScript object that includes metadata such as the token's symbol, name, address, decimals, and icon, as well as the chain's ID, name, native currency, RPC URLs, and block explorers.

## Structure

The tokens and chains are organized into different environments:

* **Devnet**: Tokens and chains used in the development network.
* **Testnet**: Tokens and chains used in the testnet network.

## Token Definition

Each token is defined as a `Token` type, which includes the following properties:

* `symbol`: The symbol of the token (e.g., `hUSDC`).
* `name`: The full name of the token (e.g., `Haven1 USD Coin`).
* `icon`: The icon component for the token.
* `address`: The blockchain address of the token.
* `decimals`: The number of decimal places the token supports.

## Chain Definition

Each chain is defined as a `Chain` type, which includes the following properties:

* `id`: The unique identifier for the chain.
* `name`: The name of the chain.
* `nativeCurrency`: The native currency used on the chain.
* `rpcUrls`: The RPC URLs for connecting to the chain.
* `blockExplorers`: The block explorers for the chain.

## Usage Example

Here is an example of how to add the Haven1 Testnet chain to your Wagmi configuration:

```typescript
import { createClient, configureChains, WagmiConfig } from 'wagmi';
import { publicProvider } from 'wagmi/providers/public';
import { haven1Testnet } from '@haven1/wagmi-sdk/constant/chain';

const { chains, provider } = configureChains(
  [haven1Testnet],
  [publicProvider()]
);

const client = createClient({
  autoConnect: true,
  provider,
});

function App() {
  return (
    <WagmiConfig client={client}>
      {/* Your application components */}
    </WagmiConfig>
  );
}

export default App;
```

In this example, the `haven1Testnet` chain is imported from the `@haven1/wagmi-sdk` package and added to the Wagmi configuration using the `configureChains` function. The `WagmiConfig` component is then used to provide the configured client to your application.


# Variable: haven1Devnet

> `const` **haven1Devnet**: `Chain`

Represents the Haven1 Devnet blockchain configuration.

### Defined in

[packages/wagmi/src/constant/chain/haven1.ts:38](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/constant/chain/haven1.ts#L38)


# Variable: haven1Testnet

> `const` **haven1Testnet**: `Chain`

Represents the Haven1 Testnet blockchain configuration describe in wagmi Chain interface can be used as a wagmi config. rephrase this AI!

### Defined in

[packages/wagmi/src/constant/chain/haven1.ts:8](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/constant/chain/haven1.ts#L8)


# Variable: H1

> `const` **H1**: `Token`

Represents the Haven1 Native Token (H1) with its associated properties.

### Defined in

[packages/wagmi/src/constant/token/h1.ts:8](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/constant/token/h1.ts#L8)


# Contract Module

This module provides TypeScript interfaces and types for interacting with blockchain contracts. It includes definitions for various contract parameters and functions, allowing for type-safe contract interactions.

## Features

* TypeScript interfaces for contract parameters.
* Type-safe function definitions for contract interactions.
* Support for multiple contract versions.

## Usage

Import the necessary interfaces and types from this module to ensure type safety when interacting with blockchain contracts in your application.

## Usage Example

```typescript
import { ProofOfIdentityV2 } from "@haven1/wagmi-sdk/contract";

const { data, isLoading, isError } = ProofOfIdentityV2({
  address: '0xYourAddressHere',
  contractAddress: ProofOfIndentity.address,
  chainId: haven1Testnet.id,
});

if (isLoading) {
  console.log('Loading...');
} else if (isError) {
  console.error('Error fetching data');
} else {
  console.log('User Data:', data);
}
```

This example demonstrates how to use the `ProofOfIdentityV2` function to fetch user identity details from a smart contract. Replace the placeholders with actual addresses.


# ProofOfIdentity

## Function: ~~ProofOfIdentity()~~

> **ProofOfIdentity**(`ProofOfIdentityParameters`): `object`

ProofOfIdentity is a function that retrieves and processes identity-related data for a specified user from a smart contract. It interacts with different contract methods to fetch user-specific metadata using provided parameters.

### Parameters

#### ProofOfIdentityParameters

`ProofOfIdentityParameters`

The object containing the parameters required.

### Returns

`object`

#### ~~data~~

> **data**: `object` = `poiData`

**data.balance**

> **data.balance**: `undefined` | `bigint` = `poiResult.balance`

**data.competencyRating**

> **data.competencyRating**: `undefined` | `bigint` = `poiResult.competencyRating`

**data.countryCode**

> **data.countryCode**: `undefined` | `string` = `poiResult.countryCode`

**data.expiry**

> **data.expiry**: `undefined` | `bigint` = `poiResult.expiry`

**data.isSuspended**

> **data.isSuspended**: `undefined` | `boolean` | `0n`

**data.primaryID**

> **data.primaryID**: `undefined` | readonly \[`boolean`, `bigint`, `bigint`] = `poiResult.primaryID`

**data.userType**

> **data.userType**: `undefined` | `bigint` = `poiResult.userType`

#### ~~error~~

> **error**: `null` | `ReadContractsErrorType`

#### ~~isError~~

> **isError**: `boolean`

#### ~~isLoading~~

> **isLoading**: `boolean`

#### ~~isPending~~

> **isPending**: `boolean`

#### ~~isRefetching~~

> **isRefetching**: `boolean`

#### ~~refetch()~~

> **refetch**: (`options`?) => `Promise`<`QueryObserverResult`<{ `balance`: `undefined` | `bigint`; `competencyRating`: `undefined` | `bigint`; `countryCode`: `undefined` | `string`; `expiry`: `undefined` | `bigint`; `isSuspended`: `undefined` | `boolean`; `primaryID`: `undefined` | readonly \[`boolean`, `bigint`, `bigint`]; `userType`: `undefined` | `bigint`; }, `ReadContractsErrorType`>>

**Parameters**

**options?**

`RefetchOptions`

**Returns**

`Promise`<`QueryObserverResult`<{ `balance`: `undefined` | `bigint`; `competencyRating`: `undefined` | `bigint`; `countryCode`: `undefined` | `string`; `expiry`: `undefined` | `bigint`; `isSuspended`: `undefined` | `boolean`; `primaryID`: `undefined` | readonly \[`boolean`, `bigint`, `bigint`]; `userType`: `undefined` | `bigint`; }, `ReadContractsErrorType`>>

### Deprecated

Use ProofOfIdentityV2 instead for Mainnet.

### Defined in

[packages/wagmi/src/contract/ProofOfIdentity.tsx:38](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/contract/ProofOfIdentity.tsx#L38)


# ProofOfIdentityV2

## Function: ProofOfIdentityV2()

> **ProofOfIdentityV2**(`params`): `object`

ProofOfIdentityV2 is a function that fetches and processes various user identity details from a specified smart contract. It utilizes multiple contract methods to retrieve data such as country code, user type, competency rating, primary ID, suspension status, balance, auxiliary accounts, principal account, and maximum allowed auxiliary accounts.

When the required parameters are provided, it enables querying of these contract methods, processes the resulting data, and structures it for easier use in application logic.

### Parameters

#### params

`ProofOfIdentityV2Parameters`

The parameters required to query the contract.

### Returns

`object`

#### data

> **data**: `object` = `poiData`

**data.auxiliaryAccounts**

> **data.auxiliaryAccounts**: `undefined` | readonly \`0x${string}\`\[] = `poiResult.auxiliaryAccounts`

**data.balance**

> **data.balance**: `undefined` | `bigint` = `poiResult.balance`

**data.competencyRating**

> **data.competencyRating**: `undefined` | `bigint` = `poiResult.competencyRating`

**data.countryCode**

> **data.countryCode**: `undefined` | `string` = `poiResult.countryCode`

**data.expiry**

> **data.expiry**: `undefined` | `bigint` = `poiResult.expiry`

**data.isAuxiliaryMaxedOut**

> **data.isAuxiliaryMaxedOut**: `undefined` | `boolean` = `poiResult.isAuxiliaryMaxedOut`

**data.isSuspended**

> **data.isSuspended**: `undefined` | `boolean` | `0n`

**data.primaryID**

> **data.primaryID**: `undefined` | readonly \[`boolean`, `bigint`, `bigint`] = `poiResult.primaryID`

**data.principalAccount**

> **data.principalAccount**: `undefined` | \`0x${string}\` = `poiResult.principalAccount`

**data.userType**

> **data.userType**: `undefined` | `bigint` = `poiResult.userType`

#### error

> **error**: `null` | `ReadContractsErrorType`

#### isError

> **isError**: `boolean`

#### isLoading

> **isLoading**: `boolean`

#### isPending

> **isPending**: `boolean`

#### isRefetching

> **isRefetching**: `boolean`

#### refetch()

> **refetch**: (`options`?) => `Promise`<`QueryObserverResult`<{ `auxiliaryAccounts`: `undefined` | readonly \`0x${string}\`\[]; `balance`: `undefined` | `bigint`; `competencyRating`: `undefined` | `bigint`; `countryCode`: `undefined` | `string`; `expiry`: `undefined` | `bigint`; `isAuxiliaryMaxedOut`: `boolean`; `isSuspended`: `undefined` | `boolean`; `primaryID`: `undefined` | readonly \[`boolean`, `bigint`, `bigint`]; `principalAccount`: `undefined` | \`0x${string}\`; `userType`: `undefined` | `bigint`; }, `ReadContractsErrorType`>>

**Parameters**

**options?**

`RefetchOptions`

**Returns**

`Promise`<`QueryObserverResult`<{ `auxiliaryAccounts`: `undefined` | readonly \`0x${string}\`\[]; `balance`: `undefined` | `bigint`; `competencyRating`: `undefined` | `bigint`; `countryCode`: `undefined` | `string`; `expiry`: `undefined` | `bigint`; `isAuxiliaryMaxedOut`: `boolean`; `isSuspended`: `undefined` | `boolean`; `primaryID`: `undefined` | readonly \[`boolean`, `bigint`, `bigint`]; `principalAccount`: `undefined` | \`0x${string}\`; `userType`: `undefined` | `bigint`; }, `ReadContractsErrorType`>>

### Defined in

[packages/wagmi/src/contract/ProofOfIdentityV2.tsx:41](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/contract/ProofOfIdentityV2.tsx#L41)


# NativeAppFee

## Function: NativeAppFee()

> **NativeAppFee**(`address`, `chainId`): `object`

Retrieves fee details for a native application based on the given blockchain address and chain ID.

### Parameters

#### address

\`0x${string}\`

The application fee contract address to read the fee information from.

#### chainId

`number`

The chainid to read from.

### Returns

`object`

#### feeH1

> **feeH1**: `undefined` | `bigint`

The current fee in the native currency (H1).

#### feeUsd

> **feeUsd**: `undefined` | `bigint`

The current fee in USD equivalent value.

#### h1Usd

> **h1Usd**: `undefined` | `bigint`

The calculated conversion rate of the native currency to USD. Returns undefined if necessary data is unavailable.

### Defined in

[packages/wagmi/src/contract/NativeAppFee.tsx:9](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/contract/NativeAppFee.tsx#L9)


# Utility Module

This module provides utility functions that are used across the Haven1 project. These utilities help in managing common tasks and operations, ensuring consistency and reducing code duplication.

## Features

* Common utility functions for data manipulation and transformation.
* Type definitions for shared data structures.
* Helper functions for blockchain interactions.

## Usage

Import the necessary utilities from this module to use them in your application. These utilities are designed to simplify common tasks and improve code maintainability.

## Usage Example

Here is an example of how to use the `bigIntMax` utility function in a TypeScript file:

```typescript
import { bigIntMax } from '@haven1/wagmi-sdk/util';

const value1 = 100n;
const value2 = 200n;

const maxValue = bigIntMax(value1, value2);

console.log(`The maximum value is: ${maxValue}`); // Output: The maximum value is: 200n
```

In this example, the `bigIntMax` function is used to determine the maximum of two `bigint` values. The result is then logged to the console.


# bigIntMax

## Function: bigIntMax()

> **bigIntMax**(...`args`): `bigint`

Method returns the largest of the numbers given as input parameters

### Parameters

#### args

...`bigint`\[]

### Returns

`bigint`

### Defined in

[packages/wagmi/src/util/bigint.ts:63](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/util/bigint.ts#L63)


# formatBigint

## Function: formatBigint()

> **formatBigint**(`value`, `decimals`, `displayDecimals`?): `string`

Format bigint to string with decimals

### Parameters

#### value

`bigint`

The bigint value to format.

#### decimals

`number`

The number of decimal places to consider.

#### displayDecimals?

`number`

Optional number of decimal places to display.

### Returns

`string`

### Defined in

[packages/wagmi/src/util/bigint.ts:35](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/util/bigint.ts#L35)


# bigintFromDecimals

## Function: bigintFromDecimals()

> **bigintFromDecimals**(`value`, `decimals`, `rounded`): `bigint`

Convert number to bigint with decimals

### Parameters

#### value

`string`

The string representation of the value.

#### decimals

`number`

The number of decimal places to consider.

#### rounded

`boolean` = `true`

Optional boolean indicating whether the value should be rounded. Defaults to true.

### Returns

`bigint`

converted bigint value

### Defined in

[packages/wagmi/src/util/bigint.ts:7](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/util/bigint.ts#L7)


# Hook Module

This module provides custom React hooks for interacting with blockchain data and events. These hooks are designed to simplify the process of fetching and managing blockchain-related data within React applications.

## Features

* Custom hooks for blockchain data fetching.
* Easy integration with React components.
* Support for various blockchain operations.

## Available Hooks

* `useBalance`: Fetches the balance of a specified token for a given wallet address.
* `useWatch`: Watches for changes in blockchain data and updates the component state accordingly.
* `useApproveERC20`: Manages ERC-20 token approval to a specific contract.
* `useContractWrite`: Handles writing to a smart contract with various configurations.

## Usage

Import the necessary hooks from this module to use them in your React components. These hooks provide a simple API to interact with blockchain data and handle state management efficiently.

## Usage Example

Here is an example of how to use the `useBalance` hook in a React component:

```tsx
import React from 'react';
import { useBalance } from '@haven1/wagmi-sdk/hook';

const BalanceComponent = ({ address, tokenAddress }) => {
  const balance = useBalance(address, tokenAddress);

  return (
    <div>
      <h3>Token Balance</h3>
      {balance ? (
        <p>
          {balance.formatted} {balance.symbol}
        </p>
      ) : (
        <p>Loading...</p>
      )}
    </div>
  );
};

export default BalanceComponent;
```

In this example, the `useBalance` hook is used to fetch the balance of a specified token for a given wallet address. The balance is then displayed in the component.


# useWatch

## Function: useWatch()

> **useWatch**<`T`>(`hook`, `options`?): `WagmiHookReturnType`<`T`>

A custom hook that watches blockchain changes and triggers refetching logic based on specified criteria such as block number differences.

### Type Parameters

• **T** *extends* `object`

### Parameters

#### hook

`WagmiHookReturnType`<`T`>

The original hook provided by the Wagmi library with its data and methods.

#### options?

`UseWatchOptions`

Optional settings to configure the watching behavior, including whether to watch, block difference threshold, and chainId.

### Returns

`WagmiHookReturnType`<`T`>

Returns the original hook, preserving its functionality while adding watch-based refetching logic.

### Defined in

[packages/wagmi/src/hook/useWatch.tsx:46](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/hook/useWatch.tsx#L46)


# useBalance

## Function: useBalance()

> **useBalance**(`UseBalanceParameters`): `undefined` | { `decimals`: `number`; `formatted`: `string`; `symbol`: `string`; `value`: `bigint`; }

Computes and retrieves the token balance, decimals, and symbol information for a specified wallet address on a specific blockchain.

This function leverages blockchain read operations to fetch the balance of a token for a given wallet address along with associated token metadata such as decimals and symbol. It also formats the token balance for easier readability.

### Parameters

#### UseBalanceParameters

`UseBalanceParameters`

The parameters for retrieving the balance.

### Returns

`undefined` | { `decimals`: `number`; `formatted`: `string`; `symbol`: `string`; `value`: `bigint`; }

An object containing the balance information or `undefined` if data is not available:

* `value` (BigInt): The raw token balance.
* `decimals` (number): The number of decimal places for the token.
* `symbol` (string): The symbol of the token.
* `formatted` (string): The formatted balance value as a string with a fixed precision of 8.

### Defined in

[packages/wagmi/src/hook/useBalance.tsx:40](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/hook/useBalance.tsx#L40)


# useApproveERC20

## Function: useApproveERC20()

> **useApproveERC20**(`tokenAddress`, `contractAddress`, `amount`?, `chainId`?, `enabled`?): `object`

A custom hook for managing ERC-20 token approval to a specific contract. This hook includes functionality to check the current allowance, simulate the approval transaction, execute the approval, and track its status.

### Parameters

#### tokenAddress

\`0x${string}\`

The address of the ERC-20 token to be approved.

#### contractAddress

\`0x${string}\`

The address of the contract to which the token is being approved.

#### amount?

`bigint`

The amount of tokens to approve. If not provided, it defaults to `0n`.

#### chainId?

`number`

The ID of the blockchain network where the ERC-20 token resides.

#### enabled?

`boolean` = `true`

A flag to enable or disable the hook's functionality. When `false`, all queries and actions are disabled.

### Returns

`object`

An object containing the following

#### allowance

> **allowance**: `undefined` | `bigint`

#### approve()

> **approve**: () => `void`

**Returns**

`void`

#### approveError

> **approveError**: `null` | `WriteContractErrorType`

#### approveLoading

> **approveLoading**: `boolean`

#### approveSuccess

> **approveSuccess**: `boolean`

#### approveTxLoading

> **approveTxLoading**: `boolean`

#### approveTxSuccess

> **approveTxSuccess**: `boolean`

### Defined in

[packages/wagmi/src/hook/useApproveERC20.tsx:19](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/hook/useApproveERC20.tsx#L19)


# useContractWrite

## Function: useContractWrite()

> **useContractWrite**<`chainId`, `abi`, `functionName`, `args`, `config`, `selectData`>(`params`): `object`

useContractWrite is a utility function designed to manage the process of interacting with a smart contract's writable or payable methods. It includes capabilities for simulating transactions, estimating gas, pre-approving transactions using guardians, and waiting for transaction receipts after execution. This function provides comprehensive functionality to handle the complexities of writing to smart contracts in a streamlined manner.

Variables, callbacks, and computed states are provided to empower developers with greater control during interaction with smart contracts. It integrates various modules like simulation, transaction pre-approval, and gas estimation into a unified interface.

### Type Parameters

• **chainId** *extends* `number`

The chain ID where the contract resides.

• **abi** *extends* `Abi` | readonly `unknown`\[]

The ABI of the contract, defining available methods.

• **functionName** *extends* `string`

The name of the writable or payable function of the contract.

• **args** *extends* `unknown`

The arguments required by the contract function.

• **config** *extends* `Config` = `Config`

Configuration options for the contract write, including chain details.

• **selectData** = `SimulateContractData`<`abi`, `functionName`, `args`, `config`, `chainId`>

Data derived from simulation output passed into this template.

### Parameters

#### params

`UseContractWriteParameters`<`chainId`, `abi`, `functionName`, `args`, `config`, `selectData`>

Configuration parameters for the contract write operation.

### Returns

`object`

A set of properties and methods to manage contract write operations

#### hash

> **hash**: `undefined` | \`0x${string}\`

#### isError

> **isError**: `boolean`

#### isLoading

> **isLoading**: `boolean`

#### isSimulateError

> **isSimulateError**: `boolean`

#### isSimulateLoading

> **isSimulateLoading**: `boolean`

#### isTxError

> **isTxError**: `boolean`

#### isTxLoading

> **isTxLoading**: `boolean`

#### isTxSuccess

> **isTxSuccess**: `boolean`

#### isWriteError

> **isWriteError**: `boolean`

#### isWriteSuccess

> **isWriteSuccess**: `boolean`

#### isWriting

> **isWriting**: `boolean`

#### readyToWrite

> **readyToWrite**: `boolean`

#### simulateData

> **simulateData**: `undefined` | `SimulateContractReturnType`<`Abi`, `string`, readonly `unknown`\[], `Chain`, `Account`, `Chain`> & `object`

#### simulateError

> **simulateError**: `null` | `SimulateContractErrorType`

#### txError

> **txError**: `null` | `WaitForTransactionReceiptErrorType`

#### txReceipt

> **txReceipt**: `undefined` | { `blobGasPrice`: `bigint`; `blobGasUsed`: `bigint`; `blockHash`: \`0x${string}\`; `blockNumber`: `bigint`; `chainId`: `number`; `contractAddress`: `undefined` | `null` | \`0x${string}\`; `cumulativeGasUsed`: `bigint`; `effectiveGasPrice`: `bigint`; `from`: \`0x${string}\`; `gasUsed`: `bigint`; `logs`: `Log`<`bigint`, `number`, `false`>\[]; `logsBloom`: \`0x${string}\`; `root`: \`0x${string}\`; `status`: `"success"` | `"reverted"`; `to`: `null` | \`0x${string}\`; `transactionHash`: \`0x${string}\`; `transactionIndex`: `number`; `type`: `TransactionType`; }

**Type declaration**

`undefined`

{ `blobGasPrice`: `bigint`; `blobGasUsed`: `bigint`; `blockHash`: \`0x${string}\`; `blockNumber`: `bigint`; `chainId`: `number`; `contractAddress`: `undefined` | `null` | \`0x${string}\`; `cumulativeGasUsed`: `bigint`; `effectiveGasPrice`: `bigint`; `from`: \`0x${string}\`; `gasUsed`: `bigint`; `logs`: `Log`<`bigint`, `number`, `false`>\[]; `logsBloom`: \`0x${string}\`; `root`: \`0x${string}\`; `status`: `"success"` | `"reverted"`; `to`: `null` | \`0x${string}\`; `transactionHash`: \`0x${string}\`; `transactionIndex`: `number`; `type`: `TransactionType`; }

#### writeContract()

> **writeContract**: () => `void`

**Returns**

`void`

#### writeContractAsync()

> **writeContractAsync**: () => `Promise`<`void`>

**Returns**

`Promise`<`void`>

#### writeError

> **writeError**: `null` | `WriteContractErrorType`

#### writeReset()

> **writeReset**: () => `void`

**Returns**

`void`

### Defined in

[packages/wagmi/src/hook/useContractWrite.tsx:111](https://github.com/haven1network/haven1-sdk/blob/df6267fec7b75040411529269f9c6a88e9c756ee/packages/wagmi/src/hook/useContractWrite.tsx#L111)


# @haven1/react-sdk

The @haven1/react-sdk package provides a comprehensive library of ready-to-use React components, icons, and hooks to accelerate development with Haven1. Designed for flexibility and customization, it

### Key Features

#### 1. Ready-to-Use React Components

* **UI Elements**: A library of generic components such as buttons, modals, and input fields designed for quick implementation.
* **Fully Functional Components**: Advanced components like notifications, 2FA dialogs, and more, pre-configured for Haven1 integration.
* **Design System**: All components follow the Haven1 design system, ensuring consistent aesthetics and user experience across projects.
* **Customization**: Built with Tailwind CSS, allowing you to easily customize styles to match your project’s needs.

#### 2. Icon Assets

* A comprehensive set of icons representing Haven1 products and features.
* Designed to seamlessly integrate into your UI.

#### 3. React Hooks with React Query

* **API Integration Hooks**: Simplify connecting your React project to Haven1 APIs using `@tanstack/react-query`.
* **Efficiency**: Automatically manage caching, loading states, and error handling for API requests.
* **Type-Safe**: Fully typed responses ensure reliability in your code.

### Storybook Documentation

Explore all components and their usage in our **Storybook**: [Storybook for @haven1/react-sdk](https://haven1network.github.io/haven1-sdk)

### **Installation**

{% tabs %}
{% tab title="npm" %}

```sh
npm install @haven1/react-sdk
```

{% endtab %}

{% tab title="yarn" %}

```sh
yarn add @haven1/react-sdk
```

{% endtab %}

{% tab title="pnpm" %}

```sh
pnpm add @haven1/react-sdk
```

{% endtab %}
{% endtabs %}

### Dependencies

This package requires the following peer dependencies:

* **React**
* **@tanstack/react-query**: For managing API data and caching.
* **@haven1/sdk-api-client**: To connect your React project to Haven1 APIs.

Install these dependencies if not already included in your project:

Before using the UI components from this package, ensure you have installed the necessary dependencies. Then, apply the styles to your project's global CSS file.

```css
@import '@haven1/react-sdk/css';
```

### Interfaces

* ButtonColorStyles
* ButtonSizeProps
* CircularLoadingProps
* EmptyNotificationProps
* GoldIconProps
* H1IconProps
* LoadingDotsProps
* NotificationBellProps
* NotificationComponentProps
* NotificationDialogProps
* NotificationItemListProps
* NotificationItemProps
* NotificationPopoverProps
* NotificationProps
* NotificationSignInProps
* OtpModalProps
* PlatinumIconProps
* SilverIconProps
* WH1IconProps

### Type Aliases

* ButtonColor
* ButtonProps
* NotificationItemType
* SubmitOtpParams
* ValidateAuthParams
* VerifyAuthParams

### Functions

* Button
* CircularLoading
* EmptyNotification
* ESH1Icon
* GoldIcon
* H1Icon
* Haven1SDKProvider
* LoadingDots
* Notification
* NotificationBell
* NotificationComponent
* NotificationDialog
* NotificationItem
* NotificationItemList
* NotificationPopover
* NotificationSignIn
* OtpModal
* PlatinumIcon
* SilverIcon
* useAuth
* useHaven1SDK
* useIdentity
* useNotifications
* useOTP
* useSignIn
* WH1Icon
* withHaven1Tag


# useHaven1SDK

## Function: useHaven1SDK()

> **useHaven1SDK**(): `Haven1SDK`

Custom hook to access the Haven1 SDK instance from the context.

### Returns

`Haven1SDK`

The Haven1 SDK instance.

### Throws

If the Haven1SDKProvider is missing in the component tree.

### Defined in

[packages/react/src/api/hook/useHaven1Sdk.tsx:35](https://github.com/haven1network/haven1-sdk/blob/7cd51fbeb78d9011a6b1c4b8e514287b0d830453/packages/react/src/api/hook/useHaven1Sdk.tsx#L35)


# useAuth

## Function: useAuth()

> **useAuth**(): `object`

Custom hook for handling authentication with the Haven1 SDK.

### Returns

`object`

An object containing authentication methods.

#### nonce

> **nonce**: `UseMutationResult`<`undefined` | `FetchResponse`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: `undefined`; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `data`: { `nonce`: `string`; }; `status`: `"success"`; }; `multipart/form-data`: { `data`: { `nonce`: `string`; }; `status`: `"success"`; }; `text/plain`: { `data`: { `nonce`: `string`; }; `status`: `"success"`; }; }; `headers`: {}; }; }; }, `undefined` | `FetchOptions`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: `undefined`; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `data`: ...; `status`: ...; }; `multipart/form-data`: { `data`: ...; `status`: ...; }; `text/plain`: { `data`: ...; `status`: ...; }; }; `headers`: {}; }; }; }>, \`${string}/${string}\`>, `Error`, `void`, `unknown`>

Mutation for fetching a nonce.

#### signOut

> **signOut**: `UseMutationResult`<`undefined` | `FetchResponse`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: `undefined`; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `data`: `null`; `status`: `"success"`; }; `multipart/form-data`: { `data`: `null`; `status`: `"success"`; }; `text/plain`: { `data`: `null`; `status`: `"success"`; }; }; `headers`: {}; }; }; }, `undefined` | `FetchOptions`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: `undefined`; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `data`: ...; `status`: ...; }; `multipart/form-data`: { `data`: ...; `status`: ...; }; `text/plain`: { `data`: ...; `status`: ...; }; }; `headers`: {}; }; }; }>, \`${string}/${string}\`>, `Error`, `void`, `unknown`>

Mutation for signing out.

#### validate

> **validate**: `UseQueryResult`<`undefined` | `FetchResponse`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: { `token`: `string`; }; `query`: `undefined`; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `data`: { `address`: ...; `isSignedIn`: ...; } | { `isSignedIn`: ...; }; `status`: `"success"`; }; `multipart/form-data`: { `data`: { `address`: ...; `isSignedIn`: ...; } | { `isSignedIn`: ...; }; `status`: `"success"`; }; `text/plain`: { `data`: { `address`: ...; `isSignedIn`: ...; } | { `isSignedIn`: ...; }; `status`: `"success"`; }; }; `headers`: {}; }; }; }, { `params`: { `path`: { `token`: `string`; }; }; }, \`${string}/${string}\`>, `Error`>

Query for validating an authentication token.

#### verify

> **verify**: `UseMutationResult`<`undefined` | `FetchResponse`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: `undefined`; }; `requestBody`: { `content`: { `application/json`: { `message`: `string`; `signature`: `string`; }; `multipart/form-data`: { `message`: `string`; `signature`: `string`; }; `text/plain`: { `message`: `string`; `signature`: `string`; }; }; }; `responses`: { `200`: { `content`: { `application/json`: { `data`: `null`; `status`: `"success"`; }; `multipart/form-data`: { `data`: `null`; `status`: `"success"`; }; `text/plain`: { `data`: `null`; `status`: `"success"`; }; }; `headers`: {}; }; `400`: { `content`: { `application/json`: { `data`: `Record`<`string`, `never`>; `status`: `"fail"`; }; `multipart/form-data`: { `data`: `Record`<`string`, `never`>; `status`: `"fail"`; }; `text/plain`: { `data`: `Record`<`string`, `never`>; `status`: `"fail"`; }; }; `headers`: {}; }; `401`: { `content`: { `application/json`: { `data`: { `error`: `string`; }; `status`: `"fail"`; }; `multipart/form-data`: { `data`: { `error`: `string`; }; `status`: `"fail"`; }; `text/plain`: { `data`: { `error`: `string`; }; `status`: `"fail"`; }; }; `headers`: {}; }; `500`: { `content`: { `application/json`: { `message`: `string`\[]; `status`: `"error"`; }; `multipart/form-data`: { `message`: `string`\[]; `status`: `"error"`; }; `text/plain`: { `message`: `string`\[]; `status`: `"error"`; }; }; `headers`: {}; }; }; }, { `body`: { `message`: `string`; `signature`: `string`; }; }, \`${string}/${string}\`>, `Error`, `VerifyAuthParams`, `unknown`>

Mutation for verifying a message and signature.

### Defined in

[packages/react/src/api/hook/useAuth.tsx:19](https://github.com/haven1network/haven1-sdk/blob/7cd51fbeb78d9011a6b1c4b8e514287b0d830453/packages/react/src/api/hook/useAuth.tsx#L19)


# useIdentity

## Function: useIdentity()

> **useIdentity**(`enabled`?, `filters`?): `object`

Custom hook to fetch identity details and referral information using the Haven1 SDK.

### Parameters

#### enabled?

`boolean`

Optional boolean to enable or disable the queries.

#### filters?

`string`\[]

Optional array of filters to apply to the identity query.

### Returns

`object`

#### identity

> **identity**: `UseQueryResult`<`undefined` | `FetchResponse`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: { `filters`: `string`; }; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `address`: `string`; `countryCode`: `null` | `string`; `countryOfResidence`: `null` | `string`; `createdAt`: `string`; `email`: `string`; `emailVerified`: `boolean`; `id`: `number`; `idIssuingCountry`: `null` | `string`; `name`: `null` | `string`; `nationality`: `null` | `string`; `proofOfLiveliness`: `null` | `boolean`; `referralCode`: `string`; `referredById`: `null` | `number`; `region`: `null` | `string`; `updatedAt`: `string`; }; `multipart/form-data`: { `address`: `string`; `countryCode`: `null` | `string`; `countryOfResidence`: `null` | `string`; `createdAt`: `string`; `email`: `string`; `emailVerified`: `boolean`; `id`: `number`; `idIssuingCountry`: `null` | `string`; `name`: `null` | `string`; `nationality`: `null` | `string`; `proofOfLiveliness`: `null` | `boolean`; `referralCode`: `string`; `referredById`: `null` | `number`; `region`: `null` | `string`; `updatedAt`: `string`; }; `text/plain`: { `address`: `string`; `countryCode`: `null` | `string`; `countryOfResidence`: `null` | `string`; `createdAt`: `string`; `email`: `string`; `emailVerified`: `boolean`; `id`: `number`; `idIssuingCountry`: `null` | `string`; `name`: `null` | `string`; `nationality`: `null` | `string`; `proofOfLiveliness`: `null` | `boolean`; `referralCode`: `string`; `referredById`: `null` | `number`; `region`: `null` | `string`; `updatedAt`: `string`; }; }; `headers`: {}; }; `404`: { `content`: { `application/json`: { `error`: `string`; }; `multipart/form-data`: { `error`: `string`; }; `text/plain`: { `error`: `string`; }; }; `headers`: {}; }; `500`: { `content`: { `application/json`: { `message`: `unknown`; `status`: `string`; }; `multipart/form-data`: { `message`: `unknown`; `status`: `string`; }; `text/plain`: { `message`: `unknown`; `status`: `string`; }; }; `headers`: {}; }; }; }, { `params`: { `query`: { `filters`: `undefined` | `string`; }; }; }, \`${string}/${string}\`>, `Error`>

Query for fetching identity details.

#### referral

> **referral**: `UseQueryResult`<`undefined` | `FetchResponse`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: `undefined`; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `referralCode`: `string`; `unverified`: { `referredUsers`: `number`; `referredUsersLast7Days`: `number`; }; `verified`: { `referredUsers`: `number`; `referredUsersLast7Days`: `number`; }; }; `multipart/form-data`: { `referralCode`: `string`; `unverified`: { `referredUsers`: `number`; `referredUsersLast7Days`: `number`; }; `verified`: { `referredUsers`: `number`; `referredUsersLast7Days`: `number`; }; }; `text/plain`: { `referralCode`: `string`; `unverified`: { `referredUsers`: `number`; `referredUsersLast7Days`: `number`; }; `verified`: { `referredUsers`: `number`; `referredUsersLast7Days`: `number`; }; }; }; `headers`: {}; }; `404`: { `content`: { `application/json`: { `error`: `string`; }; `multipart/form-data`: { `error`: `string`; }; `text/plain`: { `error`: `string`; }; }; `headers`: {}; }; `500`: { `content`: { `application/json`: { `message`: `unknown`; `status`: `string`; }; `multipart/form-data`: { `message`: `unknown`; `status`: `string`; }; `text/plain`: { `message`: `unknown`; `status`: `string`; }; }; `headers`: {}; }; }; }, `undefined` | `FetchOptions`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: `undefined`; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `referralCode`: ...; `unverified`: ...; `verified`: ...; }; `multipart/form-data`: { `referralCode`: ...; `unverified`: ...; `verified`: ...; }; `text/plain`: { `referralCode`: ...; `unverified`: ...; `verified`: ...; }; }; `headers`: {}; }; `404`: { `content`: { `application/json`: { `error`: ...; }; `multipart/form-data`: { `error`: ...; }; `text/plain`: { `error`: ...; }; }; `headers`: {}; }; `500`: { `content`: { `application/json`: { `message`: ...; `status`: ...; }; `multipart/form-data`: { `message`: ...; `status`: ...; }; `text/plain`: { `message`: ...; `status`: ...; }; }; `headers`: {}; }; }; }>, \`${string}/${string}\`>, `Error`>

Query for fetching identity referral information.

### Defined in

[packages/react/src/api/hook/useIdentity.ts:8](https://github.com/haven1network/haven1-sdk/blob/7cd51fbeb78d9011a6b1c4b8e514287b0d830453/packages/react/src/api/hook/useIdentity.ts#L8)


# useNotifications

## Function: useNotifications()

> **useNotifications**<`T`>(`mapper`, `isSignedIn`, `address`?, `limit`?, `refetchInterval`?, `filters`?): `object`

Custom hook to manage notifications using the Haven1 SDK.

### Type Parameters

• **T**

### Parameters

#### mapper

(`item`) => `T`

Function to map notification items.

#### isSignedIn

`boolean`

Indicates whether the user is signed in.

#### address?

`string`

Optional address associated with the notifications.

#### limit?

`number` = `5`

Optional limit for the number of notifications to fetch.

#### refetchInterval?

`number` = `...`

Optional interval in milliseconds for refetching notifications.

#### filters?

`Record`<`string`, `string`\[]> = `{}`

Optional filters applied to the notifications.

### Returns

`object`

#### newNotifications

> **newNotifications**: `object`\[]

#### newNotificationsCount

> **newNotificationsCount**: `undefined` | `string`

#### notifications

> **notifications**: `UseInfiniteQueryResult`<`InfiniteData`<{ `hasMore`: `boolean`; `items`: `never`\[]; `pageParam`: `number`; `rawItems`: `undefined`; } | { `hasMore`: `boolean`; `items`: `T`\[]; `pageParam`: `number`; `rawItems`: `object`\[]; }, `unknown`>, `Error`>

#### resetUnviewedNotifications()

> **resetUnviewedNotifications**: () => `void`

**Returns**

`void`

### Defined in

[packages/react/src/api/hook/useNotifications.tsx:10](https://github.com/haven1network/haven1-sdk/blob/7cd51fbeb78d9011a6b1c4b8e514287b0d830453/packages/react/src/api/hook/useNotifications.tsx#L10)


# useOTP

## Function: useOTP()

> **useOTP**(): `object`

### Returns

`object`

#### submit

> **submit**: `UseMutationResult`<`undefined` | `FetchResponse`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: `undefined`; `query`: `undefined`; }; `requestBody`: { `content`: { `application/json`: { `address`: `string`; `hash`: `string`; `otp`: `string`; }; `multipart/form-data`: { `address`: `string`; `hash`: `string`; `otp`: `string`; }; `text/plain`: { `address`: `string`; `hash`: `string`; `otp`: `string`; }; }; }; `responses`: { `200`: { `content`: { `application/json`: { `status`: `"success"`; }; `multipart/form-data`: { `status`: `"success"`; }; `text/plain`: { `status`: `"success"`; }; }; `headers`: {}; }; `401`: { `content`: { `application/json`: { `message`: `unknown`; `status`: `"error"`; }; `multipart/form-data`: { `message`: `unknown`; `status`: `"error"`; }; `text/plain`: { `message`: `unknown`; `status`: `"error"`; }; }; `headers`: {}; }; `404`: { `content`: { `application/json`: { `message`: `unknown`; `status`: `"error"`; }; `multipart/form-data`: { `message`: `unknown`; `status`: `"error"`; }; `text/plain`: { `message`: `unknown`; `status`: `"error"`; }; }; `headers`: {}; }; `500`: { `content`: { `application/json`: { `message`: `unknown`; `status`: `"error"`; }; `multipart/form-data`: { `message`: `unknown`; `status`: `"error"`; }; `text/plain`: { `message`: `unknown`; `status`: `"error"`; }; }; `headers`: {}; }; }; }, { `body`: { `address`: `string`; `hash`: `string`; `otp`: `string`; }; }, \`${string}/${string}\`>, `Error`, `SubmitOtpParams`, `unknown`>

Mutation for submitting the OTP.

### Defined in

[packages/react/src/api/hook/useOTP.tsx:22](https://github.com/haven1network/haven1-sdk/blob/7cd51fbeb78d9011a6b1c4b8e514287b0d830453/packages/react/src/api/hook/useOTP.tsx#L22)


# useSignIn

## Function: useSignIn()

> **useSignIn**(`address`?): `object`

Custom hook to handle user sign-in status using the Haven1 SDK.

### Parameters

#### address?

`string`

Optional address of the user.

### Returns

`object`

#### isSignedIn

> **isSignedIn**: `boolean`

Indicates whether the user is signed in.

#### validate

> **validate**: `UseQueryResult`<`undefined` | `FetchResponse`<{ `parameters`: { `cookie`: `undefined`; `header`: `undefined`; `path`: { `token`: `string`; }; `query`: `undefined`; }; `requestBody`: `undefined`; `responses`: { `200`: { `content`: { `application/json`: { `data`: { `address`: ...; `isSignedIn`: ...; } | { `isSignedIn`: ...; }; `status`: `"success"`; }; `multipart/form-data`: { `data`: { `address`: ...; `isSignedIn`: ...; } | { `isSignedIn`: ...; }; `status`: `"success"`; }; `text/plain`: { `data`: { `address`: ...; `isSignedIn`: ...; } | { `isSignedIn`: ...; }; `status`: `"success"`; }; }; `headers`: {}; }; }; }, { `params`: { `path`: { `token`: `string`; }; }; }, \`${string}/${string}\`>, `Error`>

Query for validating the authentication token.

### Defined in

[packages/react/src/api/hook/useSignIn.tsx:9](https://github.com/haven1network/haven1-sdk/blob/7cd51fbeb78d9011a6b1c4b8e514287b0d830453/packages/react/src/api/hook/useSignIn.tsx#L9)


# Use cases & Examples


# Adding the Notification Component to Your React UI

To add the `Notification` component to your React UI, follow these steps:

## 1. Import the Notification Component

First, ensure you import the `Notification` component into the file where you want to use it.

```jsx
import { Notification } from '@haven1/react-sdk/component';
```

## 2. Use the Notification Component

You can now use the `Notification` component in your JSX. You need to pass the required props to it. Based on the `NotificationProps` interface, here are the props you need to provide:

```jsx
<Notification
  isSignedIn={isSignedIn}
  onSignIn={handleSignIn}
  isSigningIn={isSigningIn}
  address={userAddress}
  refetchInterval={15000} // Optional, defaults to 15000ms
  filters={notificationFilters} // Optional
  portalContainerDesktop={desktopContainer} // Optional
  portalContainerMobile={mobileContainer} // Optional
  enablePopupTxTypes={popupTxTypes} // Optional
/>
```

* `isSignedIn`: A boolean indicating if the user is signed in.
* `onSignIn`: A callback function to handle sign-in actions.
* `isSigningIn`: A boolean indicating if the sign-in process is ongoing.
* `address`: The user's address (optional).
* `refetchInterval`: The interval for refetching notifications (optional).
* `filters`: Filters for customizing notification display (optional).
* `portalContainerDesktop`: Container for desktop notifications (optional).
* `portalContainerMobile`: Container for mobile notifications (optional).
* `enablePopupTxTypes`: Specifies transaction types for popup notifications (optional).

## 3. Define the Required Props

Ensure you have the necessary state and functions defined in your component to pass as props to the `Notification` component. For example:

```jsx
const [isSignedIn, setIsSignedIn] = useState(false);
const [isSigningIn, setIsSigningIn] = useState(false);
const userAddress = '0x123...'; // Example address
const handleSignIn = () => {
  // Sign-in logic here
};
const notificationFilters = {}; // Define your filters
const desktopContainer = document.getElementById('desktop-notifications');
const mobileContainer = document.getElementById('mobile-notifications');
const popupTxTypes = {}; // Define your popup transaction types
```

## 4. Render the Component

Finally, render the `Notification` component within your application’s component tree where you want the notifications to appear.

## 5. Notification Behavior

This component renders a notification bell when the user connects their wallet. The notification will appear once the wallet address is defined.

The notifications will be fetched from the server only after the user signs in to the Haven1 SDK. Ensure that the `useSignIn` hook is properly implemented to manage the sign-in state and trigger the fetching of notifications. For more information on how to use the `useSignIn` hook, refer to the Haven1 SDK documentation.

By following these steps, you should be able to integrate the `Notification` component into your React UI effectively.


# Check Proof of Identity (POI) Status

This guide provides an example of how to check if a user is POI active by verifying that the user's ProofOfIdentity balance is more than 0 and that the user is not suspended.

## Example Code

```typescript
import { ProofOfIdentityContract as ProofOfIdentityContractSDK } from '@haven1/blockchain-sdk/contract';
import { useReadContracts } from 'wagmi';
import { Address } from 'viem';

type CheckPOIStatusParameters = {
  address: Address;
  contractAddress: Address;
  chainId: number;
};

export const checkPOIStatus = async ({
  address,
  contractAddress,
  chainId,
}: CheckPOIStatusParameters) => {
  const { data: poiResult, isLoading, isError } = useReadContracts({
    contracts: [
      {
        address: contractAddress,
        chainId,
        abi: ProofOfIdentityContractSDK.abi,
        functionName: 'balanceOf',
        args: [address],
      },
      {
        address: contractAddress,
        chainId,
        abi: ProofOfIdentityContractSDK.abi,
        functionName: 'isSuspended',
        args: [address],
      },
    ],
  });

  if (isLoading) {
    console.log('Loading POI status...');
    return;
  }

  if (isError) {
    console.error('Error fetching POI status');
    return;
  }

  const balance = poiResult?.[0]?.result;
  const isSuspended = poiResult?.[1]?.result;

  if (balance > 0 && !isSuspended) {
    console.log('User is POI active');
  } else {
    console.log('User is not POI active');
  }
};
```

## Usage

```typescript
const params = {
  address: '0xUserAddress',
  contractAddress: '0xContractAddress',
  chainId: Haven1Testnet,
};

checkPOIStatus(params);
```

This example demonstrates how to use the `checkPOIStatus` function to verify if a user is POI active by checking their balance and suspension status.

## Example Code using ProofOfIdentity wagmi wrap Contract hook

```typescript
import { ProofOfIdentity } from '@haven1/wagmi-sdk/contract';
import { useEffect } from 'react';

const CheckPOIStatusWithHook = ({ address, contractAddress, chainId }) => {
  const { data, isLoading, isError } = ProofOfIdentity({
    address,
    contractAddress,
    chainId,
  });

  useEffect(() => {
    if (isLoading) {
      console.log('Loading POI status...');
      return;
    }

    if (isError) {
      console.error('Error fetching POI status');
      return;
    }

    const { balance, isSuspended } = data;

    if (balance > 0 && !isSuspended) {
      console.log('User is POI active');
    } else {
      console.log('User is not POI active');
    }
  }, [data, isLoading, isError]);

  return null;
};
```

## Usage

```typescript
const params = {
  address: '0xUserAddress',
  contractAddress: '0xContractAddress',
  chainId: Haven1Testnet,
};

<CheckPOIStatusWithHook {...params} />;
```

This example demonstrates how to use the `useProofOfIdentity` hook to verify if a user is POI active by checking their balance and suspension status.

### Contract Addresses

Here are the contract addresses for different environments:

#### **Proof** of **identity** V1

* devnet: `0xd635521BA9c5694a2237EA94f2455aBfdDF41ef9`
* testnet: `0xDb5ecc06e7C82d3ed4dBA699b8E8D0433A3ED729`

#### Proof of identity V2&#x20;

* devnet: `0x89B63B0698b03B01F7b75f0e1973DE6270D89dA5`
* testnet: `N/A`


# Oracles on Haven1

Learn how Haven1 integrates oracles for secure and reliable off-chain data.

{% embed url="<https://testnet.haven1.org/blog/haven1-accelerates-preparation-for-mainnet-with-new-oracle-partner-redstone>" %}

[Redstone](https://www.redstone.finance/) provides oracles on Haven1 Mainnet.

These are the contract addresses on Testnet.&#x20;

```
{
    "multiFeedAdapter": "0x44A08F3ba0E894169b3B88f048D5D61dBB5F541D",
    "priceFeeds": {
        "eth": "0x8A9F6d236f81458f00BE46b1A6Db844D6acb8Ba2",
        "usdc": "0xa64c65916dBAa8cA6d51FE9E27ff5eA36463C113",
        "usdt": "0xEE7aDF78a6dDCcBFBfA01f1132f3fa2160aF83a2",
        "wbtc": "0xD3443579f2fB2d0a3eAe80c2CC986861F1D78634"
    }
}
```

Mainnet oracle deployment will be pursued post mainnet launch in 2025 Q2


# Subgraph on Haven1

Query blockchain data efficiently using The Graph’s subgraph technology on Haven1.

Haven1 has an existing relationship with Ormi Labs.

You can use our subgraphs or deploy your own at <https://subgraph.haven1.org>


# Haven1 block explorer

The Haven1 blockchain explorer and analytics platform are specifically designed for the Haven1 network.

### [Haven1 Explorer](https://explorer.haven1.org/) (Blockscout-based chain explorer)[​](https://developer.arbitrum.io/for-devs/dev-tools-and-resources/monitoring-tools-block-explorers#arbiscan-etherscan-based-chain-explorer) <a href="#arbiscan-etherscan-based-chain-explorer" id="arbiscan-etherscan-based-chain-explorer"></a>

The Haven1 blockchain explorer and analytics platform are specifically designed for the Haven1 network. With Haven1 Explorer, users can easily analyze public data on the Haven1 network, including transactions, wallet addresses, and smart contracts.

Developed by the team behind Blockscout, this self-contained platform aims to enhance the accessibility of the Haven1 blockchain for everyday users. Haven1 Explorer empowers users to gain insights into their blockchain interactions, detect potentially suspicious activities, and directly engage with smart contracts.


# Web3 libraries and tools

A curated list of Web3 libraries to enhance development on Haven1.

The following frameworks will help you build your applications:

#### Ethers[​](https://developer.arbitrum.io/for-devs/dev-tools-and-resources/web3-libraries-tools#ethers).js <a href="#ethers" id="ethers"></a>

[Ethers.js](https://docs.ethers.org/) is a comprehensive and compact library that facilitates seamless interaction with Ethereum, Arbitrum, and other EVM-compatible blockchains and their ecosystems. It provides a **one-stop solution for decentralized application development** with features like secure client-side private key management, compatibility with different nodes, and integration with ENS names.&#x20;

The library supports JSON wallet import/export, BIP 39 mnemonic phrases, and HD wallets while maintaining a lightweight footprint. Ethers.js also offers extensive documentation, full TypeScript support, and a generous collection of test cases, all under the open-source MIT License.

#### Web3.js[​](https://developer.arbitrum.io/for-devs/dev-tools-and-resources/web3-libraries-tools#web3js) <a href="#web3js" id="web3js"></a>

[Web3.js](https://github.com/web3/web3.js/) is a **versatile JavaScript library** that empowers developers to interact with Ethereum, Arbitrum, and other EVM-compatible nodes through HTTP, IPC, or WebSocket protocols. It simplifies tasks such as sending Ether, checking smart contract data, and creating contracts.&#x20;

Serving as a JavaScript binding for the JSON RPC interface, web3.js is easy to use in popular web browsers, server-side Node.js applications, and Electron-based apps. It is often paired with the MetaMask browser extension, enabling developers to create decentralized applications and manage transactions directly from their preferred browser.

#### Web3.py[​](https://developer.arbitrum.io/for-devs/dev-tools-and-resources/web3-libraries-tools#web3py) <a href="#web3py" id="web3py"></a>

[Web3.py](https://github.com/ethereum/web3.py/) is a Python library specifically designed for interacting with Ethereum, Arbitrum, and other EVM-compatible blockchains. It is widely used in decentralized applications (dApps) to handle transactions, work with smart contracts, and access block data.&#x20;

Initially derived from the web3.js JavaScript API, web3.py has evolved to cater to the needs of Python developers. The library enables users to develop clients for reading and writing data on the blockchain, including interactions with smart contracts, making it **a versatile tool for Ethereum-based applications**.\
\
\
**Web3-Onboard**

[Web3-Onboard](https://onboard.blocknative.com/) is an open-source, framework-agnostic **JavaScript library** to onboard users to web3 apps. The platform provides a range of tools and services to simplify the process of integrating and interacting with blockchain networks. It offers **customizable user interfaces** and **pre-built components** that can be easily integrated into applications, streamlining the user onboarding process. Additionally, Onboard provides robust documentation and developer resources to support **efficient integration** and ensure a smooth user experience.

With Onboard, developers can leverage advanced features such as multi-chain support and wallet connectivity, enabling seamless interactions with various blockchain networks. The platform also offers user-friendly authentication methods, simplifying the account creation and login processes. By utilizing Onboard, businesses can provide their users with a **user-friendly and intuitive onboarding experience**, reducing friction and increasing user adoption in the blockchain ecosystem.&#x20;


# Development frameworks

Discover recommended frameworks for building decentralized applications on Haven1.

The following tools will help you develop and test your applications:

### Hardhat[​](https://developer.arbitrum.io/for-devs/dev-tools-and-resources/development-frameworks#hardhat) <a href="#hardhat" id="hardhat"></a>

[Hardhat](https://hardhat.org/) is a comprehensive development environment designed specifically for Ethereum, Arbitrum, and EVM developers. It aims to streamline the process of creating, compiling, deploying, testing, and debugging smart contracts. Its robust and customizable framework simplifies the management of complex projects and enables integration with other ecosystem tools.&#x20;

Notable features include:

* A built-in console
* Advanced debugging capabilities
* Support for extending functionality through plugins

### Foundry[​](https://developer.arbitrum.io/for-devs/dev-tools-and-resources/development-frameworks#foundry) <a href="#foundry" id="foundry"></a>

[Foundry](https://github.com/foundry-rs/foundry) serves as a high-performance, portable and modular toolkit for EVM application development, using the Rust programming language. It streamlines the creation, testing, and deployment of smart contracts on Ethereum, Arbitrum and any EVM network.&#x20;

Notable features include:&#x20;

* Seamless interaction with EVM smart contracts, transactions and chain data&#x20;
* A local node&#x20;
* A user-friendly Solidity REPL environment for efficient development

### Truffle[​](https://developer.arbitrum.io/for-devs/dev-tools-and-resources/development-frameworks#truffle) <a href="#truffle" id="truffle"></a>

[Truffle](https://trufflesuite.com/) provides a comprehensive suite of tools for building, testing, debugging, and deploying on Ethereum, Arbitrum, and other EVM-compatible chains.&#x20;

Notable features include:

* Advanced debugging capabilities
* Fast EVM simulation with Ganache
* A user-centered design featuring a VS Code extension
* Robust support for L1 and L2 solutions
* Collaboration with ConsenSys Diligence to boost security for projects

### Brownie[​](https://developer.arbitrum.io/for-devs/dev-tools-and-resources/development-frameworks#brownie) <a href="#brownie" id="brownie"></a>

[Brownie](https://github.com/eth-brownie/brownie) is a Python-based framework designed specifically for developing and testing smart contracts on the Ethereum Virtual Machine. It offers full support for Solidity and Vyper programming languages and utilizes pytest for contract testing.&#x20;

Notable features include:&#x20;

* Trace-based coverage evaluation
* Property-based and stateful testing with Hypothesis
* Powerful debugging tools, e.g. Python-style tracebacks and custom error strings


# Using hPassport in Your hApps

Learn how to integrate Haven1's hPassport for secure, verified user interactions in your hApp. Enable identity verification, personalised user experiences, and enhanced security using hPassport NFTs

[**What is hPassport?**](/products/provable-identity-framework)

[**Direct link to sample applications that personalise UX based on hPassport**](https://testnet.haven1.org/spotlight)

## Overview

**hPassport** is a non-transferable Proof of Identity NFT that verifies user identity on Haven1. It ensures that all on-chain transactions are conducted by trusted and verified users. This system enhances hApp security, enables personalized user experiences, and helps developers create compliant and secure applications while protecting user privacy.

## Key Benefits of Integrating hPassport

* **Verified Interactions**: Ensure only verified users interact with your hApp, minimizing risks and preventing fraud.
* **Personalized Experiences**: Tailor the user experience using anonymized data stored in the **hPassport**.
* **Security**: hPassport enforces identity verification, making it easier to comply with KYC/AML requirements for regulated markets.
* **Easy Integration**: You can verify identities and personalize experiences with minimal code, leveraging Haven1's built-in smart contract framework.

***

### hPassport Case Studies

To begin integrating **hPassport** into your hApp, follow the examples above and explore more API references in this document. You'll find code samples, smart contract functions, and tips for personalizing user journeys with hPassport

### **Case Study 1: Blockchain-Based Tokenized Property Transaction Platform**

**Background**: A platform aimed to facilitate property transactions using blockchain technology, where properties were tokenized as digital assets.

**Challenge**: The platform required a secure and transparent method to verify property buyers and sellers to prevent fraud and ensure legal compliance in property transactions.

**Solution**:

* Integrated <mark style="color:purple;">`issueIdentity`</mark> to verify and authenticate the identities of property buyers and sellers, issuing Proof of Identity NFTs upon successful verification.
* Used smart contracts to handle the transfer of property tokens, ensuring that only verified users could initiate and complete transactions.
* Leveraged <mark style="color:purple;">`getCountryCode`</mark> to ensure compliance with regional real estate laws and regulations, adapting the transaction process based on the location of the property and participants.

**Outcome**: The platform successfully streamlined property transactions, ensuring security, legal compliance, and user authenticity. This approach increased trust in the platform and opened new opportunities for property investment and ownership transfer.

***

### **Case Study 2: Implementing Treasury Bills (T-Bills) on Chain**

**Background**: A financial services company sought to issue and trade Treasury Bills (T-Bills) on a blockchain platform to enhance transparency and accessibility.

**Challenge**: Needed to ensure that only accredited investors could participate in T-Bill transactions, complying with financial regulations.

**Solution**:

* Implemented <mark style="color:purple;">`issueIdentity`</mark> for investor verification, issuing Proof of Identity NFTs to accredited investors after thorough KYC checks.
* Designed smart contracts to manage the issuance, trading, and redemption of T-Bills, incorporating checks such as <mark style="color:purple;">`getUserType`</mark> to ensure participation was limited to verified institutional investors.
* Applied <mark style="color:purple;">`getCompetencyRating`</mark> to rate investors based on their transaction history and financial competency, adding an extra layer of trust and risk management.

**Outcome**: The platform enabled a more efficient and transparent T-Bill market, with enhanced security and regulatory compliance. This innovation attracted a wider range of investors and streamlined the process of investing in government securities.

***

### **Case Study 3: Education and Certification Platform**

**Background**: A blockchain platform aimed to offer and verify educational certificates.

**Challenge**: Needed to ensure that only students who have completed courses could claim certificates and that these certificates were tamper-proof.

**Solution**:

* Implemented <mark style="color:purple;">`issueIdentity`</mark> for students after verifying their academic credentials.
* Used smart contracts to issue blockchain-based certificates as NFTs post-course completion, which were linked to the student's verified identity.
* Applied <mark style="color:purple;">`getBoolAttribute`</mark> to check if a student had completed necessary courses before issuing certificates.

**Outcome**: The platform successfully created a tamper-proof, verifiable system for educational credentials, adding value and credibility to the certifications issued.


# Integrating hPassport into Your hApp

Sample smart contract interactions for provable identity applications on Haven1.

### 1. Retrieve User Attributes from hPassport

When a user interacts with your hApp, you can retrieve various attributes from their **hPassport** to verify identity or personalize the experience.

**Example: Retrieve the User's Primary Identity**

```solidity
solidityCopy code// Retrieve the user’s primary identity
(bool primaryID, uint256 expiry, uint256 updatedAt) = proofOfIdentity.getPrimaryID(userAddress);

// Ensure the user is verified
require(primaryID, "User is not verified.");
```

**Example: Retrieve the User's Country of Residence Code**

```solidity
solidityCopy code// Retrieve the user’s country code
(string memory countryCode, uint256 expiry, uint256 updatedAt) = proofOfIdentity.getCountryCode(userAddress);
```

### 2. Enforcing Identity Verification in Smart Contracts

To ensure only verified users can interact with your contract, check their hPassport before executing any logic. Here's how you can implement this in your contract:

```solidity
solidityCopy codepragma solidity ^0.8.0;

import { IProofOfIdentity } from "./IProofOfIdentity.sol";

contract VerifiedAuction {

    IProofOfIdentity proofOfIdentity;

    constructor(address _proofOfIdentity) {
        proofOfIdentity = IProofOfIdentity(_proofOfIdentity);
    }

    modifier onlyVerified(address user) {
        (bool primaryID,,) = proofOfIdentity.getPrimaryID(user);
        require(primaryID, "User is not verified.");
        _;
    }

    function placeBid() external onlyVerified(msg.sender) {
        // auction logic here
    }
}
```

### 3. Personalizing User Experiences Based on hPassport Attributes

You can personalize the experience for users based on the anonymized data available on their **hPassport**. For example, you can restrict certain features based on a user's county of residence, or other attributes.

**Example: Regional Restriction**

```solidity
solidityCopy code// Retrieve the user’s country code
(string memory countryCode,,) = proofOfIdentity.getCountryCode(userAddress);

// Check if the user is from an allowed country
require(keccak256(abi.encodePacked(countryCode)) == keccak256(abi.encodePacked("US")), "Service not available in your country.");
```

### 4. Handling Suspended Users

To prevent suspended users from interacting with your hApp, you can check the suspension status of the user's hPassport:

```solidity
solidityCopy code// Check if user account is suspended
bool isSuspended = proofOfIdentity.isSuspended(userAddress);
require(!isSuspended, "User account is suspended.");
```

### 5. Multiple Account Support

hPassport allows verified users to have multiple wallets, linking their identity to both a primary account and auxiliary accounts. You can retrieve the auxiliary accounts linked to a user’s hPassport as follows:

```solidity
solidityCopy code// Retrieve auxiliary accounts linked to a principal account
address[] memory auxAccounts = proofOfIdentity.auxiliaryAccounts(principalAddress);
```

***

## hPassport API Reference

Below are the key functions available in the **hPassport** contract:

#### Identity Verification Functions

* **getPrimaryID(address account)**: Returns a boolean indicating if the user is verified, along with the expiration and last update timestamp.

  ```solidity
  solidityCopy code(bool primaryID, uint256 expiry, uint256 updatedAt) = proofOfIdentity.getPrimaryID(userAddress);
  ```
* **getCountryCode(address account)**: Retrieves the user’s country code (stored as a string).

  ```solidity
  solidityCopy code(string memory countryCode, uint256 expiry, uint256 updatedAt) = proofOfIdentity.getCountryCode(userAddress);
  ```
* **getProofOfLiveliness(address account)**: Retrieves whether the user has passed proof of liveliness checks.

  ```solidity
  solidityCopy code(bool liveliness, uint256 expiry, uint256 updatedAt) = proofOfIdentity.getProofOfLiveliness(userAddress);
  ```
* **getUserType(address account)**: Retrieves the type of user (e.g., retail, institution).

  ```solidity
  solidityCopy code(uint256 userType, uint256 expiry, uint256 updatedAt) = proofOfIdentity.getUserType(userAddress);
  ```
* **isSuspended(address account)**: Checks if the user’s hPassport is suspended.

  ```solidity
  solidityCopy codebool suspended = proofOfIdentity.isSuspended(userAddress);
  ```

#### Auxiliary Account Functions

* **auxiliaryAccounts(address principal)**: Returns auxiliary accounts linked to the principal account.

  ```solidity
  solidityCopy codeaddress[] memory auxAccounts = proofOfIdentity.auxiliaryAccounts(principalAddress);
  ```

***

### Example Use Case: Auction with Verified Users

This example demonstrates how to build an auction application that only allows verified users to participate. The auction uses hPassport to ensure that only users with a verified identity can place bids.  This directory contains this example contract

[**AuctionPOI.sol**](https://github.com/haven1network/proof-of-identity-hackathon/blob/main/contracts/proof-of-identity/examples/AuctionPOI.sol): This contract is an implementation of an NFT auction system. It uses the `userType` of an account to permission the auction process, showcasing how user identity attributes can govern smart contract functionalities.

```solidity
solidityCopy codepragma solidity ^0.8.0;

import { IProofOfIdentity } from "./IProofOfIdentity.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol";
import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";

contract VerifiedAuction is ReentrancyGuardUpgradeable {

    IProofOfIdentity proofOfIdentity;
    IERC721Upgradeable nft;
    address highestBidder;
    uint256 highestBid;
    uint256 auctionEndTime;

    constructor(address _proofOfIdentity, address _nft) {
        proofOfIdentity = IProofOfIdentity(_proofOfIdentity);
        nft = IERC721Upgradeable(_nft);
    }

    modifier onlyVerified(address user) {
        (bool primaryID,,) = proofOfIdentity.getPrimaryID(user);
        require(primaryID, "User is not verified.");
        _;
    }

    function placeBid() external payable onlyVerified(msg.sender) {
        require(msg.value > highestBid, "Bid too low.");
        require(block.timestamp < auctionEndTime, "Auction has ended.");

        // Refund the previous highest bidder
        if (highestBidder != address(0)) {
            payable(highestBidder).transfer(highestBid);
        }

        highestBid = msg.value;
        highestBidder = msg.sender;
    }

    function endAuction() external {
        require(block.timestamp >= auctionEndTime, "Auction not ended.");
        nft.transferFrom(address(this), highestBidder, 1);
    }
}
```

#### Important Notes

* **Demonstration Purpose**: These contracts incorporate many Solidity best practices but are intended for demonstration purposes only.
* **Production Considerations**:
  * The `bid` function in `AuctionPOI.sol` (line 280) should include a reentrancy guard in a production environment.
  * The transfer of H1 tokens in `AuctionPOI.sol` (lines 454 and 468) should be approached with caution, avoiding optimistic transfers in most cases.

#### Identity Verification Checks

Both contracts include explicit checks for:

* The presence of an account’s ID NFT.
* The suspended status of the account.

In the Haven1 network, these checks would typically be redundant as the network itself restricts transactions for accounts without an ID NFT or with a suspended status. However, they are included in these examples for educational purposes.

#### Testing

Example tests for both contracts are available in the directory: `test/proof-of-identity/examples`. These tests can be used as a reference for developing and validating your own contracts that interact with the hPassport.


# Implementing Identity Checks in Smart Contracts

Step-by-step guide on integrating identity verification in smart contracts.

1. **Contract Setup**: Start by defining the `OPERATOR_ROLE` in your contract, which is crucial for managing permissions within your smart contract. Ensure that your contract correctly initializes and interacts with the Proof of Identity contract.
2. **Issuing Identity with** `issueIdentity`:
   * Understand and implement the `issueIdentity` function. This is a critical function for creating a Proof of Identity NFT for verified users.
   * Parameters like `primaryID`, `countryCode`, `userType`, and `expiries` need to be correctly set based on the user’s verified information.
   * The `uri` parameter can link to additional information about the user, stored off-chain for privacy.
3. **Attribute Management**:
   * Utilize attribute-related functions such as `setStringAttribute` and `setBoolAttribute` to assign specific characteristics to a user's profile.
   * These attributes could range from basic personal information to more complex data relevant to your application, like accreditation status or membership details.<br>

<mark style="background-color:green;">**Implementing Identity Verification in Smart Contracts**</mark>

1. **Fetching and Validating Token IDs**:
   * Leverage `tokenID(address account)` to retrieve the token ID linked to a user's identity. This ID is fundamental for verifying if a user has undergone the necessary identity checks.
   * Implement logic to handle scenarios where a token ID might not exist or be invalid.
2. **Utilizing Identity Attributes in Contract Logic**:
   * **Country Code Validation**: Employ `getCountryCode` for geo-specific logic, such as restricting or allowing transactions based on the user's location.
   * **User Competency**: Integrate `getCompetencyRating` to evaluate if a user meets certain skill or competency criteria, essential in specialized applications.
   * **User Type Differentiation**: Use `getUserType` to categorize users into different groups like retail or institutional, and modify the contract's behavior accordingly.
3. **Integrating Attribute-Based Access Control**:
   * Design your smart contract functions to check for specific attributes before allowing transaction execution. This ensures that only qualified or authorized users can perform certain actions within your contract.
   * Use events like `AttributeSet` and `IdentityIssued` to keep track of changes in user attributes and identities.

\ <mark style="background-color:blue;">**Advanced Contract Features**</mark>

1. **Handling Token URI Updates**:
   * Implement the `setTokenURI` function to update the metadata or information linked to a user’s Proof of Identity NFT.
   * This allows for dynamic updates to a user's profile or identity information while maintaining the integrity of the NFT.
2. **Custom Attribute Integration**:
   * Go beyond the standard attributes and implement custom attributes relevant to your application. This could include user preferences, historical transaction data, or other relevant information.
   * Use functions like `setU256Attribute` or `setBytesAttribute` for custom data types.
3. **Error Handling and Security**:
   * Ensure your contract properly handles potential errors such as `ProofOfIdentity__InvalidAttribute` or `ProofOfIdentity__AlreadyVerified`.
   * Implement security measures to protect against unauthorized access or manipulation of user identity information.


# Country codes

Reference for country codes used in Haven1’s identity verification system.

| Country                                                    | Alpha-2 code |
| ---------------------------------------------------------- | ------------ |
| Afghanistan                                                | AF           |
| Albania                                                    | AL           |
| Algeria                                                    | DZ           |
| American Samoa                                             | AS           |
| Andorra                                                    | AD           |
| Angola                                                     | AO           |
| Anguilla                                                   | AI           |
| Antarctica                                                 | AQ           |
| Antigua and Barbuda                                        | AG           |
| Argentina                                                  | AR           |
| Armenia                                                    | AM           |
| Aruba                                                      | AW           |
| Australia                                                  | AU           |
| Austria                                                    | AT           |
| Azerbaijan                                                 | AZ           |
| Bahamas (the)                                              | BS           |
| Bahrain                                                    | BH           |
| Bangladesh                                                 | BD           |
| Barbados                                                   | BB           |
| Belarus                                                    | BY           |
| Belgium                                                    | BE           |
| Belize                                                     | BZ           |
| Benin                                                      | BJ           |
| Bermuda                                                    | BM           |
| Bhutan                                                     | BT           |
| Bolivia (Plurinational State of)                           | BO           |
| Bonaire, Sint Eustatius and Saba                           | BQ           |
| Bosnia and Herzegovina                                     | BA           |
| Botswana                                                   | BW           |
| Bouvet Island                                              | BV           |
| Brazil                                                     | BR           |
| British Indian Ocean Territory (the)                       | IO           |
| Brunei Darussalam                                          | BN           |
| Bulgaria                                                   | BG           |
| Burkina Faso                                               | BF           |
| Burundi                                                    | BI           |
| Cabo Verde                                                 | CV           |
| Cambodia                                                   | KH           |
| Cameroon                                                   | CM           |
| Canada                                                     | CA           |
| Cayman Islands (the)                                       | KY           |
| Central African Republic (the)                             | CF           |
| Chad                                                       | TD           |
| Chile                                                      | CL           |
| China                                                      | CN           |
| Christmas Island                                           | CX           |
| Cocos (Keeling) Islands (the)                              | CC           |
| Colombia                                                   | CO           |
| Comoros (the)                                              | KM           |
| Congo (the Democratic Republic of the)                     | CD           |
| Congo (the)                                                | CG           |
| Cook Islands (the)                                         | CK           |
| Costa Rica                                                 | CR           |
| Croatia                                                    | HR           |
| Cuba                                                       | CU           |
| Curaçao                                                    | CW           |
| Cyprus                                                     | CY           |
| Czechia                                                    | CZ           |
| Côte d'Ivoire                                              | CI           |
| Denmark                                                    | DK           |
| Djibouti                                                   | DJ           |
| Dominica                                                   | DM           |
| Dominican Republic (the)                                   | DO           |
| Ecuador                                                    | EC           |
| Egypt                                                      | EG           |
| El Salvador                                                | SV           |
| Equatorial Guinea                                          | GQ           |
| Eritrea                                                    | ER           |
| Estonia                                                    | EE           |
| Eswatini                                                   | SZ           |
| Ethiopia                                                   | ET           |
| Falkland Islands (the) \[Malvinas]                         | FK           |
| Faroe Islands (the)                                        | FO           |
| Fiji                                                       | FJ           |
| Finland                                                    | FI           |
| France                                                     | FR           |
| French Guiana                                              | GF           |
| French Polynesia                                           | PF           |
| French Southern Territories (the)                          | TF           |
| Gabon                                                      | GA           |
| Gambia (the)                                               | GM           |
| Georgia                                                    | GE           |
| Germany                                                    | DE           |
| Ghana                                                      | GH           |
| Gibraltar                                                  | GI           |
| Greece                                                     | GR           |
| Greenland                                                  | GL           |
| Grenada                                                    | GD           |
| Guadeloupe                                                 | GP           |
| Guam                                                       | GU           |
| Guatemala                                                  | GT           |
| Guernsey                                                   | GG           |
| Guinea                                                     | GN           |
| Guinea-Bissau                                              | GW           |
| Guyana                                                     | GY           |
| Haiti                                                      | HT           |
| Heard Island and McDonald Islands                          | HM           |
| Holy See (the)                                             | VA           |
| Honduras                                                   | HN           |
| Hong Kong                                                  | HK           |
| Hungary                                                    | HU           |
| Iceland                                                    | IS           |
| India                                                      | IN           |
| Indonesia                                                  | ID           |
| Iran (Islamic Republic of)                                 | IR           |
| Iraq                                                       | IQ           |
| Ireland                                                    | IE           |
| Isle of Man                                                | IM           |
| Israel                                                     | IL           |
| Italy                                                      | IT           |
| Jamaica                                                    | JM           |
| Japan                                                      | JP           |
| Jersey                                                     | JE           |
| Jordan                                                     | JO           |
| Kazakhstan                                                 | KZ           |
| Kenya                                                      | KE           |
| Kiribati                                                   | KI           |
| Korea (the Democratic People's Republic of)                | KP           |
| Korea (the Republic of)                                    | KR           |
| Kuwait                                                     | KW           |
| Kyrgyzstan                                                 | KG           |
| Lao People's Democratic Republic (the)                     | LA           |
| Latvia                                                     | LV           |
| Lebanon                                                    | LB           |
| Lesotho                                                    | LS           |
| Liberia                                                    | LR           |
| Libya                                                      | LY           |
| Liechtenstein                                              | LI           |
| Lithuania                                                  | LT           |
| Luxembourg                                                 | LU           |
| Macao                                                      | MO           |
| Madagascar                                                 | MG           |
| Malawi                                                     | MW           |
| Malaysia                                                   | MY           |
| Maldives                                                   | MV           |
| Mali                                                       | ML           |
| Malta                                                      | MT           |
| Marshall Islands (the)                                     | MH           |
| Martinique                                                 | MQ           |
| Mauritania                                                 | MR           |
| Mauritius                                                  | MU           |
| Mayotte                                                    | YT           |
| Mexico                                                     | MX           |
| Micronesia (Federated States of)                           | FM           |
| Moldova (the Republic of)                                  | MD           |
| Monaco                                                     | MC           |
| Mongolia                                                   | MN           |
| Montenegro                                                 | ME           |
| Montserrat                                                 | MS           |
| Morocco                                                    | MA           |
| Mozambique                                                 | MZ           |
| Myanmar                                                    | MM           |
| Namibia                                                    | NA           |
| Nauru                                                      | NR           |
| Nepal                                                      | NP           |
| Netherlands (the)                                          | NL           |
| New Caledonia                                              | NC           |
| New Zealand                                                | NZ           |
| Nicaragua                                                  | NI           |
| Niger (the)                                                | NE           |
| Nigeria                                                    | NG           |
| Niue                                                       | NU           |
| Norfolk Island                                             | NF           |
| Northern Mariana Islands (the)                             | MP           |
| Norway                                                     | NO           |
| Oman                                                       | OM           |
| Pakistan                                                   | PK           |
| Palau                                                      | PW           |
| Palestine, State of                                        | PS           |
| Panama                                                     | PA           |
| Papua New Guinea                                           | PG           |
| Paraguay                                                   | PY           |
| Peru                                                       | PE           |
| Philippines (the)                                          | PH           |
| Pitcairn                                                   | PN           |
| Poland                                                     | PL           |
| Portugal                                                   | PT           |
| Puerto Rico                                                | PR           |
| Qatar                                                      | QA           |
| Republic of North Macedonia                                | MK           |
| Romania                                                    | RO           |
| Russian Federation (the)                                   | RU           |
| Rwanda                                                     | RW           |
| Réunion                                                    | RE           |
| Saint Barthélemy                                           | BL           |
| Saint Helena, Ascension and Tristan da Cunha               | SH           |
| Saint Kitts and Nevis                                      | KN           |
| Saint Lucia                                                | LC           |
| Saint Martin (French part)                                 | MF           |
| Saint Pierre and Miquelon                                  | PM           |
| Saint Vincent and the Grenadines                           | VC           |
| Samoa                                                      | WS           |
| San Marino                                                 | SM           |
| Sao Tome and Principe                                      | ST           |
| Saudi Arabia                                               | SA           |
| Senegal                                                    | SN           |
| Serbia                                                     | RS           |
| Seychelles                                                 | SC           |
| Sierra Leone                                               | SL           |
| Singapore                                                  | SG           |
| Sint Maarten (Dutch part)                                  | SX           |
| Slovakia                                                   | SK           |
| Slovenia                                                   | SI           |
| Solomon Islands                                            | SB           |
| Somalia                                                    | SO           |
| South Africa                                               | ZA           |
| South Georgia and the South Sandwich Islands               | GS           |
| South Sudan                                                | SS           |
| Spain                                                      | ES           |
| Sri Lanka                                                  | LK           |
| Sudan (the)                                                | SD           |
| Suriname                                                   | SR           |
| Svalbard and Jan Mayen                                     | SJ           |
| Sweden                                                     | SE           |
| Switzerland                                                | CH           |
| Syrian Arab Republic                                       | SY           |
| Taiwan (Province of China)                                 | TW           |
| Tajikistan                                                 | TJ           |
| Tanzania, United Republic of                               | TZ           |
| Thailand                                                   | TH           |
| Timor-Leste                                                | TL           |
| Togo                                                       | TG           |
| Tokelau                                                    | TK           |
| Tonga                                                      | TO           |
| Trinidad and Tobago                                        | TT           |
| Tunisia                                                    | TN           |
| Turkey                                                     | TR           |
| Turkmenistan                                               | TM           |
| Turks and Caicos Islands (the)                             | TC           |
| Tuvalu                                                     | TV           |
| Uganda                                                     | UG           |
| Ukraine                                                    | UA           |
| United Arab Emirates (the)                                 | AE           |
| United Kingdom of Great Britain and Northern Ireland (the) | GB           |
| United States Minor Outlying Islands (the)                 | UM           |
| United States of America (the)                             | US           |
| Uruguay                                                    | UY           |
| Uzbekistan                                                 | UZ           |
| Vanuatu                                                    | VU           |
| Venezuela (Bolivarian Republic of)                         | VE           |
| Viet Nam                                                   | VN           |
| Virgin Islands (British)                                   | VG           |
| Virgin Islands (U.S.)                                      | VI           |
| Wallis and Futuna                                          | WF           |
| Western Sahara                                             | EH           |
| Yemen                                                      | YE           |
| Zambia                                                     | ZM           |
| Zimbabwe                                                   | ZW           |
| Åland Islands                                              | AX           |


# Sample Application - Country ID

The Country ID App is an example application of hPassport, offering a unique approach to regional permissioning

{% hint style="info" %}
This guide details how to use the app, enabling developers and builders on the Haven1 network to customize user access based on geographical location, thus adhering to local compliance standards.
{% endhint %}

**Ready to explore?** [Navigate to the Country ID App.](https://testnet.haven1.org/spotlight/country-id)

### Step 1: Mint an NFT of your country’s flag <a href="#step-1-mint-an-nft-of-your-countrys-flag" id="step-1-mint-an-nft-of-your-countrys-flag"></a>

1. **Select your country's flag**: Initiate the process by choosing the flag that corresponds to your country of origin, as verified in Haven1’s network.
2. **Minting process**: Click the '*Mint*' button to mint the NFT of your country's flag. The Provable Identity Framework guarantees that this NFT is exclusively linked to your verified country of origin, ensuring the authenticity of your digital identity.
3. **Country-specific minting**: The system is configured to only allow the minting of your own country's flag, maintaining the integrity of the permissioning process and preventing the minting of flags from other countries.

<figure><img src="/files/VctlUSDs3ZmyqS5zrUcL" alt=""><figcaption></figcaption></figure>

### Step 2: View your transaction on Haven1 block explorer <a href="#step-2-view-your-transaction-on-haven1-block-explorer" id="step-2-view-your-transaction-on-haven1-block-explorer"></a>

1. **Transaction confirmation**: Once you mint your Flag NFT, the transaction is executed on the Haven1 network.
2. **View on block explorer**: Access the Haven1 Block Explorer to track the transaction details, including the secure transfer of your Flag NFT to your wallet.
3. **Unique minting feature**: Each Flag NFT is a one-time mint, ensuring its uniqueness and prohibiting repeat transactions.

***

### **Significance of the country ID app** <a href="#significance" id="significance"></a>

<details>

<summary><strong>Global adaptation and cultural alignment</strong></summary>

The app aligns user experiences with regional and cultural specifics, enhancing global adaptation.

</details>

<details>

<summary><strong>Enhanced trust with verification</strong></summary>

Utilizes NFTs linked to users' countries of origin, bolstering authenticity and transparency.

</details>

<details>

<summary><strong>Market expansion and international engagement</strong></summary>

Simplifies entry into new markets and engagement with an international user base through localized features.

</details>

<details>

<summary><strong>Innovation and connectivity</strong></summary>

Acts as a transformative tool in the Haven1 ecosystem, fostering global digital connectivity and expanding the scope of digital applications.

</details>

\
The Country ID App is an innovative tool within Haven1's Provable Identity Framework that seamlessly integrates regional permissioning with blockchain technology. By following this guide, users can efficiently mint their country-specific Flag NFT and utilize the Haven1 Block Explorer to verify transactions, thereby ensuring compliance with regional standards and enhancing their digital identity within the Haven1 network.


# Sample Application - Composable verification level

The Verification Level App demonstrates how you can personalise the user experience on your application based on level of ID verification

{% hint style="info" %}
This guide will help you understand how to use the app, enabling you to engage with different functionalities based on your verification level, thereby enhancing security and trust within the digital environment.
{% endhint %}

**Interested in exploring how this works in practice**? [Discover more in the Composable Verification Level App](https://www.haven1.org/spotlight/composable-verification-level).

### **Step 1: Mint your silver tokens**

1. **Understanding mint Info**: Navigate to the right-hand section of the app to view your Silver balance and daily allowance of Silver tokens. The allowance amount varies based on your verification level.
2. **Minting process**: Select the desired amount of Silver tokens you want to mint and click the '*Mint*' button.

<figure><img src="/files/rhvwYwSYLai5CEGuKsQK" alt=""><figcaption></figcaption></figure>

### **Step 2: Check your updated balance**

1. **Balance update**: After minting, your updated Silver token balance will be displayed in the Mint Info section.
2. **Daily allowance limits**: Note that your ability to mint Silver tokens is limited by a daily allowance, which resets 24 hours after your last minting action.

<figure><img src="/files/PPCYuGkXLBIWhqh3Cd2Y" alt=""><figcaption></figcaption></figure>

***

### **Significance of the verification level app**

<details>

<summary><strong>Layered security protocols</strong></summary>

Different verification levels allow for a secure digital environment, restricting access to sensitive features or data based on user verification status.

</details>

<details>

<summary><strong>Personalized user experiences</strong></summary>

Developers can offer unique experiences and functionalities at different verification levels, enhancing user engagement.

</details>

<details>

<summary><strong>Targeted marketing and enhanced services</strong></summary>

This stratification allows for tailored marketing strategies and services, improving effectiveness and user satisfaction.

</details>

<details>

<summary><strong>Improved data quality and insights</strong></summary>

Higher verification levels incentivize users to provide accurate information, improving data quality and offering valuable analytics for developers.

</details>

<details>

<summary><strong>Community trust and app reputation</strong></summary>

A robust verification system enhances the app’s reputation for security and reliability, fostering a sense of trust and community among users

</details>

The Composable Verification Level App is a transformative tool in Haven1’s ecosystem, enabling developers to customize user experiences based on verification levels. By following this guide, users can effectively mint Silver tokens and understand their verification level, which plays a crucial role in accessing various functionalities within the digital platform. This system not only secures the digital environment but also builds a foundation of trust and enhances user interactions on multiple levels.<br>


# Sample Application - User type

The User Type App is a sample app built to demonstrate how anonymous data stored on hPassport can be used to personalise the user experience on your application

{% hint style="info" %}
This guide will help you understand how to utilize the app effectively, enabling developers to craft experiences that cater specifically to the unique needs of each user category.
{% endhint %}

### **Step 1: Mint gold tokens**

1. **Understanding swap info**: Check the right-hand section of the app for details on swap specifics, including your verification level and the exchange rate, which differs between Individual and Institutional accounts.
2. **Swap process**: Convert your Silver tokens into Gold Tokens by selecting the amount you wish to swap and confirming the transaction. Note that this is a one-way process, and Gold Tokens cannot be converted back into Silver Tokens.

<figure><img src="/files/RfODvMZh0jg51aJd3BUz" alt=""><figcaption></figcaption></figure>

### **Step 2: Check your updated balance**

1. **Balance update**: After the swap, your new Gold token balance will be displayed in the Swap Info section.
2. **Replenishing Silver tokens**: If you run out of Silver tokens, return to the Verification Level app to mint more, and then come back to convert them into Gold.

<figure><img src="/files/RX5GlKHuUQkuw8feNazp" alt=""><figcaption></figcaption></figure>

***

### **Significance of the user type app**

<details>

<summary><strong>Customized user journeys</strong></summary>

Allows developers to create distinct and tailored paths for Individuals and Institutions, enhancing user experience and engagement.

</details>

<details>

<summary>E<strong>nhanced engagement strategies</strong></summary>

Segment-specific strategies improve user experiences and foster platform loyalty.

</details>

<details>

<summary><strong>Optimized resource allocation</strong></summary>

Developers can efficiently allocate resources to features and services most valued by each user group.

</details>

<details>

<summary><strong>Innovative feature development</strong></summary>

Encourages the creation of unique features that resonate with the distinct needs of each user type.

</details>

<details>

<summary><strong>Deepened user insights</strong></summary>

Offers valuable data on user behavior and preferences, aiding developers in making informed decisions to enhance the app’s offerings.

</details>

The User type app in Haven1’s Provable Identity Framework is a dynamic tool that enables developers to create bespoke digital experiences for different user categories. By following this guide, users can effectively mint Gold tokens and navigate the app, leveraging its capabilities to maximize their interaction with the Haven1 ecosystem. This app not only enhances user engagement but also provides a foundation for more targeted and efficient service delivery, aligning perfectly with each user’s specific requirements.


# Repository Information

Access Haven1’s open-source identity verification repositories.

### Repository Information

This repository serves as a vital resource for developers and builders in the Haven1 ecosystem. It encompasses a range of key features, each with their specific file paths and direct links for easy access. Here's an organized list for convenience:8

<table><thead><tr><th>Feature</th><th width="253">Path</th><th>Link</th></tr></thead><tbody><tr><td><code>ProofOfIdentity</code> contract</td><td><code>contracts/proof-of-identity/ProofOfIdentity.sol</code></td><td><a href="https://github.com/haven1network/proof-of-identity-hackathon/blob/main/contracts/proof-of-identity/ProofOfIdentity.sol">Link</a></td></tr><tr><td>Examples</td><td><code>contracts/proof-of-identity/examples/*</code></td><td><a href="https://github.com/haven1network/proof-of-identity-hackathon/tree/main/contracts/proof-of-identity/examples">Link</a></td></tr><tr><td>Tests</td><td><code>test/proof-of-identity/*</code></td><td><a href="https://github.com/haven1network/proof-of-identity-hackathon/tree/main/test/proof-of-identity">Link</a></td></tr><tr><td>Documentation</td><td><code>docs</code></td><td><a href="https://github.com/haven1network/proof-of-identity-hackathon/tree/main/docs/proof-of-identity">Link</a></td></tr><tr><td>Utils</td><td><code>utils</code></td><td><a href="https://github.com/haven1network/proof-of-identity-hackathon/tree/main/utils">Link</a></td></tr><tr><td>Templates</td><td><code>templates</code></td><td><a href="https://github.com/haven1network/proof-of-identity-hackathon/tree/main/templates">Link</a></td></tr></tbody></table>

All contracts have been extensively commented to aid in understanding the Haven1 Passport.

### Setting up a development environment

#### Installation Steps

Ensure that you have NodeJS installed on your system as it is essential for running and testing the framework.

#### Installation Steps

1. **Clone the Repository**: Start by cloning the repository to your local machine. This will give you access to all necessary files and documentation.

   ```bash
   git clone git@github.com:haven1network/proof-of-identity-hackathon.git
   ```
2. **Navigate to the Directory**: After cloning, change your current directory to the newly cloned repository.

   ```bash
   cd proof-of-identity
   ```
3. **Install Dependencies**: Install all required dependencies to ensure your environment is ready for development.

   ```bash
   npm i
   ```

This setup will provide you with all the tools and resources needed to develop and test applications utilizing Haven1's Passport. For additional guidance and documentation, refer to the repository's documentation section.


# Application fees

Monetizing your dApps with minimal effort on Haven1

### **Introduction**

Haven1’s **application fee** design offers a straightforward and powerful way for developers to monetize their decentralized applications (dApps). Unlike traditional gas models that send fees to validators, Haven1 empowers developers by allowing them to earn **80% of the fees** generated by their applications. This provides a sustainable and developer-friendly revenue stream while still supporting the infrastructure that powers the network.

Whether you’re building a game, a DeFi product, or a marketplace, **Haven1’s application fee model** enables you to monetize specific features with **just one line of code**, giving you the flexibility to control what you charge for and how you charge.

***

### **How It Works**

The application fee system on Haven1 is designed to be simple and customizable. Developers can charge users for specific actions or interactions within their dApp, ensuring they capture the value of their application in a transparent and direct way.

Here’s how you can get started:

1. **Define the Actions You Want to Charge For**\
   Developers can be as opinionated as they want when it comes to monetization. You can choose to make certain actions free and others paid. For example:
   * Allow free deposits but charge for withdrawals.
   * Offer a few free interactions (e.g., 10 free trades), then charge for the next ones.
   * Monetize premium features within your app, such as unlocking new levels or exclusive content.
2. **Set a Dollarized Fee**\
   The fee you set is **denominated in USD**, but users pay it in **$H1 tokens**. This ensures predictable revenue stream for you, as the dollarised amount remains consistent regardless of $H1’s volatility.
3. **Fee Split: 80/20**
   * **80% of the fees** go directly to you, the developer, rewarding you for the value your application brings to the ecosystem.
   * **20% of the fees** go to the Haven1 network to support infrastructure, validators, and ecosystem growth.

***

### **Why Use Haven1’s Application Fees?**

Haven1’s application fee model stands out by offering:

* **Simple Monetization**: With just one line of code, you can start charging users for specific features or interactions within your dApp. No need for complex fee structures or custom smart contracts.
* **Developer-Centered Earnings**: Unlike traditional gas models, where fees go to validators, Haven1 ensures that developers capture the majority of the value they create—**80% of fees** go to you.
* **Flexible Usage**: You can charge for anything—whether it’s a pay-per-use model in a game, a subscription feature, or one-time premium features.
* **Predictable Pricing**: Users pay a consistent dollarized fee in $H1, giving you more control over the cost structure without worrying about fluctuations in token prices.

***

#### **Use Case: Gaming**

Imagine you’re developing a game on Haven1. You want players to get 3 free lives, but after that, they’ll need to pay to continue playing. With Haven1’s **application fee**, this is simple to set up. You define the fee for buying additional lives, and with one line of code, the system charges the user when they purchase more lives.

* **Example**: You could charge $0.50 for every additional life after the free ones. Players continue enjoying the game while you monetize without needing complex payment setups. **80% of the $0.50** goes to you, with the remaining **20%** going to support the Haven1 network.

This model allows you to experiment with different pricing strategies to optimize both user experience and revenue.

***

#### **Use Case: DEPIN Protocols**

Haven1’s application fees are also ideal for developers building **DEPIN (Decentralized Physical Infrastructure Networks)** protocols. If you’re developing a service where users run nodes (e.g., providing Wi-Fi access), you can easily set up a monetization structure using Haven1’s application fees.

* **Example**: Let’s say users who run Wi-Fi routers on your Deepin network charge $0.10 per hour of usage. **80% of that fee** goes to the node operator, and **20%** goes to your protocol to maintain and grow the network. This simple setup allows you to quickly monetize services in a way that benefits both your users and the network.

***

### **How to Implement Application Fees**

1. **Step 1: Set the Fee for Your Functions**

   When initializing your contract, you can specify the fees for each function. In this example, we set the fee for **incrementing** and **decrementing** the counter:

   ```solidity
   solidityCopy codefunction initialize(
       address feeContract,
       address guardianController,
       address association,
       address developer,
       address feeCollector,
       string[] memory fnSigs,  // Function signatures for setting fees
       uint256[] memory fnFees,  // Corresponding fees for each function
       bool storesH1
   ) external initializer {
       __H1DevelopedApplication_init(
           feeContract,
           guardianController,
           association,
           developer,
           feeCollector,
           fnSigs,
           fnFees,  // This array specifies the fees for the functions
           storesH1
       );
   }
   ```

   * **`fnSigs`**: Array containing the function signatures (e.g., increment or decrement).
   * **`fnFees`**: Array containing the fees corresponding to the function signatures (e.g., $2.00 for increment, $3.00 for decrement).

   The fees are passed as part of the initialization process, allowing developers to define the cost for each action.

2. **Integrate with Your Smart Contracts**

   Once the fees are set, you can easily integrate them into your functions. For example:

   ```solidity
   solidityCopy codefunction incrementCount() public payable whenNotGuardianPaused developerFee(false, true) {
       // Function logic for incrementing the counter
       _count++;
       emit Count(msg.sender, Direction.INCR, _count, getFnFeeAdj(msg.sig)); // Emitting the fee and event
   }
   ```

   In this example:

   * **`developerFee(false, true)`**: This modifier ensures that the correct fee is paid before the function executes.
   * **`getFnFeeAdj(msg.sig)`**: Fetches the fee associated with the specific function being called (in this case, incrementing the counter).

   The same pattern applies for decrementing or any other function you want to charge for.

3. **Test and Deploy**

   Once your fee structure is in place, test your app in the Haven1 testnet environment. Then, deploy your smart contract to the Haven1 mainnet and start monetizing your dApp with application fees.

***

### **Conclusion**

Haven1’s application fee model offers a **simplified**, **developer-friendly**, and **highly flexible** approach to monetizing decentralized applications. Whether you’re a game developer, DeFi builder, or working on a decentralized infrastructure project, this system empowers you to align your revenue model with the value you provide—**all with minimal code and effort**.

Explore Haven1’s **Spotlight Apps** for more examples of how application fees can be integrated into your dApp today!




---

[Next Page](/llms-full.txt/1)

