# What is MapNode?

![](/files/dsHaeStmgs2pVdvo5xmN)

{% hint style="info" %}
**MapNode:** Decentralized, Web3, ISO (Initial Shop Offering), Metaverse.
{% endhint %}

> ❖ We are a group of builders in the US who want to build a decentralized financial ecosystem in the F\&B sector. operating according to the type of hotel, restaurant, lounge, cafe, pub, discotheque, bar).&#x20;
>
> ❖ Products make it much easier for traditional financial users to access services.&#x20;
>
> ❖ Map Node provides the foundational building layers for a new digital economy with following products: stable-coin, crypto/fiat, DEX, launchpad, lock liquidity and lock token and connecting crypto to the real world.


# Why MapNode?

### ETH Compatibility

ETH Compatibility Industry dominance, established tech stack, tools, languages, standards, enterprise adoption

### Security

&#x20;Modular ''security as a service'', provided either by Ethereum or by a pool of professional validators

### **Scalability**

Scalability Dedicated blockchains, scalable consensus algorithms, custom Wasm execution environments

Compatible with major ERC standards. Secured by validators and checkpoints submitted to Ethereum. Minimal downtime over the course of 1.3B recorded transactions. A powerful and engaged community driving adoption and user engagement

### **High mining productivity**

MapNode PoS is a layer 2 scaling solution that achieves unprecedented transaction speed and cost savings by using side chains to process transactions. At the same time, POS ensures asset security by using a powerful Plasma bridge platform and a decentralized network of Proof-of-Stake (PoS) validators.

### **30+ Person Team**

30+ person team with deep resources and proven track record. MapNode is run by a fully integrated team with a long term vision, and core team members have built successful blockchain projects and have experience at leading blue-chip consulting and finance institutions

### **Extensive partnerships**

Extensive partnerships with market leading blockchain institutions ensuring broad scale and seamless experience. Within only a few weeks MapNode has secured partnerships with Chainlink, Brave, Grape, Altura and five secondary marketplaces

### **Speed**

Intuitive, efficient bridging, deposit and withdrawals. Transaction speeds of up to 65,000 tx/s means exponentially faster performance than Ethereum at 15 tx/s. Non-custodial architecture means users have control of their keys. Rely on the shared security of Ethereum with benefit of MapNode’s speed

### **Flexibility**

Full EVM compatibility means deploying your smart contracts directly on the MapNode chain. A composable blockchain means you’ve got a wide variety of apps to build on. Easy transfer to and from MapNode and Ethereum. Easy-to-use wallet on web and mobile.

<br>


# Crypto News

**Coming soon**


# MapCex - Modern and Secure Centralized Exchange

In the volatile world of cryptocurrencies, MapCex has emerged as a modern centralized exchange (CEX), providing a safe, transparent and efficient environment for investors. With advanced technology, high liquidity and a tight security system, MapCex promises to be an ideal destination for both new and professional traders.

**What is MapCEX?**

MapCEX is a centralized exchange that supports the buying, selling, and trading of digital assets. The platform provides a variety of powerful trading tools, integrates high security features, and ensures a fast and stable trading experience.

**MapCEX Highlights**

* Supports a wide range of digital assets: Integrates trading of hundreds of different tokens and trading pairs.
* Intuitive interface: User-friendly design, easy to use for both newbies and professional traders.
* High liquidity: Fast trading system, instant order matching with competitive transaction fees.
* Top security technology: Apply protection mechanisms such as 2-factor authentication (2FA), cold storage of assets and anti-DDoS attack system.
* Supports a variety of trading forms: Spot, Margin, Futures, P2P, Staking and many other investment tools.

**Outstanding Features**

Spot Trading – Buy and Sell Fast: Spot trading on MapCEX is designed to provide optimal order matching speed, allowing investors to buy and sell instantly with low transaction fees.

Margin Trading – Leverage to Maximize Rewards: With Margin Trading, users can use leverage to amplify rewards from price fluctuations, flexibly improving investment performance.

Futures Trading – High Leverage Futures Contracts: MapCEX offers futures trading, allowing users to bet on price trends and take advantage of rewards even when the market is down.

P2P Trading – Direct Trading Without Intermediaries: P2P allows users to buy and sell directly with each other without going through a third party. Transactions are protected by the escrow system, ensuring safety for both parties.

Staking – Earn Passive Rewards from Your Assets: Participate in staking on MapCEX to receive daily rewards from the tokens you hold, taking advantage of rewards without constantly trading.

**Security & User Support**

Bank-grade security system: Multi-signature cold wallet, maximum protection of user assets.

Know Your Customer (KYC): Ensure compliance with anti-money laundering (AML) regulations and protect the trading community.

24/7 customer support: Professional support team, quick problem resolution via multiple channels.

MapCEX is not only an exchange but also an important part of the MapNode ecosystem, connecting with MapWallet, MapScan and many other platforms. This creates a comprehensive financial ecosystem where users can trade, store assets and optimize rewards easily.


# Explore The Latest Crypto Market MapScan

**INTRODUCTION**

In the rapidly evolving blockchain world, transparency and transaction traceability are key to giving users confidence and control over their digital assets. MapScan was born with the mission of becoming a powerful blockchain explorer, providing detailed information about transactions, wallet addresses, smart contracts, and network performance.

MapScan is more than just a transaction lookup, it is a powerful analytics tool that helps users gain deeper insights into how blockchains operate. Whether you are an investor, developer, or a regular user, MapScan provides you with the tools you need to monitor and evaluate blockchain data in real time.

**WHAT IS MAPSCAN?**

MapScan is an advanced blockchain explorer that helps users track and analyze all the activities happening on the blockchain. It helps you look up transactions, check wallet balances, analyze smart contracts, track on-chain data, and evaluate network performance.

With an intuitive and easy-to-use interface, MapScan makes information accessible to everyone – from market newcomers to blockchain experts. MapScan's goal is to provide transparent, accurate, and reliable data that helps users make smarter investment decisions.

**OUTSTANDING FEATURES**

**1. Fast & Accurate Transaction Lookup**

One of the most important features of MapScan is the ability to look up transactions on the blockchain. Users can easily check the details of any transaction, including:

* Sender & recipient.&#x20;
* Transaction value.&#x20;
* Gas fee & confirmation speed.&#x20;
* Transaction hash.&#x20;
* Transaction status (successful, pending or failed).

All of this information is updated in real time, helping users track transactions accurately and quickly.

**2. Wallet Address Analysis**

MapScan allows you to check the wallet address and view the transaction history of a specific wallet. You can:

* Track the current balance of the wallet.&#x20;
* View the list of tokens currently held.&#x20;
* Check the transactions that have been made.&#x20;

This feature is very useful for investors, helping them track the activities of large wallets (whales), detect market trends and have a reasonable investment strategy.

**3. Smart Contract & DApp Support**

With the rapid growth of DeFi and decentralized applications (DApps), MapScan provides a smart contract analysis tool that helps users:

* Check the contract source code.&#x20;
* Track the contract deployment and update history.&#x20;
* Detect transactions that interact with the contract.&#x20;

This allows developers to check the accuracy of the contract, and users to evaluate the reliability of a project before investing.

**4. Comprehensive On-Chain Data**

MapScan not only helps look up transactions but also provides important blockchain statistics, including:

* Total blocks & block generation speed.&#x20;
* Total daily transactions.&#x20;
* Hashrate & mining difficulty.&#x20;
* Gas fee chart & transaction confirmation speed.&#x20;

These data help investors evaluate the performance of the blockchain network, thereby making more accurate decisions when participating in the market.

**5. Easy-to-Use Interface**

MapScan is designed with an intuitive, user-friendly interface. You can easily find information with just a few clicks. The clean, easy-to-understand layout helps even newcomers to the market to use MapScan effectively.

MapScan is not only a blockchain lookup tool but also a powerful data platform that gives users an insight into the blockchain world. With new updates and features, MapScan will continue to accompany users on their journey to invest and explore blockchain safely and effectively.


# MapMarketCap – Comprehensive Cryptocurrency Market Information Portal

**What is MapMarketCap?**

MapMarketCap is a cryptocurrency market tracking platform that provides detailed information on prices, market capitalization, trading volume, on-chain data and many other important indicators. This is an indispensable tool for traders, investors and those who want to update market trends quickly and accurately.

**MapMarketCap Highlights**

* Real-time data updates: Prices, capitalization, trading volume are updated continuously.&#x20;
* Support thousands of cryptocurrencies: Including Bitcoin, Ethereum, Altcoin, Stablecoin and many emerging projects. Visual charts and in-depth analysis: Help investors easily evaluate market trends.&#x20;
* On-Chain data tracking: Analyze trading volume, whale wallets, supply and demand on major blockchains.&#x20;
* Project ranking system: Evaluate the potential of new projects through transparent indicators.&#x20;
* Connect with MapNode ecosystem: Synchronize data with MapWallet, MapCEX, MapScan to provide a comprehensive investment experience.

**Key Features**

Comprehensive Market Watch: Quickly update the market value, capitalization, price movements and trading volume of thousands of cryptocurrencies in real time.

Charts & Technical Analysis Tools: Provide detailed price charts, technical indicators to help traders make effective buying and selling decisions.

On-Chain Data Analysis: Discover important indicators such as exchange inflow/outflow, whale trading volume, token allocation level… to assess market trends.

Price Alerts & Breaking News: Get notified immediately when the price hits the desired level or when there is important news affecting the market.

Project Rating & Potential Assessment: Provides an objective rating system, helping investors evaluate cryptocurrency projects based on transparent criteria such as liquidity, reputation, development community, etc.

Connect With MapNode Ecosystem: As part of the MapNode ecosystem, MapMarketCap connects directly with MapWallet, MapCEX, MapScan to help users manage assets, track transactions and optimize their portfolios in a single platform.

**Why Use MapMarketCap?**

* Fast, accurate, transparent information.
* Friendly interface, easy to use for both new and expert investors.
* Comprehensive ecosystem, integrating many investment support tools.
* Multilingual support, easy to reach users worldwide.


# Token

{% tabs %}
{% tab title="MNI Token" %}

###

### Tokenomics

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

### Token Distribution

<table><thead><tr><th width="185.0769230769231">Category</th><th width="150">Allocation</th><th width="150">Raise</th><th>Address</th></tr></thead><tbody><tr><td>Marketing</td><td>2%</td><td>10,000,000</td><td><a href="https://polygonscan.com/address/0xaf04c7db828bae7faef1cd3128091a3eb0edc80a">https://polygonscan.com/address/0xaf04c7db828bae7faef1cd3128091a3eb0edc80a</a></td></tr><tr><td>Seed Round</td><td>4%</td><td>20,000,000</td><td><a href="https://mapnode.io/#">Distributed</a></td></tr><tr><td>Angel Round</td><td>6%</td><td>30,000,000</td><td><a href="https://mapnode.io/#">Distributed</a></td></tr><tr><td>Private Round</td><td>8%</td><td>40,000,000</td><td><a href="https://mapnode.io/#">Distributed</a></td></tr><tr><td>Publish Round</td><td>10%</td><td>50,000,000</td><td><a href="https://mapnode.io/#">Distributed</a></td></tr><tr><td>Saving</td><td>10%</td><td>50,000,000</td><td><a href="https://mapnode.io/#">Distributed</a></td></tr><tr><td>Staking</td><td>12%</td><td>60,000,000</td><td><a href="https://mapnode.io/#">In Progress</a></td></tr><tr><td>Ecosystem</td><td>8%</td><td>40,000,000</td><td><a href="https://polygonscan.com/address/0xcfd882cc2fe15ebfe0d369c124f83f5045cb6944">https://polygonscan.com/address/0xcfd882cc2fe15ebfe0d369c124f83f5045cb6944</a></td></tr><tr><td>MN To Earn</td><td>20%</td><td>100,000,000</td><td><a href="https://mapnode.io/#">In Progress</a></td></tr><tr><td>MN Pool</td><td>8%</td><td>40,000,000</td><td><a href="https://polygonscan.com/address/0x2da5570f4a6c8b676b3cabd6f20a6e34d086bce5">https://polygonscan.com/address/0x2da5570f4a6c8b676b3cabd6f20a6e34d086bce5</a></td></tr><tr><td>Bounty</td><td>4%</td><td>20,000,000</td><td><a href="https://polygonscan.com/address/0x9e61cfbe6d56946a4cb3df0f8e36c16da7ab5a55">https://polygonscan.com/address/0x9e61cfbe6d56946a4cb3df0f8e36c16da7ab5a55</a></td></tr><tr><td>Team</td><td>6%</td><td>30,000,000</td><td><a href="https://polygonscan.com/address/0x8921a42bcc13120e782c060053fafc2a93b1ee2a">https://polygonscan.com/address/0x8921a42bcc13120e782c060053fafc2a93b1ee2a</a></td></tr><tr><td>Advisor &#x26; Experts</td><td>2%</td><td>10,000,000</td><td><a href="https://polygonscan.com/address/0xebcaf91b72538b5f8521d150ca3878c9f4aee7b9">https://polygonscan.com/address/0xebcaf91b72538b5f8521d150ca3878c9f4aee7b9</a></td></tr></tbody></table>
{% endtab %}
{% endtabs %}


# Roadmap

#### 01 July 2022

* Building a global Map Node ecosystem platform
* Build social channels Facebook, Twitter, Instagram, Telegram, Discord, Youtube, Support Channel

#### 03 September 2022

* Officially open sale and launch Map Node platform globally through Seed Round, Angel Round, Private Round, Publish Round
* Launch of the Saving

#### 17 March 2023

* Listing on UniSwap and 3 international DEXs
* Web 3.0 Drink Coffee development
* ISO (Initial Shop Offering)
* First Drink Coffee demo
* Full-scale platform launch

#### 01 April 2023

* Development of NFT Marketplace
* First NFT pre-orders
* Launch of the NFT token
* Full-scale platform launch

#### 15 May 2023

* Launch of the Staking

#### 01 December 2023

* Launch Liquidity Farming
* Launch Token Launch Platform
* Launch Dual Investment
* Launch Auto-Invest
* Integration NFT auction system

#### 15 June 2024

* List Map Node token on CoinMarketCap, Coingecko, Coinnomi, LiveCoinWatch
* Development mobile app for iOS and Android
* Launch Map Node Pool
* Application for crypto exchange
* List Map Node token on major international P2P exchanges like Binance

#### 01 October 2024

* Launch a digital bank
* Launching a global open-ended investment fund
* Launching MN30 blockchain
* Build a community to join the MN30 blockchain


# Team

**Zalamea Anastasia (Founder)**: the brilliant mind behind mapnode.io, is a true pioneer in the world of decentralized financial infrastructure. With a remarkable blend of technical prowess and visionary leadership, he conceptualized and brought to life mapnode.io, a platform that redefines the way we engage with finance through the Polygon ecosystem.

Anastasia's journey began with a deep passion for blockchain technology and its transformative potential. His relentless pursuit of innovation led to the creation of mapnode.io, a hub where individuals can explore a new era of decentralized finance, marked by transparency, accessibility, and efficiency.

**Woosley Shelba (CEO):** leads the transformation of decentralized finance on Polygon. With strategic vision and commitment to innovation, Shelba enhances user experiences in this dynamic financial ecosystem, revolutionizing how users interact with financial services on Polygon.

As the driving force behind mapnode.io, Shelba ensures the platform stays true to its mission, providing a seamless experience for users exploring new financial opportunities within the Polygon ecosystem. With Woosley Shelba leading, mapnode.io exceeds expectations, paving the way for a more inclusive and user-centric financial future, shaping how we engage with financial infrastructure.

**Ontiveroz Gidget (CEO)**: is revolutionizing decentralized finance on Polygon. With a strategic mindset and deep commitment to innovation, he empowers users to navigate this dynamic financial landscape confidently. Gidget's leadership, driven by a belief in blockchain's transformative power, reshapes financial engagement on Polygon, offering transparency, efficiency, and accessibility. As the driving force behind mapnode.io, Gidget ensures the platform aligns with its mission, providing users a seamless experience while exploring new financial horizons. With her leadership, mapnode.io sets the stage for a more inclusive and user-centric financial future, epitomizing excellence in decentralized finance.

**Strimple Tempie (Marketing Manager)**: showcases the value of the decentralized financial infrastructure on Polygon. With a strategic approach and deep industry understanding, Tempie ensures the platform's message resonates effectively with its target audience. Her creative marketing strategies attract users, highlighting the opportunities mapnode.io offers on Polygon. As a vital member of the team, Tempie's dedication is evident in every campaign, making the platform an enticing choice for users navigating the dynamic world of decentralized finance. With Strimple Tempie's leadership, mapnode.io stands out as a testament to her commitment to excellence, shaping how users interact with financial infrastructure, making it more accessible and relevant within the decentralized

**Florentine Anjanette (Project Manager):** drives the successful development of the decentralized financial infrastructure on Polygon. With proven project management and industry understanding, he ensures efficient goal achievement. Her strategic insights empower users in the dynamic world of decentralized finance, aligning the platform with its mission. With Florentine at the helm, mapnode.io is a well-executed reality, reshaping how we interact with financial infrastructure towards a more inclusive and accessible ecosystem.

**Rose Stewart (Server Admin & Applications Lead):** is a driving force behind the seamless operation of this decentralized financial infrastructure on Polygon. With her expertise in server administration and application management, Rose ensures the platform's reliability, security, and efficiency for users navigating the decentralized financial landscape. As a key member of the mapnode.io team, Rose's dedication creates a foundation for users to explore new financial horizons with confidence. With Rose Stewart's leadership, mapnode.io stands as a testament to his commitment to excellence, revolutionizing how we engage with financial infrastructure for users worldwide.

**Eshal Porter (Design Manager):** brings artistic excellence to the forefront of this decentralized financial infrastructure on Polygon. With her keen eye for aesthetics and user experience, Eshal ensures the platform's design aligns seamlessly with its innovative goals, creating a user-friendly interface for those exploring opportunities on Polygon. Her leadership in maintaining a cohesive and appealing design language contributes to a captivating experience for users navigating the decentralized financial ecosystem. With Eshal Porter as the Design Manager, mapnode.io's interface transcends the ordinary, redefining how we engage with financial infrastructure in a more accessible and user-centric way.

**Teschner Felisa (Senior Developer):** is a driving force behind the platform's groundbreaking decentralized financial infrastructure on Polygon. With deep expertise in blockchain technology, she shapes robust features, ensuring transparency and efficiency. As a key figure, Felisa's commitment to excellence is evident in every line of code, creating a secure and seamless experience for users in decentralized finance. Her contributions redefine how we interact with financial infrastructure, paving the way for a more inclusive and accessible financial future.


# Gallery

Image of the US-based office

<div><figure><img src="/files/RGm4LHEgP74auxZZ555m" alt=""><figcaption></figcaption></figure> <figure><img src="/files/hnqazBdaHOd7vYq6HQRZ" alt=""><figcaption></figcaption></figure> <figure><img src="/files/OaelBg101Nh1xWv4OyAO" alt=""><figcaption></figcaption></figure> <figure><img src="/files/uLJdQCYiq64iDkegdlvU" alt=""><figcaption></figcaption></figure> <figure><img src="/files/cqaFs6TV7yjdlZ6OxMf5" alt=""><figcaption></figcaption></figure> <figure><img src="/files/NSBcxizfCiGuZavL3iQP" alt=""><figcaption></figcaption></figure> <figure><img src="/files/JEgUcsIBq0DtH2RMSQzp" alt=""><figcaption></figcaption></figure> <figure><img src="/files/cHwmdlfW7XR13el0VPCA" alt=""><figcaption></figcaption></figure> <figure><img src="/files/tL8qiVhoK7dAkFJAHWfX" alt=""><figcaption></figcaption></figure></div>


# Social Link

***Official Website:*** [*https://mapnode.io/*](https://mapnode.io/)

***Docs:*** [*https://docs.mapnode.io*](https://mapnode.io/blog)

***Twitter:*** [***https://x.com/mapscan\_***](https://x.com/mapscan_)

***Facebook**:* [*https://www.facebook.com/mapscanofficial*](https://www.facebook.com/mapscanofficial)

***Telegram Community**:* [*https://t.me/mapnodecommunity*](https://t.me/mapnodecommunity)

***Telegram Official:*** [*https://t.me/mapnode\_official*](https://t.me/mapnode_official)

***Reddit:*** [*https://www.reddit.com/user/mapnodeofficial/*](https://www.reddit.com/user/mapnodeofficial/)

***Linkedin**:* [*https://www.linkedin.com/company/mapnodecompany/*](https://www.linkedin.com/company/mapnodecompany/)


# Partners

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


# Token

{% tabs %}
{% tab title="Map Token" %}

### Tokenomics

### Token&#x20;

* Token Name: MapScan
* Symbol: MAP
* Total supply: 1,000,000,000
  {% endtab %}
  {% endtabs %}


# Validators

Create passive rewards

Validators play an important role in the blockchain ecosystem, helping to validate transactions and ensure the security and transparency of the network. With MapNode's Validators program, users can invest in nodes, become part of the validator system, and receive stable rewards for their participation.

This program not only helps the network operate smoothly, but also provides participants with the opportunity to generate passive rewards. By participating in staking with Validators, you will contribute to enhancing the security and performance of the ecosystem, while receiving worthy rewards in return.

**WHAT IS VALIDATORS?**

Validators are nodes that participate in validating and recording transactions on the blockchain. They are responsible for ensuring that all transactions are accurate, secure, and decentralized.

When users invest in a Validator, their stake will help maintain the node's operations and they will receive daily staking rewards based on the number of tokens staked.

**HOW VALIDATORS WORK**

* Users select the desired Validator and stake tokens.
* The system will lock these tokens for a certain period of time to maintain the operation of the node.
* Validators validate transactions on the blockchain, ensuring validity and security.
* Users receive periodic staking rewards, calculated depending on the amount and duration of the stake.

These rewards can be restaked to increase the value or withdrawn to the wallet for use as needed.

**VALIDATORS BENEFITS**

Get Attractive Rewards – Staking rewards are calculated reasonably, providing a sustainable source of passive income.

High Security – The entire staking process is guaranteed to be safe, helping to protect user assets.

Ecosystem Support – Staking tokens into Validators helps to increase the stability and security of the network.

Flexible Liquidity – Users can choose the staking time that suits their financial needs.

**RULES & CONDITIONS OF PARTICIPATION**

* Minimum number of staked tokens: Depends on the regulations of each node.
* Staking period: Users can choose different staking periods.
* Staking reward rate: Updated periodically to ensure competitiveness.
* Withdrawal of rewards: Depending on each Validator, there may be a waiting period when withdrawing tokens to the wallet.

**COMMITMENT & TRANSPARENT POLICY**

* Absolute security: Your assets are always protected by top-notch security mechanisms.
* Transparency & fairness: The entire staking and reward process can be tracked on the blockchain.
* Optimal rewards: Staking rewards are calculated reasonably to ensure benefits for participants.


# Restake Feature Policy

(LEGAL & OPERATIONAL POLICY)

### 1. Purpose and Scope of Application

This policy governs the operational mechanism of the Restake feature on the MapScan platform. Restake is a technical component of the node operation system, designed to ensure the continuous, stable, and consistent operation of the MapScan.

This policy applies to all users holding valid accounts on the MapScan platform who engage in node operation activities involving the Restake mechanism, regardless of the time of participation, number of nodes, or the amount of MAP involved.

By continuing to access or use the MapScan platform, users are deemed to have read, understood, and unconditionally accepted all provisions of this policy.

### 2. Definitions and Operating Principles

For the purposes of this policy, a “cycle” refers to a technical operational period of a node, commencing from the time the node is validly activated on the system and ending when the node completes the operational conditions in accordance with the technical parameters published by MapScan from time to time.

Restake is a technical mechanism that enables the MapScan system to automatically utilize eligible MAP to activate the subsequent operational cycle of a node upon completion of the preceding cycle, for the purpose of maintaining continuity of node operation.

Restake does not constitute an independent investment transaction, does not represent a loan agreement, does not form a trust, custody, or asset management contract, and does not give rise to any legal obligations beyond the technical operational scope of the platform.

### 3. Source of MAP and Allocation Mechanism

MAP used in Restake cycles is derived from rewards and eligible balances generated across the user’s entire account within the MapScan platform.

The MapScan system operates on an aggregated allocation mechanism based on internal algorithms applicable at each operational period and does not apply a rigid or segregated allocation of MAP on a per-node basis.

The allocation of MAP for Restake does not constitute a transfer of ownership, misappropriation, or use of assets beyond the scope of the user’s account. All MAP remains recorded within the system and continues to belong to the user in accordance with the corresponding account balance.

### 4. Automation and No Repeated Confirmation Requirement

Restake is implemented as an automated mechanism to ensure system stability and synchronization of node operations. This mechanism does not require repeated confirmation for each cycle and does not depend on manual user actions at the time of cycle reactivation.

Users acknowledge and agree that the system may continue to perform Restake in accordance with its technical design without any obligation to provide separate or individual notifications for each operational cycle.

The execution of Restake by the system shall not be construed as unauthorized intervention, manipulation, or unlawful use of assets, but rather as an inherent component of the platform’s integrated operational mechanism.

### 5. Limitation of Commitments and Disclaimer of Liability

MapScan makes no representations, warranties, or guarantees with respect to:

* Any rewards generated from Retake;
* Any capital recovery or payback timeframe;
* The operational performance or efficiency of any specific cycle;
* The present or future economic value of MAP.

All risks arising from market volatility, system conditions, policy adjustments, regulatory changes, or other objective factors beyond the direct control of MapScan shall not give rise to any legal liability on the part of the platform.

MapScan shall not be liable for any direct, indirect, incidental, consequential, or special damages resulting from user interpretations that deviate from the officially disclosed operational mechanism.

### 6. Right to Amend and Effectiveness

MapScan reserves the full and unilateral right to amend, update, or modify the Restake mechanism and related policies in order to meet operational, technical, system security, or legal and regulatory compliance requirements.

Any such amendments shall take effect upon official publication on MapScan’s documentation system and shall not apply retroactively to operational cycles completed prior to the effective date.

In the event of any inconsistency or discrepancy between translations or interpretations, the version officially published on mapscan.tech shall prevail and carry the highest legal validity.

### 7. Final Provisions

This policy constitutes an integral and inseparable part of the MapScan Terms of Use. In the event of any dispute, claim, complaint, or request for clarification, the provisions of this policy shall serve as the primary basis for determining the rights and obligations of the parties.


# What is the MapWallet?

MapWallet is a multi-purpose e-wallet platform that helps users store, manage, trade and invest digital assets securely and conveniently. With advanced security features and deep integration with the blockchain ecosystem, MapWallet is committed to providing the best user experience.

This policy stipulates the terms and conditions when using MapWallet, helping to ensure rights, security and transparency in the process of using the service.

**1. GENERAL TERMS**

By using MapWallet, users agree to comply with the following terms:&#x20;

* Do not use the wallet to conduct illegal transactions.&#x20;
* Be responsible for your own login information and private keys.&#x20;
* Comply with the security regulations and policies of the MapWallet ecosystem.&#x20;
* MapWallet is not responsible for any loss of assets due to users disclosing confidential information or being attacked by third parties.

**2. PRIVACY POLICY**

Data Encryption: All information and transactions on MapWallet are securely encrypted, ensuring absolute privacy.&#x20;

Two-Factor Authentication (2FA): Users can enable two-factor authentication for additional account protection.&#x20;

Private Key Security: Users have full control over their private keys and are responsible for keeping them safe. MapWallet does not hold or have access to users' private keys.

**3. TRADING & STORAGE FUNCTIONS**

* Multi-Token Support: MapWallet supports storing and trading multiple cryptocurrencies from different blockchains.&#x20;
* Transfer & Receive Tokens: Users can send and receive digital assets quickly, with optimal transaction fees.&#x20;
* Swap: Integrate token swap function right in the wallet, helping users to trade quickly without going through a third party.&#x20;
* DApp Connection: Support integration with decentralized applications (DApps) to expand the usability of digital assets.

**4. SAVINGS POLICY**

Safe investment, attractive rewards Users can deposit tokens for a certain period of time to receive corresponding rewards.

Savings regulations include: Flexible term: Users can choose the deposit term from short term to long term.

Attractive rewards: Rewards are calculated based on the deposit amount and term.

Automatic rewards: Rewards are updated and distributed according to the selected cycle.

Flexible withdrawal: Some savings plans allow early withdrawal with adjustment fees.

**5. SUPPORT POLICY & RESPONSIBILITY**

* User Support: MapWallet has a 24/7 support team to resolve issues arising during use.&#x20;
* Transparency & Security: All transactions are recorded on the blockchain, ensuring transparency and immutability.&#x20;
* User Rights & Obligations: Users have the right to use the wallet's features but must comply with the policy and be responsible for their assets.

MapWallet is not only a storage wallet but also a digital financial center, helping users manage assets, invest wisely and make the most of blockchain opportunities. We are committed to continuously updating new features to meet the growing needs of the community.


# Savings to Earn

Save With Attractive Interest Rates

Save to Earn is a feature that allows users to invest in tokens and receive fixed rewards daily, weekly or monthly.

* Token Savings: Users can deposit tokens into the system to receive attractive rewards.
* Flexible Rewards: Fixed reward options with various deposit terms, from a few weeks to a few months.
* Automatic Refund: Rewards are paid according to the selected term, helping users optimize passive income.
* Transparent and Clear: Rewards and deposit terms are clearly displayed, ensuring transparency for users.


# Savings Policy

**1.** **INTRODUCTION**

Savings to Earn is a flexible financial function that allows users to deposit savings in tokens to receive rewards on each term. This is a passive solution that helps optimize rewards without continuous trading. With a transparent operating mechanism, users can easily manage digital assets, create a stable source of passive rewards, and contribute to increasing liquidity for the ecosystem.

**2. HOW IT WORKS**

The Savings to Earn program operates on the principle of term deposits. Users will choose the type of token, the desired term, and deposit it into the savings contract. During the deposit period, the tokens will be locked, and the rewards will be calculated at a fixed or flexible rate. After the maturity date, users will receive back the initial capital along with the accumulated rewards. For some flexible packages, users can withdraw early but may be subject to a penalty fee or lose the accumulated rewards.

**3. TYPES OF SAVINGS**

Savings to Earn offers a variety of options to suit individual needs. Fixed savings offer the highest reward rates but cannot be withdrawn early. Flexible savings allow early withdrawals under certain conditions but will not receive any rewards for early withdrawals. There is also a cumulative savings option that allows users to automatically reinvest rewards to maximize the benefits of compounding.

**4. INTEREST RATES AND PROFITS**

The Savings to Earn reward rate varies according to the term and market conditions. The reward calculation formula is based on the number of tokens deposited, the annual reward rate, and the deposit period. Users can choose to receive rewards on a certain cycle or reinvest to grow their assets. The specific reward rate will be updated regularly on the platform to ensure transparency.

**5. TERMS & CONDITIONS**

To participate in the program, users need to complete verification and agree to the terms of use. Fixed deposits cannot be withdrawn before maturity, while flexible plans can be withdrawn early with a certain fee. MapWallet reserves the right to adjust the reward rate from time to time to suit market conditions. Users need to understand the risks and be responsible for their own decisions.

**6. BENEFITS OF JOINING SAVINGS TO EARN**

Savings to Earn offers many benefits such as generating passive rewards, optimizing assets with attractive reward rates, and effective financial management. With the ability to deposit savings flexibly, users can both keep digital assets and earn rewards safely. In addition, this platform also ensures transparency thanks to smart contract technology and modern management tools.

**7. RISKS & HOW TO MINIMIZE THEM**

Like any form of participation, Savings to Earn also comes with some risks such as market fluctuations, the possibility of early withdrawal and reward rate adjustments over time. To minimize risks, users should choose stable tokens, monitor reward rate policies regularly, and consider carefully before making savings deposits. MapWallet is committed to providing transparent information and maximum support so that users can make effective decisions.

**HOW TO GET STARTED**

To join Savings to Earn, users simply need to download the MapWallet app, register an account, choose the desired savings package and deposit tokens into the system. Rewards will then be automatically accumulated over time and can be withdrawn upon maturity. With an intuitive interface and simple process, starting has never been easier.


# Seed Round

MNI is a utility and governance of MapNode, which is issued standard on Binance Smart Chain. Users can get MNI in some easy ways below

**Total supply: 20,000,000 | 4%**&#x20;

* Time: 30 days&#x20;
* Start on: 03 September 2022
* Link join: [https://mapnode.io/exchange](https://mapnode.io/Exchange)
* Status: **Complete**

#### Affiliate commission:&#x20;

* Level 1 9%&#x20;
* Level 2 6%&#x20;
* Level 3 3%&#x20;

:tada:*<mark style="color:orange;">**Commission received by bnb**</mark>*&#x20;

#### &#x20;**Disbursement policy:**&#x20;

* Unlock 20% of the total amount of tokens purchased to the wallet.&#x20;
* Lock 4 months from the date of token purchase.&#x20;
* Unlock 10%/month and divide equally 10 months.


# Angel Round

MNI is a utility and governance of MapNode, which is issued standard on Binance Smart Chain. Users can get MNI in some easy ways below

**Total supply: 30,000,000 | 6%**&#x20;

* Time: 30 days&#x20;
* Start on: 04 October 2022
* Link join: [https://mapnode.io/exchange](https://mapnode.io/Exchange)
* Status: **Complete**

#### Affiliate commission:&#x20;

* **Level 1** 9%&#x20;
* **Level 2** 6%&#x20;
* **Level 3** 3%&#x20;

:tada:*<mark style="color:orange;">**Commission received by bnb**</mark>*&#x20;

#### &#x20;**Disbursement policy:**&#x20;

* Unlock 30% of the total amount of tokens purchased to the wallet.&#x20;
* Lock 3 months from the date of token purchase.&#x20;
* Unlock 10%/month and divide equally 10 months.


# Private Round

MNI is a utility and governance of MapNode, which is issued standard on Binance Smart Chain. Users can get MNI in some easy ways below

**Total supply: 40,000,000 | 8%**&#x20;

* Time: 60 days&#x20;
* Start on: 01 November 2022
* Link join: [https://mapnode.io/exchange](https://mapnode.io/Exchange)
* Status: **Complete**

#### Affiliate commission:&#x20;

* **Level 1** 6%&#x20;
* **Level 2** 5%&#x20;
* **Level 3** 4%
* **Level 4** 3%
* **Level 5** 2%&#x20;

**Conditions:** to receive affiliate commission from L2, L3, L4, L5 members must buy at least 0.1 BNB

:tada:*<mark style="color:orange;">**Commission received by bnb**</mark>*&#x20;

#### &#x20;**Disbursement policy:**&#x20;

* Unlock 40% of the total amount of tokens purchased to the wallet.&#x20;
* Lock 4 months from the date of token purchase.&#x20;
* Unlock 10%/month and divide equally 10 months.


# Publish Round

MNI is a utility and governance of MapNode, which is issued standard on Binance Smart Chain. Users can get MNI in some easy ways below

**Total supply: 50,000,000 | 10%**&#x20;

* Time: 60 days&#x20;
* Start on: 01 January 2023
* Link join: [https://mapnode.io/exchange](https://mapnode.io/Exchange)
* Status: **Complete**

#### Affiliate commission:&#x20;

* **Level 1** 6%&#x20;
* **Level 2** 5%&#x20;
* **Level 3** 4%
* **Level 4** 3%
* **Level 5** 2%&#x20;

**Conditions:** to receive affiliate commission from L2, L3, L4, L5 members must buy at least 0.1 BNB

:tada:*<mark style="color:orange;">**Commission received by bnb**</mark>*&#x20;

#### &#x20;**Disbursement policy:**&#x20;

* Unlock 50% of the total amount of tokens purchased to the wallet.&#x20;
* Lock 2 months from the date of token purchase.&#x20;
* Unlock 10%/month and divide equally 10 months.


# Savings

{% content-ref url="/pages/zktSwiSMkhAMXKGA7r8W" %}
[FAQs](/products/savings/faqs)
{% endcontent-ref %}

{% content-ref url="/pages/FxdfZtfaVE3WjUuj12rc" %}
[Broken mention](broken://pages/FxdfZtfaVE3WjUuj12rc)
{% endcontent-ref %}

{% content-ref url="/pages/MIO7w6Tsy9KvJbe34hSO" %}
[Policy and Reward](/products/savings/policy-and-reward)
{% endcontent-ref %}


# FAQs

<details>

<summary>1.What are Flexible Savings?</summary>

Flexible Savings is your Crypto savings account. Subscribe your crypto to earn interest, with the flexibility to redeem your funds at any time.

</details>

<details>

<summary>2.What are Locked Savings?</summary>

Committed to holding your crypto? Now you can earn interest at the same time! Subscribe your crypto to locked savings periods for higher interest earnings.

</details>

<details>

<summary>3.What happens to my funds on the day I subscribe to a Locked Savings product?</summary>

On the day of subscription, MapNode Savings will deduct the funds for subscription from your exchange wallet.

</details>

<details>

<summary>4.What happens to my funds when I subscribe them to a flexible savings product?</summary>

After subscribing, you will receive Flexible Savings assets. Interest calculation starts on the second day.

</details>

<details>

<summary>5.What happens to my funds on the value date of a Locked Savings product?</summary>

On the value date, MapNode Savings will distribute the Locked Savings product to your savings wallet, and your saving product will start to accrue interest.

</details>

<details>

<summary>6.What happens to my funds on the redemption date of a Locked Savings product?</summary>

On the redemption date, you will see both the initial tokens committed to the subscription and the interest accrued in your MapNode account ‘balances’. This process will be automatic.

</details>

<details>

<summary>7.If I subscribe to a flexible savings product, when can I redeem my funds?</summary>

Support redemption at any time.(Except 07:50-08:10 HKT daily.)

</details>

<details>

<summary>8.How do I redeem my funds from a flexible savings product?</summary>

Click on “Savings Assets” on the “Wallet” dropdown. Select “Flexible Savings” & click on “Redeem” under the “Operations” tab on the product you wish to redeem.

</details>

<details>

<summary>9.What is the difference between standard redemption and fast redemption?</summary>

Using the standard redemption method, you can redeem your funds the next day and still accrue interest for the period in between.Using the fast redemption method, you may redeem your funds the same day. This method is subject to a daily quota.

</details>

<details>

<summary>10.How often do I receive interest from a flexible savings product?</summary>

The interest from flexible savings products is distributed directly to your account on a daily basis.

</details>

<details>

<summary>11.Am I guaranteed to earn interest on MapNode Savings products even if the crypto markets go down?</summary>

Yes. The interest rate on each product is guaranteed.

</details>

<details>

<summary>12.Are BNB that are subscribed to a MapNode Savings product included in the snapshot calculation for Binance Launchpad?</summary>

Yes, the full balance of BNB subscribed to any MapNode Savings product will count towards the snapshot calculations for MapNode Launchpad. That means you can participate in MapNode Launchpad while earning interest on your holdings! Win-win!

</details>

<details>

<summary>13.Will MapNode Savings continue to add more products &#x26; support for tokens other than those currently available?</summary>

Yes, MapNode Savings will be constantly evaluating new coins/tokens to be supported as saving products. Products will be supported based on demand and delivering the best value to MapNode Savings users.

</details>

<details>

<summary>14.How is the average annual return (APR) calculated?</summary>

The average annual return (APR) uses the average daily interest rate from the past 7 days, multiplied by 365.

</details>

<details>

<summary>15.Which cryptocurrencies are supported?</summary>

There are more than 60+ cryptocurrencies that you can use in MapNode Savings. You can choose from dozens of digital assets like [Bitcoin](https://www.binance.com/en/price/bitcoin), [Ethereum](https://www.binance.com/en/price/ethereum), and stablecoins.

</details>


# Policy and Reward

Saving is the latest release of the MapNode to fulfill our product suite and reward for MNI holders. It also be a simple and secure way for users to earn passive income while involved in Ecosystem

**Total supply: 50,000,000 | 10%**&#x20;

* Start on: 10/03/2022
* Link join: <https://mapnode.io/Saving>
* Status: **Complete**


# Staking


# Policy and Reward

Staking is the latest release of the MapNode to fulfill our product suite and reward for MNI holders. It also be a simple and secure way for users to earn passive income while involved in Ecosystem

**Total supply: 60,000,000 | 12%**&#x20;

* Start on: 09/05/2023
* Link join: <https://mapnode.io>
* Status: **Process**

### **⚡️Time & Interest Rate:**

* 180 days interest rate 0.4%/ day => 12%/month
* 270 days interest rate 0.4%/ day => 12%/month
* 360 days interest rate 0.4%/ day => 12%/month
* 720 days interest rate 0.4%/ day => 12%/month
* <mark style="background-color:green;">**Participation Cycle**</mark>
  * If you join 180 days after the end of the cycle, you will get 100% of the initial MNI
  * If you join 270 days after the end of the cycle, you will get 100% Initial MNI and get extra 5% MNI
  * If you join 360 days after the end of the cycle, you will receive 100% of your initial MNI and an additional 8% of your MNI
  * If you join 720 days after the end of the cycle, you will get 100% of the initial MNI and an additional 15% of the MNI

### **⚡️Commission On Daily Interest:**

* Level 1 35%/ interest rate
* Level 2 25%/ interest rate&#x20;
* Level 3 20%/ interest rate
* Level 4 10%/ interest rate
* Level 5 5%/ interest rate
* Level 6 5%/ interest rate
* Level 7 5%/ interest rate
* Level 8 5%/ interest rate
* Level 9 5%/ interest rate
* Level 10 5%/ interest rate
* Level 11 to Level 20 1%/ interest rate&#x20;
* <mark style="background-color:orange;">**Conditions**</mark>&#x20;
  * Get Level 2 require 1 Level 1
  * Get Level 3 require 2 Level 1
  * Get Level 4 require 2 Level 1
  * Get Level 5 require 3 Level 1
  * Get Level 6 require 3 Level 1
  * Get Level 7 require 4 Level 1
  * Get Level 8 require 4 Level 1
  * Get Level 9 require 5 Level 1
  * Get Level 10 require 5 Level 1
  * Get Level 11 to Level 20 require 6 Level 1

### **⚡️Commission Leadership:**&#x20;

* Leader 1: Total sales of weak branches reached 200,000 MNI bonus 1%&#x20;
* Leader 2: Total sales of weak branches reached 500,000 MNI bonus 2%&#x20;
* Leader 3: Total sales of weak branches reached 1,000,000 MNI bonus 3%&#x20;
* Leader 4: Total sales of weak branches reached 3,000,000 MNI bonus 4%&#x20;
* Leader 5: Total sales of weak branches reached 6,000,000 MNI bonus 5%&#x20;
* Leader 6: Total sales of weak branches reached 10,000,000 MNI bonus 6%&#x20;
* Leader 7: Total sales of weak branches reached 20,000,000 MNI bonus 7%&#x20;
* Leader 8: Total sales of weak branches reached 50,000,000 MNI bonus 8%&#x20;
* Leader 9: Total sales of weak branches reached 100,000,000 MNI bonus 9%&#x20;
  * [x] *<mark style="color:blue;">**Condition: a strong branch must be equal to or greater than the sum of the weak branches' sales**</mark>*

### **⚡️**Cancel Stakin&#x67;**:**

* Canceling the package before 90 days will be deducted 30% of the participating MNI and the interest received
* Canceling the package after 90 days will receive 100% of the participating MNI and recover the received interest


# Liquidity Farming

**Coming soon**


# Dual Investment

**Coming soon**


# Auto Invest

**Coming soon**


# MN To Earn

Market place and Drink To Earn feature officially launched. We will Burn all the tokens when the member joins the Drink To Earn program up to 20% of the total allocation

## NFT Cup Coffee

* Level 1: $100 interest 8%/month
* Level 2: $500 interest 9%/month&#x20;
* Level 3: $1,000 interest 10%/month&#x20;
* Level 4: $2,000 interest 11%/month&#x20;
* Level 5: $5,000 interest 12%/month&#x20;
* Level 6: $10,000 interest 13%/month&#x20;
* Level 7: $20,000 interest 14%/month&#x20;
* Level 8: $50,000 interest 15%/month&#x20;
* Level 9: $100,000 interest 16%/month

**Maxout 300%**&#x20;

**Members receive daily when visiting the affiliated location**

## NFT Coffee Machine

* Level 1: $2,000 interest 1%/month&#x20;
* Level 2: $5,000 interest 2%/month&#x20;
* Level 3: $10,000 interest 3%/month&#x20;
* Level 4: $20,000 interest 4%/month&#x20;
* Level 5: $50,000 interest 5%/month&#x20;
* Level 6: $100,000 interest 6%/month&#x20;
* Level 7: $150,000 interest 7%/month&#x20;
* Level 8: $200,000 interest 8%/month&#x20;
* Level 9: $250,000 interest 9%/month&#x20;
* Level 10: $300,000 interest 10%/month

**Increase community mining capacity per NFT Cup Coffee from 1% to 10%**

## NFT Shop Coffee

* Level 1: $5,000 interest 1%/month&#x20;
* Level 2: $10,000 interest 2%/month&#x20;
* Level 3: $20,000 interest 3%/month&#x20;
* Level 4: $50,000 interest 4%/month&#x20;
* Level 5: $100,000 interest 5%/month&#x20;
* Level 6: $150,000 interest 6%/month&#x20;
* Level 7: $200,000 interest 7%/month&#x20;
* Level 8: $250,000 interest 8%/month&#x20;
* Level 9: $300,000 interest 9%/month&#x20;
* Level 10: $400,000 interest 10%/month

**Increase mining capacity for the community per NFT Cup Coffee & Machine Coffee from 1% to 10%**

## System Policy&#x20;

**Direct:**&#x20;

* 9% F1&#x20;

**Weak Branched:**&#x20;

* 6% condition to receive weak branch commission must have 2 F1 participate in NFT 100$&#x20;

**Leadership:**

* Level 1 weak branch stack $20,000 bonus $1,000&#x20;
* Level 2 weak branch stack $50,000 bonus $3,000&#x20;
* Level 3 weak branch stack $100,000 bonus $5,000&#x20;
* Level 4 weak branch stack $200,000 bonus $10,000&#x20;
* Level 5 weak branch stack $500,000 bonus $30,000&#x20;
* Level 6 weak branch stack $1,000,000 bonus $60,000&#x20;
* Level 7 weak branch stack $3,000,000 bonus $200,000&#x20;
* Level 8 weak branch stack $5,000,000 bonus $300,000&#x20;
* Level 9 weak branch stack $10,000,000 bonus $500,000

**Conditions:**

* Level 1 must have 2 F1 participate in buying NFT 100$&#x20;
* Level 2 must have 2 F1 level 1 & with enough weak branch sales&#x20;
* Level 3 must have 2 F1 level 2 & with enough weak branch sales&#x20;
* Level 4 must have 2 F1 level 3 & with enough weak branch sales&#x20;
* Level 5 must have 2 F1 level 4 & with enough weak branch sales&#x20;
* Level 6 must have 2 F1 level 5 & with enough weak branch sales&#x20;
* Level 7 must have 2 F1 level 6 & with enough weak branch sales&#x20;
* Level 8 must have 2 F1 level 7 & with enough weak branch sales&#x20;
* Level 9 must have 2 F1 level 8 & with enough weak branch sales


# MN Pool

**Coming soon**


# Dexs

**Bitmart*****:*** [***https://www.bitmart.com/trade/en-US?type=spot\&symbol=MAP\_USDT***](https://www.bitmart.com/trade/en-US?type=spot\&symbol=MAP_USDT)

***Uniswap:*** [***https://app.uniswap.org/explore/tokens/polygon/0x80DAD5C3985aEF54c368F64230CA07768f11C8f6***](https://app.uniswap.org/explore/tokens/polygon/0x80DAD5C3985aEF54c368F64230CA07768f11C8f6)


# Exchange

**Coming soon**


# Market

**Coinmarketcap:** <https://coinmarketcap.com/>

***Coingecko:*** [*https://www.coingecko.com/*](https://www.coingecko.com/)

**MapMarketCap:** [*https://mapmarketcap.com/*](https://mapmarketcap.com/)

**DeFi Llama*****:*** [ ](https://defillama.com/)[*https://defillama.com/*](https://defillama.com/)

**Livecoinwatch*****:*** [*https://www.livecoinwatch.com/*](https://www.livecoinwatch.com/)

**Messari:** [*https://messari.io/*](https://messari.io/)


# Ethereum DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Ethereum

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.mapnode || window.ethereum || window.ethereum?.isMapNode){
    console.log('MapNode Extension is installed!');
}
```

Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). Support `window.ethereum only` and removal `window.web3`

## To connect `MapNode` Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Ethereum] account(s).

```javascript
// Connect & get accounts
window.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.ethereum.request({method: 'eth_requestAccounts'});​
//Check if dapp connected
window.ethereum.isConnected();
//Check if the caller's current permissions
window.ethereum.request({method: 'wallet_getPermissions'});
//Check if request the given permissions 
window.ethereum.request({method: 'wallet_requestPermissions'});
```

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.ethereum.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
window.ethereum.request({ method: 'eth_accounts' }).then(accounts => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
})
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
window.ethereum.request({ method: 'has_wallet', params: ['ethereum'] })
// Example
window.ethereum.request({ method: 'has_wallet', params: ['ethereum'] }).then(() => {
  // Wallet Exists
}).catch(e => { 
  // Wallet not found
})
```

### Sign Transaction

return: `Promise<Signature | RPC: 2.0>`

```javascript
// Example Sign Transactionconst
const signature = window.ethereum.request({
    method: 'eth_signTransaction',
    params: [
        "undefined": "string",
        "to": "string",
        "gas": "string",
        "gasPrice": "string",
        "value": "string",
        "data": "string",
        "nonce": "string"
    ]
});
```

### Transfer

return `Promise<hash>`

```javascript
window.ethereum.request({
  method: 'eth_sendTransaction',
  params: [
    {
      undefined: 'string',
      to: 'string',
      gas: 'string',
      gasPrice: 'string',
      value: 'string',
      data: 'string',
      nonce: 'string'
    }
  ]
})
```

### Decrypt

return `Promise<string>`

```javascript
window.ethereum.request({
  method: 'eth_decrypt',
  params: [encryptedMessage, accounts[0]],
  })
   .then((decryptedMessage) =>
    console.log('The decrypted message is:', decryptedMessage)
  )
  .catch((error) => console.log(error.message));
})
```

### Get Encryption Public Key

return `Promise<string>`- The public encryption key of the Ethereum account whose encryption key should be retrived

```javascript
let encryptionPublicKey
window.ethereum.request({
  method: 'eth_getEncryptionPublicKey',
  params: [accounts[0]], // you must have access to the specified account
  })
  .then((result) => {
    encryptionPublicKey = result;
  })
  .catch((error) => {
    if (error.code === 4001) {
      // EIP-1193 userRejectedRequest error
      console.log("We can't encrypt anything without the key.");
    } else {
      console.error(error);
    }
  });
```

### Encrypt

```javascript
const ethUtil = require('ethereumjs-util');
const encryptedMessage = ethUtil.bufferToHex(
  Buffer.from(
    JSON.stringify(
      sigUtil.encrypt(
        {
          publicKey: encryptionPublicKey,
          data: 'hello world!,
          version: 'x25519-xsalsa20-poly1305',
        }
      )
    ),
    'utf8'
  )
);
```

### Add Ethereum Chain

result - if the request was successful, and an error otherwise.

```javascript
window.ethereum.request
interface AddEthereumChainParameter {
  chainId: string; // A 0x-prefixed hexadecimal string
  chainName: string;
  nativeCurrency: {
    name: string;
    symbol: string; // 2-6 characters long
    decimals: 18;
  };
  rpcUrls: string[];
  blockExplorerUrls?: string[];
  iconUrls?: string[]; // Currently ignored.
}
```

### Switch Ethereum Chain

Result - if the request was successful, and an error otherwise.

```javascript
try{
	await window.await ethereum.request({
	method: 'wallet_switchEthereumChain',
	    params: [{ chainId: '0xf00' }],
	});
} catch (switchError) {
  // This error code indicates that the chain has not been added to MapNode.
  if (switchError.code === 4902) {
    try {
      await ethereum.request({
        method: 'wallet_addEthereumChain',
        params: [
          {
            chainId: '0xf00',
            chainName: '...',
            rpcUrls: ['https://...'] /* ... */,
          },
        ],
      });
    } catch (addError) {
      // handle "add" error
    }
  }
  // handle other "switch" errors
}
```

### Watch Asset

Result - true if the token was added, fasle otherwise

```javascript
window.ethereum.request({
method: 'wallet_watchAsset',
    params: {
      type: 'ERC20',
      options: {
        address: '0x6FBB9C52b853363B334C937b35b47a0c3EcFE158',
        symbol: 'FOO',
        decimals: 18,
        image: 'https://foo.io/token-image.svg',
      },
    },
  })
  .then((success) => {
    if (success) {
      console.log('FOO successfully added to wallet!');
    } else {
      throw new Error('Something went wrong.');
    }
  })
  .catch(console.error);
```

### RPC Request

return `Promise<Ethereum RPC>` Currently only support HTTP(s) method Reference:

```javascript
window.ethereum.request({method: '<Your Method>', params: [args1,....]})
```

## Experimental MultiChain Connection

You can connect and receive multiChain address at the same time by using the following methods

```javascript
async function connect(){
	if(!window.mapnode){
		throw new Error('MapNode Extension is required');
	}
	const accounts = await window.mapnode.connect([<chain 1>, <chain 2>, ...]);
	
	if(!accounts){
		throw new Error('Connect Error | User cancel your request');
	}
	
	// Do anything with accounts:[<address of chain 1>, <address of chain 2>]
}
```

When your connection is success, chain's properties will be available for your next request. For example:

```javascript
// For example | connect ether & solana
async function connect(){
	const conn = await window.mapnode.connect(['ether','solana']);
	// If user accept the request, those properties will available at window.mapnode;
	//  window.solana || Checkout document of solana connection guide for more methods;
	//	window.ether || Checkout document of ether connection guide for more methods;
}
```

Chain's Name can be found at

```javascript
const { CHAIN_NAME } = window.mapnode
```

## Subscription

Support subscribe using JSON-RPC notifications. This allows clients to wait for events instead of polling for them. All result will be release at `data` event.

### Methods

```javascript
// For Subscribe
window.ethereum.request({
	method: 'eth_subscribe',
	params: ['<type>','<options>']
})
// Its result will be subscription ID which can be used for unsubscribe
// For Unsubscribe
window.ethereum.request({
	method: 'eth_unsubscribe',
	params: ['<Subscription ID>']
});
```

### Example

```javascript
// Subscribe for event
const subscriptionID = window.ethereum.request({
    method: 'eth_subscribe',
	params: ["logs", 
	{
		address: "0x6FBB9C52b853363B334C937b35b47a0c3EcFE158", 
		topics: ["0xd78a0b633d0690x6FBB9C52b853363B334C9a0c3EcF8089241dfa519e361cab902"]}]
})
// You can listen for incoming notifications by
window.ethereum.on("data", data => {
	// Do the rest of your work with data
})
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.ethereum.on('event_name', callback);
​//Example
window.ethereum.on('close', () => window.location.reload());
window.ethereum.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="176.21293646250706">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

| Method               | Description           |
| -------------------- | --------------------- |
| on(event, callback)  | Add event listener    |
| off(event, callback) | Remove event listener |


# BNB Chain DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with BNB Chain

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.mapnode || window.binancChain || window.binanceChain?.isMapNode){
    console.log('MapNode Extension is installed!');
}
```

Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). Support`window.ethereum + window.binance` and removal `window.web3`

***

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Ethereum] account(s).

```javascript
// Connect & get accounts
window.binanceChain.request({method: 'bsc_accounts'});
// Alias for connection
window.binanceChain.request({method: 'bsc_requestAccounts'});​
//Check if dapp connected
window.binancChain.isConnected();
```

```javascript
// Connect & get accounts
window.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.ethereum.request({method: 'eth_requestAccounts'});​
//Check if dapp connected
window.ethereum.isConnected();
```

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.binanceSmartChain.disconnect()
```

```
window.ethereum.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
window.binanceChain.request({ method: 'bsc_accounts' }).then(accounts => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
})
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
window.binChain.request({ method: 'has_wallet', params: ['binanceSmartChain']})
// Example
window.binanceChain.request({ method: 'has_wallet', params: ['binanceSmartChain'] }).then(() => {
  // Wallet Exists
}).catch(e => { 
  // Wallet not found
})
```

### Sign Transaction

return: `Promise<Signature | RPC: 2.0>`

```javascript
// Example Sign Transactionconst
const signature = window.binanceSmartChain.request({
    method: 'bsc_sign',
    params: {
        "undefined": "string",
        "to": "string",
        "gas": "string",
        "gasPrice": "string",
        "value": "string",
        "data": "string",
        "nonce": "string"
    }
});
```

### Transfer

return `Promise<hash>`

```javascript
window.binanceSmartChain.request({
  method: 'bsc_sendTransaction',
  params: [
    {
      undefined: 'string',
      to: 'string',
      gas: 'string',
      gasPrice: 'string',
      value: 'string',
      data: 'string',
      nonce: 'string'
    }
  ]
})
```

### RPC Request

return `Promise<binanceSmartChain RPC>` Currently only support HTTP(s) method Reference: [RPC Method](https://docs.binance.org/smart-chain/developer/rpc.html#json-rpc-methods)

```javascript
window.binanceChain.request({method: '<Your Method>', params: [args1,....]})
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.binanceChain.on('event_name', callback);
​//Example
window.binanceChain.on('close', () => window.location.reload());
window.binanceChain.on('accountsChanged', () => window.location.reload());
```

| Events          | Trigger                                          |
| --------------- | ------------------------------------------------ |
| accountsChanged | Receive when active account changed in Extension |
| networkChanged  | Receive when active network changed in Extension |
| chainChanged    | Receive when active chain changed in Extension   |
| disconnect      | Receive when disconnect from Extension           |
| close           | Alias for disconnect event                       |

| Method               | Description           |
| -------------------- | --------------------- |
| on(event, callback)  | Add event listener    |
| off(event, callback) | Remove event listener |


# Polygon DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Polygon

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.mapnode || window.ethereum || window.ethereum?.isMapNode){
    console.log('MapNode Extension is installed!');
}
```

Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). Support `window.ethereum only` and removal `window.web3`

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Ethereum] account(s).

```javascript
// Connect & get accounts
window.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.ethereum.request({method: 'eth_requestAccounts'});​
//Check if dapp connected
window.ethereum.isConnected();
//Check if the caller's current permissions
window.ethereum.request({method: 'wallet_getPermissions'});
//Check if request the given permissions 
window.ethereum.request({method: 'wallet_requestPermissions'});
```

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.ethereum.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
window.ethereum.request({ method: 'eth_accounts' }).then(accounts => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
})
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
window.ethereum.request({ method: 'has_wallet', params: ['matic'] })
// Example
window.ethereum.request({ method: 'has_wallet', params: ['matic'] }).then(() => {
  // Wallet Exists
}).catch(e => { 
  // Wallet not found
})
```

### Sign Transaction

return: `Promise<Signature | RPC: 2.0>`

```javascript
// Example Sign Transactionconst
const signature = window.ethereum.request({
    method: 'eth_signTransaction',
    params: [
        "undefined": "string",
        "to": "string",
        "gas": "string",
        "gasPrice": "string",
        "value": "string",
        "data": "string",
        "nonce": "string"
    ]
});
```

### Transfer

return `Promise<hash>`

```javascript
window.ethereum.request({
  method: 'eth_sendTransaction',
  params: [
    {
      undefined: 'string',
      to: 'string',
      gas: 'string',
      gasPrice: 'string',
      value: 'string',
      data: 'string',
      nonce: 'string'
    }
  ]
})
```

### Decrypt

return `Promise<string>`

```javascript
window.ethereum.request({
  method: 'eth_decrypt',
  params: [encryptedMessage, accounts[0]],
  })
   .then((decryptedMessage) =>
    console.log('The decrypted message is:', decryptedMessage)
  )
  .catch((error) => console.log(error.message));
})
```

### Get Encryption Public Key

return `Promise<string>`- The public encryption key of the Ethereum account whose encryption key should be retrived

```javascript
let encryptionPublicKey
window.ethereum.request({
  method: 'eth_getEncryptionPublicKey',
  params: [accounts[0]], // you must have access to the specified account
  })
  .then((result) => {
    encryptionPublicKey = result;
  })
  .catch((error) => {
    if (error.code === 4001) {
      // EIP-1193 userRejectedRequest error
      console.log("We can't encrypt anything without the key.");
    } else {
      console.error(error);
    }
  });
```

### Encrypt

```javascript
const ethUtil = require('ethereumjs-util');
const encryptedMessage = ethUtil.bufferToHex(
  Buffer.from(
    JSON.stringify(
      sigUtil.encrypt(
        {
          publicKey: encryptionPublicKey,
          data: 'hello world!,
          version: 'x25519-xsalsa20-poly1305',
        }
      )
    ),
    'utf8'
  )
);
```

### Add Ethereum Chain

Return null - if the request was successful, and an error otherwise.

```javascript
window.ethereum.request
interface AddEthereumChainParameter {
  chainId: string; // A 0x-prefixed hexadecimal string
  chainName: string;
  nativeCurrency: {
    name: string;
    symbol: string; // 2-6 characters long
    decimals: 18;
  };
  rpcUrls: string[];
  blockExplorerUrls?: string[];
  iconUrls?: string[]; // Currently ignored.
}
```

### Switch Ethereum Chain

Return null- if the request was successful, and an error otherwise.

```javascript
window.await ethereum.request({
method: 'wallet_switchEthereumChain',
    params: [{ chainId: '0xf00' }],
  });
} catch (switchError) {
  // This error code indicates that the chain has not been added to MapNode.
  if (switchError.code === 4902) {
    try {
      await ethereum.request({
        method: 'wallet_addEthereumChain',
        params: [
          {
            chainId: '0xf00',
            chainName: '...',
            rpcUrls: ['https://...'] /* ... */,
          },
        ],
      });
    } catch (addError) {
      // handle "add" error
    }
  }
  // handle other "switch" errors
}
```

### Watch Asset

Return Boolean - true if the token was added, fasle otherwise

```javascript
window.ethereum.request({
method: 'wallet_watchAsset',
    params: {
      type: 'ERC20',
      options: {
        address: '0xb60e8dd61c5d32be8058bb8eb970870f07233155',
        symbol: 'FOO',
        decimals: 18,
        image: 'https://foo.io/token-image.svg',
      },
    },
  })
  .then((success) => {
    if (success) {
      console.log('FOO successfully added to wallet!');
    } else {
      throw new Error('Something went wrong.');
    }
  })
  .catch(console.error);
```

### RPC Request

return `Promise<Ethereum RPC>` Currently only support HTTP(s) method Reference: [RPC Method](http://google.com)

```javascript
window.ethereum.request({method: '<Your Method>', params: [args1,....]})
```

## Experimental MultiChain Connection

You can connect and receive multiChain address at the same time by using the following methods

```javascript
async function connect(){
	if(!window.mapnode){
		throw new Error('MapNode Extension is required');
	}
	const accounts = await window.mapnode.connect([<chain 1>, <chain 2>, ...]);
	
	if(!accounts){
		throw new Error('Connect Error | User cancel your request');
	}
	
	// Do anything with accounts:[<address of chain 1>, <address of chain 2>]
}
```

When your connection is success, chain's properties will be available for your next request. For example:

```javascript
// For example | connect ether & solana
async function connect(){
	const conn = await window.mapnode.connect(['ether','solana']);
	// If user accept the request, those properties will available at window.mapnode;
	//  window.solana || Checkout document of solana connection guide for more methods;
	//	window.ether || Checkout document of ether connection guide for more methods;
}
```

Chain's Name can be found at

```javascript
const { CHAIN_NAME } = window.mapnode
```

## Subscription

Support subscribe using JSON-RPC notifications. This allows clients to wait for events instead of polling for them. All result will be release at `data` event.

#### Methods

```javascript
// For Subscribe
window.ethereum.request({
	method: 'eth_subscribe',
	params: ['<type>','<options>']
})
// Its result will be subscription ID which can be used for unsubscribe
// For Unsubscribe
window.ethereum.request({
	method: 'eth_unsubscribe',
	params: ['<Subscription ID>']
});
```

#### Example

```javascript
// Subscribe for event
const subscriptionID = window.ethereum.request({
    method: 'eth_subscribe',
	params: ["logs", 
	{
		address: "0x83254645645879324234238216cfd", 
		topics: ["0xd7twwb8bb633dsfs2a35a6089t89ury241d099fa519e361cab902"]}]
})
// You can listen for incoming notifications by
window.ethereum.on("data", data => {
	// Do the rest of your work with data
})
```

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.ethereum.on('event_name', callback);
​//Example
window.ethereum.on('close', () => window.location.reload());
window.ethereum.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Solana DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Solana

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.mapnode){
    console.log('MapNode Extension is installed!');
}
```

Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). Support `window.mapnode.sol`

***

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Ethereum] account(s).

```javascript
// Connect & get accounts
window.mapnode.sol.request({method: 'sol_accounts'});
// Alias for connection
window.mapnode.sol.request({method: 'sol_requestAccounts'});​
//Check if dapp connected
window.mapnode.sol.isConnected();
```

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.mapnode.sol.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
window.mapnode.sol.request({ method: 'sol_accounts' }).then(accounts => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
})
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
window.mapnode.sol.request({ method: 'has_wallet', params: ['solana'] })
// Example
window.mapnode.sol.request({ method: 'has_wallet', params: ['solana'] }).then(() => {
  // Wallet Exists
}).catch(e => { 
  // Wallet not found
})
```

### Sign Transaction

return: \`Promise<({signature: base58, publicKey: PublicKey})>

```javascript
// Example Sign Transaction
const signature = window.mapnode.sol.request({
    method: 'sol_sign',
    params: [<Transaction>]
}).then(({publicKey, signature}) => {
	//Do something with publicKey and signature
});
```

### Verify Signature

return `Promise<boolean>`

```javascript
window.mapnode.sol.request({
  method: 'sol_verify',
  params: [signature, msg]
})
```

### RPC Request

return `Promise<Solana RPC>` Currently only support HTTP(s) method Reference:

```javascript
window.mapnode.sol.request({method: '<Your Method>', params: [args1,....]})
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.mapnode.sol.on('event_name', callback);
​//Example
window.mapnode.sol.on('close', () => window.location.reload());
window.mapnode.sol.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Near DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Near

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.mapnode || window.mapnode.near || window.near?.isMapNode){
    console.log('MapNode Extension is installed!');›
}
```

Notice: MapNode Extension Testnet is under development and not available now.

Support `window.near only` and removal `window.web3`

***

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Near] account(s).

```javascript
// Connect DApps
window.MapNode.near.connect(<Prefix: optional>,<Contract ID: optional>);
// Get Account
window.MapNode.near.selectedAddress;
// Get Full Accounts State
window.MapNode.near.request({ method: 'near_accountState' });
// Check if DApps connected
window.MapNode.near.isConnected();
```

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.MapNode.near.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Call View Method

```javascript
const params = {
    contractId: 'token.v2.ref-finance.near',
    method: 'ft_balance_of',
    args: {
        account_id: account
    }
}
const balance = await window.MapNode?.near.request({method: 'near_view', params})
console.log("Your near wallet balance ", balance)
```

### SignAndSend Transaction

```javascript
const params = {
    transactions,
    receiver: account
}

const result = await window.MapNode?.near.request({method: 'near_signAndSendTransaction', params})
const balance = await window.MapNode?.near.request({method: 'near_view', params})
console.log("Your near wallet balance ", balance)
```

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.mapnode.sol.on('event_name', callback);
​//Example
window.mapnode.sol.on('close', () => window.location.reload());
window.mapnode.sol.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Cosmos DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Cosmos Base Chain

To detect whether your browser is running MapNode Extension, please use:

```javascript
if (window.MapNode) {
  console.log('MapNode Extension is installed!');
}
```

## Notice: MapNode Extension Testnet is under development and not available now.

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Cosmos] account(s).

```javascript
// Connect only
const connection = window.MapNode.cosmos('<chain: String>');
// Connect & get accounts
connection.request({ method: 'cosmos_accounts' });
// Check whether dapp connected or not
connection.isConnected();
```

Currently chains support: \['terra','cosmos']

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```javascript
connection.disconnect();
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
connection.request({ method: 'cosmos_accounts' }).then((accounts) => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
});
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
const hasWallet = connection.request({ method: 'has_wallet', params: ['<chain>'] });
```

### Execute contract function

return: `Promise<Hash>`

```javascript
const signature = connection.request({
  method: 'cosmos_execute',
  params: ['<contractAddres: string>', '<executeMsg: string>'],
});

// Example Execute Contract
let cw20Contract =
  'juno10rktvmllvgctcmhl5vv8kl3mdksukyqf2tdveh8drpn0sppugwwqjzz30z';
let execMsg =
  '{"transfer":{"amount":"1","recipient":"juno1cx4nq77x3unvl2xsa9fmm9drxkexzkjnzwt2y7"}}';

const response = await connection.request({
  method: 'cosmos_execute',
  params: [cw20Contract, execMsg],
});
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
connection.on('event_name', callback);
​//Example
connection.on('close', () => window.location.reload());
connection.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Secret DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Secret Network Base Chain

To detect whether your browser is running MapNode Extension, please use:

```javascript
if (window.MapNode) {
  console.log('MapNode Extension is installed!');
}
```

## Notice: MapNode Extension Testnet is under development and not available now.

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Secret Network] account(s).

```javascript
// Connect only
const connection = window.MapNode.cosmos('<chain: String>');
// Connect & get accounts
connection.request({ method: 'cosmos_accounts' });
// Check whether dapp connected or not
connection.isConnected();
```

Currently chains support: \['terra','secret']

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```javascript
connection.disconnect();
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
connection.request({ method: 'cosmos_accounts' }).then((accounts) => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
});
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
const hasWallet = connection.request({ method: 'has_wallet', params: ['<chain>'] });
```

### Execute contract function

return: `Promise<Hash>`

```javascript
const signature = connection.request({
  method: 'cosmos_execute',
  params: ['<contractAddres: string>', '<executeMsg: string>'],
});

// Example Execute Contract
let cw20Contract =
  'juno10rktvmllvgctcmhl5vv8kl3mdksukyqf2tdveh8drpn0sppugwwqjzz30z';
let execMsg =
  '{"transfer":{"amount":"1","recipient":"juno1cx4nq77x3unvl2xsa9fmm9drxkexzkjnzwt2y7"}}';

const response = await connection.request({
  method: 'cosmos_execute',
  params: [cw20Contract, execMsg],
});
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
connection.on('event_name', callback);
​//Example
connection.on('close', () => window.location.reload());
connection.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# KAVA DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with KAVA Base Chain

To detect whether your browser is running MapNode Extension, please use:

```javascript
if (window.MapNode) {
  console.log('MapNode Extension is installed!');
}
```

## Notice: MapNode Extension Testnet is under development and not available now.

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like KAVA] account(s).

```javascript
// Connect only
const connection = window.MapNode.cosmos('<chain: String>');
// Connect & get accounts
connection.request({ method: 'cosmos_accounts' });
// Check whether dapp connected or not
connection.isConnected();
```

Currently chains support: \['terra','kava']

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```javascript
connection.disconnect();
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
connection.request({ method: 'cosmos_accounts' }).then((accounts) => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
});
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
const hasWallet = connection.request({ method: 'has_wallet', params: ['<chain>'] });
```

### Execute contract function

return: `Promise<Hash>`

```javascript
const signature = connection.request({
  method: 'cosmos_execute',
  params: ['<contractAddres: string>', '<executeMsg: string>'],
});

// Example Execute Contract
let cw20Contract =
  'juno10rktvmllvgctcmhl5vv8kl3mdksukyqf2tdveh8drpn0sppugwwqjzz30z';
let execMsg =
  '{"transfer":{"amount":"1","recipient":"juno1cx4nq77x3unvl2xsa9fmm9drxkexzkjnzwt2y7"}}';

const response = await connection.request({
  method: 'cosmos_execute',
  params: [cw20Contract, execMsg],
});
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
connection.on('event_name', callback);
​//Example
connection.on('close', () => window.location.reload());
connection.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Persistence DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Persistence Base Chain

To detect whether your browser is running MapNode Extension, please use:

```javascript
if (window.MapNode) {
  console.log('MapNode Extension is installed!');
}
```

## Notice: MapNode Extension Testnet is under development and not available now.

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Persistence] account(s).

```javascript
// Connect only
const connection = window.MapNode.cosmos('<chain: String>');
// Connect & get accounts
connection.request({ method: 'cosmos_accounts' });
// Check whether dapp connected or not
connection.isConnected();
```

Currently chains support: \['terra','persistence']

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```javascript
connection.disconnect();
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
connection.request({ method: 'cosmos_accounts' }).then((accounts) => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
});
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
const hasWallet = connection.request({ method: 'has_wallet', params: ['<chain>'] });
```

### Execute contract function

return: `Promise<Hash>`

```javascript
const signature = connection.request({
  method: 'cosmos_execute',
  params: ['<contractAddres: string>', '<executeMsg: string>'],
});

// Example Execute Contract
let cw20Contract =
  'juno10rktvmllvgctcmhl5vv8kl3mdksukyqf2tdveh8drpn0sppugwwqjzz30z';
let execMsg =
  '{"transfer":{"amount":"1","recipient":"juno1cx4nq77x3unvl2xsa9fmm9drxkexzkjnzwt2y7"}}';

const response = await connection.request({
  method: 'cosmos_execute',
  params: [cw20Contract, execMsg],
});
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
connection.on('event_name', callback);
​//Example
connection.on('close', () => window.location.reload());
connection.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Terra DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Terra

To detect whether your browser is running MapNode Extension, please use:

```javascript
if (window.MapNode) {
  console.log('MapNode Extension is installed!');
}
```

## Notice: MapNode Extension Testnet is under development and not available now.

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Cosmos] account(s).

```javascript
// Connect only
const connection = window.MapNode.terra('<chain: String>');
// Connect & get accounts
connection.request({ method: 'terra_accounts' });
// Check whether dapp connected or not
connection.isConnected();
```

Currently chains support: \['terra','cosmos']

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```javascript
connection.disconnect();
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
connection.request({ method: 'terra_accounts' }).then((accounts) => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
});
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
const hasWallet = connection.request({ method: 'has_wallet', params: ['<chain>'] });
```

### Execute contract function

return: `Promise<Hash>`

```javascript
const signature = connection.request({
  method: 'terra_execute',
  params: ['<contractAddres: string>', '<executeMsg: string>'],
});

// Example Execute Contract
let cw20Contract =
  'juno10rktvmllvgctcmhl5vv8kl3mdksukyqf2tdveh8drpn0sppugwwqjzz30z';
let execMsg =
  '{"transfer":{"amount":"1","recipient":"juno1cx4nq77x3unvl2xsa9fmm9drxkexzkjnzwt2y7"}}';

const response = await connection.request({
  method: 'terra_execute',
  params: [cw20Contract, execMsg],
});
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
connection.on('event_name', callback);
​//Example
connection.on('close', () => window.location.reload());
connection.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Ronin DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Ronin

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.MapNode || window.ethereum || window.ethereum?.isMapNode){
    console.log('MapNode Extension is installed!');
}
```

Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). Support `window.ethereum only` and removal `window.web3`

***

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Ethereum] account(s).

```javascript
// Connect & get accounts
window.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.ethereum.request({method: 'eth_requestAccounts'});​
//Check if dapp connected
window.ethereum.isConnected();
```

***

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.ethereum.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
window.ethereum.request({ method: 'eth_accounts' }).then(accounts => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
})
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
window.ethereum.request({ method: 'has_wallet', params: ['ronin'] })
// Example
window.ethereum.request({ method: 'has_wallet', params: ['ronin'] }).then(() => {
  // Wallet Exists
}).catch(e => { 
  // Wallet not found
})
```

### Sign

return: `Promise<Signature | RPC: 2.0>`

```javascript
// Example Sign 
const signature = window.ethereum.request({
    method: 'eth_sign',
    params: [
     {
        "to": "string",
        "gas": "string",
        "gasPrice": "string",
        "value": "string",
        "data": "string",
        "nonce": "string"
     }
    ]
});
```

### Transfer

return `Promise<hash>`

```javascript
window.ethereum.request({
  method: 'eth_sendTransaction',
  params: [
    {
      'to': 'string',
      'gas': 'string',
      'gasPrice': 'string',
      'value': 'string',
      'data': 'string',
      'nonce': 'string'
    }
  ]
})
```

### RPC Request

return `Promise<Ethereum RPC>` Currently only support HTTP(s) method Reference: [RPC Method](https://github.com/axieinfinity/ronin-smart-contracts/tree/master/test/chain)

```javascript
window.ethereum.request({method: '<Your Method>', params: [args1,....]})
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.ethereum.on('event_name', callback);
​//Example
window.ethereum.on('close', () => window.location.reload());
window.ethereum.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Boba DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Boba Network

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.MapNode || window.ethereum || window.ethereum?.isMapNode){
    console.log('MapNode Extension is installed!');
}
```

Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). Support `window.ethereum only` and removal `window.web3`

***

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Ethereum] account(s).

```javascript
// Connect & get accounts
window.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.ethereum.request({method: 'eth_requestAccounts'});​
//Check if dapp connected
window.ethereum.isConnected();
//Check if the caller's current permissions
window.ethereum.request({method: 'wallet_getPermissions'});
//Check if request the given permissions 
window.ethereum.request({method: 'wallet_requestPermissions'});
```

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.ethereum.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
window.ethereum.request({ method: 'eth_accounts' }).then(accounts => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
})
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
window.ethereum.request({ method: 'has_wallet', params: ['boba'] })
// Example
window.ethereum.request({ method: 'has_wallet', params: ['boba'] }).then(() => {
  // Wallet Exists
}).catch(e => { 
  // Wallet not found
})
```

### Sign Transaction

return: `Promise<Signature | RPC: 2.0>`

```javascript
// Example Sign Transactionconst
const signature = window.ethereum.request({
    method: 'eth_signTransaction',
    params: [
        "undefined": "string",
        "to": "string",
        "gas": "string",
        "gasPrice": "string",
        "value": "string",
        "data": "string",
        "nonce": "string"
    ]
});
```

### Transfer

return `Promise<hash>`

```javascript
window.ethereum.request({
  method: 'eth_sendTransaction',
  params: [
    {
      undefined: 'string',
      to: 'string',
      gas: 'string',
      gasPrice: 'string',
      value: 'string',
      data: 'string',
      nonce: 'string'
    }
  ]
})
```

### Decrypt

return `Promise<string>`

```javascript
window.ethereum.request({
  method: 'eth_decrypt',
  params: [encryptedMessage, accounts[0]],
  })
   .then((decryptedMessage) =>
    console.log('The decrypted message is:', decryptedMessage)
  )
  .catch((error) => console.log(error.message));
})
```

### Get Encryption Public Key

return `Promise<string>`- The public encryption key of the Ethereum account whose encryption key should be retrived

```javascript
let encryptionPublicKey
window.ethereum.request({
  method: 'eth_getEncryptionPublicKey',
  params: [accounts[0]], // you must have access to the specified account
  })
  .then((result) => {
    encryptionPublicKey = result;
  })
  .catch((error) => {
    if (error.code === 4001) {
      // EIP-1193 userRejectedRequest error
      console.log("We can't encrypt anything without the key.");
    } else {
      console.error(error);
    }
  });
```

### Encrypt

```javascript
const ethUtil = require('ethereumjs-util');
const encryptedMessage = ethUtil.bufferToHex(
  Buffer.from(
    JSON.stringify(
      sigUtil.encrypt(
        {
          publicKey: encryptionPublicKey,
          data: 'hello world!,
          version: 'x25519-xsalsa20-poly1305',
        }
      )
    ),
    'utf8'
  )
);
```

### Add Ethereum Chain

Return null - if the request was successful, and an error otherwise.

```javascript
window.ethereum.request
interface AddEthereumChainParameter {
  chainId: string; // A 0x-prefixed hexadecimal string
  chainName: string;
  nativeCurrency: {
    name: string;
    symbol: string; // 2-6 characters long
    decimals: 18;
  };
  rpcUrls: string[];
  blockExplorerUrls?: string[];
  iconUrls?: string[]; // Currently ignored.
}
```

### Switch Ethereum Chain

Return null - if the request was successful, and an error otherwise.

```javascript
window.await ethereum.request({
method: 'wallet_switchEthereumChain',
    params: [{ chainId: '0xf00' }],
  });
} catch (switchError) {
  // This error code indicates that the chain has not been added to MapNode.
  if (switchError.code === 4902) {
    try {
      await ethereum.request({
        method: 'wallet_addEthereumChain',
        params: [
          {
            chainId: '0xf00',
            chainName: '...',
            rpcUrls: ['https://...'] /* ... */,
          },
        ],
      });
    } catch (addError) {
      // handle "add" error
    }
  }
  // handle other "switch" errors
}
```

### Watch Asset

Return Boolean - true if the token was added, fasle otherwise

```javascript
window.ethereum.request({
method: 'wallet_watchAsset',
    params: {
      type: 'ERC20',
      options: {
        address: '0xb60e8dd61c5d32be8058bb8eb970870f07233155',
        symbol: 'FOO',
        decimals: 18,
        image: 'https://foo.io/token-image.svg',
      },
    },
  })
  .then((success) => {
    if (success) {
      console.log('FOO successfully added to wallet!');
    } else {
      throw new Error('Something went wrong.');
    }
  })
  .catch(console.error);
```

### RPC Request

return `Promise<Ethereum RPC>` Currently only support HTTP(s) method Reference: [RPC Method](http://google.com)

```javascript
window.ethereum.request({method: '<Your Method>', params: [args1,....]})
```

## Experimental MultiChain Connection

You can connect and receive multiChain address at the same time by using the following methods

```javascript
async function connect(){
	if(!window.MapNode){
		throw new Error('MapNode Extension is required');
	}
	const accounts = await window.MapNode.connect([<chain 1>, <chain 2>, ...]);
	
	if(!accounts){
		throw new Error('Connect Error | User cancel your request');
	}
	
	// Do anything with accounts:[<address of chain 1>, <address of chain 2>]
}
```

When your connection is success, chain's properties will be available for your next request. For example:

```javascript
// For example | connect ether & solana
async function connect(){
	const conn = await window.MapNode.connect(['ether','solana']);
	// If user accept the request, those properties will available at window.MapNode;
	//  window.solana || Checkout document of solana connection guide for more methods;
	//	window.ether || Checkout document of ether connection guide for more methods;
}
```

Chain's Name can be found at

```javascript
const { CHAIN_NAME } = window.MapNode
```

## Subscription

Support subscribe using JSON-RPC notifications. This allows clients to wait for events instead of polling for them. All result will be release at `data` event.

#### Methods

```javascript
// For Subscribe
window.ethereum.request({
	method: 'eth_subscribe',
	params: ['<type>','<options>']
})
// Its result will be subscription ID which can be used for unsubscribe
// For Unsubscribe
window.ethereum.request({
	method: 'eth_unsubscribe',
	params: ['<Subscription ID>']
});
```

#### Example

```javascript
// Subscribe for event
const subscriptionID = window.ethereum.request({
    method: 'eth_subscribe',
	params: ["logs", 
	{
		address: "0x8320fe7702b96808f7bbc0d4a888ed1468216cfd", 
		topics: ["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"]}]
})
// You can listen for incoming notifications by
window.ethereum.on("data", data => {
	// Do the rest of your work with data
})
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.ethereum.on('event_name', callback);
​//Example
window.ethereum.on('close', () => window.location.reload());
window.ethereum.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Harmony DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Harmony

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.MapNode || window.ethereum || window.ethereum?.isMapNode ){
    console.log('MapNode Extension is installed!');
}
```

Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). Support `window.ethereum only` and removal `window.web3`

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Ethereum] account(s).

```javascript
// Connect & get accounts
window.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.ethereum.request({method: 'eth_requestAccounts'});​
//Check if dapp connected
window.ethereum.isConnected();
//Check if the caller's current permissions
window.ethereum.request({method: 'wallet_getPermissions'});
//Check if request the given permissions 
window.ethereum.request({method: 'wallet_requestPermissions'});
```

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.ethereum.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
window.ethereum.request({ method: 'eth_accounts' }).then(accounts => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
})
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
window.ethereum.request({ method: 'has_wallet', params: ['harmony'] })
// Example
window.ethereum.request({ method: 'has_wallet', params: ['harmony'] }).then(() => {
  // Wallet Exists
}).catch(e => { 
  // Wallet not found
})
```

### Sign Transaction

return: `Promise<Signature | RPC: 2.0>`

```javascript
// Example Sign Transactionconst
const signature = window.ethereum.request({
    method: 'eth_signTransaction',
    params: [
        "undefined": "string",
        "to": "string",
        "gas": "string",
        "gasPrice": "string",
        "value": "string",
        "data": "string",
        "nonce": "string"
    ]
});
```

### Transfer

return `Promise<hash>`

```javascript
window.ethereum.request({
  method: 'eth_sendTransaction',
  params: [
    {
      undefined: 'string',
      to: 'string',
      gas: 'string',
      gasPrice: 'string',
      value: 'string',
      data: 'string',
      nonce: 'string'
    }
  ]
})
```

### Decrypt

return `Promise<string>`

```javascript
window.ethereum.request({
  method: 'eth_decrypt',
  params: [encryptedMessage, accounts[0]],
  })
   .then((decryptedMessage) =>
    console.log('The decrypted message is:', decryptedMessage)
  )
  .catch((error) => console.log(error.message));
})
```

### Get Encryption Public Key

return `Promise<string>`- The public encryption key of the Ethereum account whose encryption key should be retrived

```javascript
let encryptionPublicKey
window.ethereum.request({
  method: 'eth_getEncryptionPublicKey',
  params: [accounts[0]], // you must have access to the specified account
  })
  .then((result) => {
    encryptionPublicKey = result;
  })
  .catch((error) => {
    if (error.code === 4001) {
      // EIP-1193 userRejectedRequest error
      console.log("We can't encrypt anything without the key.");
    } else {
      console.error(error);
    }
  });
```

### Encrypt

```javascript
const ethUtil = require('ethereumjs-util');
const encryptedMessage = ethUtil.bufferToHex(
  Buffer.from(
    JSON.stringify(
      sigUtil.encrypt(
        {
          publicKey: encryptionPublicKey,
          data: 'hello world!,
          version: 'x25519-xsalsa20-poly1305',
        }
      )
    ),
    'utf8'
  )
);
```

### Add Ethereum Chain

Return null - if the request was successful, and an error otherwise.

```javascript
window.ethereum.request
interface AddEthereumChainParameter {
  chainId: string; // A 0x-prefixed hexadecimal string
  chainName: string;
  nativeCurrency: {
    name: string;
    symbol: string; // 2-6 characters long
    decimals: 18;
  };
  rpcUrls: string[];
  blockExplorerUrls?: string[];
  iconUrls?: string[]; // Currently ignored.
}
```

### Switch Ethereum Chain

Return null - if the request was successful, and an error otherwise.

```javascript
window.await ethereum.request({
method: 'wallet_switchEthereumChain',
    params: [{ chainId: '0xf00' }],
  });
} catch (switchError) {
  // This error code indicates that the chain has not been added to MapNode .
  if (switchError.code === 4902) {
    try {
      await ethereum.request({
        method: 'wallet_addEthereumChain',
        params: [
          {
            chainId: '0xf00',
            chainName: '...',
            rpcUrls: ['https://...'] /* ... */,
          },
        ],
      });
    } catch (addError) {
      // handle "add" error
    }
  }
  // handle other "switch" errors
}
```

### Watch Asset

Return Boolean - true if the token was added, fasle otherwise

```javascript
window.ethereum.request({
method: 'wallet_watchAsset',
    params: {
      type: 'ERC20',
      options: {
        address: '0xb60e8dd61c5d32be8058bb8eb970870f07233155',
        symbol: 'FOO',
        decimals: 18,
        image: 'https://foo.io/token-image.svg',
      },
    },
  })
  .then((success) => {
    if (success) {
      console.log('FOO successfully added to wallet!');
    } else {
      throw new Error('Something went wrong.');
    }
  })
  .catch(console.error);
```

### RPC Request

return `Promise<Ethereum RPC>` Currently only support HTTP(s) method Reference: [RPC Method](http://google.com)

```javascript
window.ethereum.request({method: '<Your Method>', params: [args1,....]})
```

## Experimental MultiChain Connection

You can connect and receive multiChain address at the same time by using the following methods

```javascript
async function connect(){
	if(!window.MapNode ){
		throw new Error('MapNode Extension is required');
	}
	const accounts = await window.MapNode.connect([<chain 1>, <chain 2>, ...]);
	
	if(!accounts){
		throw new Error('Connect Error | User cancel your request');
	}
	
	// Do anything with accounts:[<address of chain 1>, <address of chain 2>]
}
```

When your connection is success, chain's properties will be available for your next request. For example:

```javascript
// For example | connect ether & solana
async function connect(){
	const conn = await window.MapNode.connect(['ether','solana']);
	// If user accept the request, those properties will available at window.MapNode ;
	//  window.solana || Checkout document of solana connection guide for more methods;
	//	window.ether || Checkout document of ether connection guide for more methods;
}
```

Chain's Name can be found at

```javascript
const { CHAIN_NAME } = window.MapNode 
```

## Subscription

Support subscribe using JSON-RPC notifications. This allows clients to wait for events instead of polling for them. All result will be release at `data` event.

#### Methods

```javascript
// For Subscribe
window.ethereum.request({
	method: 'eth_subscribe',
	params: ['<type>','<options>']
})
// Its result will be subscription ID which can be used for unsubscribe
// For Unsubscribe
window.ethereum.request({
	method: 'eth_unsubscribe',
	params: ['<Subscription ID>']
});
```

#### Example

```javascript
// Subscribe for event
const subscriptionID = window.ethereum.request({
    method: 'eth_subscribe',
	params: ["logs", 
	{
		address: "0x8320fe7702b96808f7bbc0d4a888ed1468216cfd", 
		topics: ["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"]}]
})
// You can listen for incoming notifications by
window.ethereum.on("data", data => {
	// Do the rest of your work with data
})
```

***

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.ethereum.on('event_name', callback);
​//Example
window.ethereum.on('close', () => window.location.reload());
window.ethereum.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Klaytn DApps Integration

Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.‌

## To detect MapNode Extension with Klaytn

To detect whether your browser is running MapNode Extension, please use:

```javascript
if(window.MapNode || window.ethereum || window.ethereum?.isMapNode ){
    console.log('MapNode Extension is installed!');
}
```

Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). Support `window.ethereum only` and removal `window.web3`

## To connect MapNode Extension Wallet

To connect MapNode Extension means to access the user's \[blockchain - like Ethereum] account(s).

```javascript
// Connect & get accounts
window.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.ethereum.request({method: 'eth_requestAccounts'});​
//Check if dapp connected
window.ethereum.isConnected();
//Check if the caller's current permissions
window.ethereum.request({method: 'wallet_getPermissions'});
//Check if request the given permissions 
window.ethereum.request({method: 'wallet_requestPermissions'});
```

## To disconnect MapNode Extension Wallet

To disconnect MapNode Extension, please use:

```
window.ethereum.disconnect()
```

## To experience functions

Once your account is connected, let's start experiencing more functions.‌

### Get Current Account

return `Promise<Array[String]>`

* If wallet can not be found, return `[]` instead of `throw Error`

```javascript
window.ethereum.request({ method: 'eth_accounts' }).then(accounts => {
  if (accounts[0]) {
    // Do something with accounts
  } else {
    // Wallet not found
  }
})
```

### Check wallet whether exists or not

return `Promise<{data: Boolean}>`

```javascript
window.ethereum.request({ method: 'has_wallet', params: ['klaytn'] })
// Example
window.ethereum.request({ method: 'has_wallet', params: ['klaytn'] }).then(() => {
  // Wallet Exists
}).catch(e => { 
  // Wallet not found
})
```

### Sign Transaction

return: `Promise<Signature | RPC: 2.0>`

```javascript
// Example Sign Transactionconst
const signature = window.ethereum.request({
    method: 'eth_signTransaction',
    params: [
        "undefined": "string",
        "to": "string",
        "gas": "string",
        "gasPrice": "string",
        "value": "string",
        "data": "string",
        "nonce": "string"
    ]
});
```

### Transfer

return `Promise<hash>`

```javascript
window.ethereum.request({
  method: 'eth_sendTransaction',
  params: [
    {
      undefined: 'string',
      to: 'string',
      gas: 'string',
      gasPrice: 'string',
      value: 'string',
      data: 'string',
      nonce: 'string'
    }
  ]
})
```

### Decrypt

return `Promise<string>`

```javascript
window.ethereum.request({
  method: 'eth_decrypt',
  params: [encryptedMessage, accounts[0]],
  })
   .then((decryptedMessage) =>
    console.log('The decrypted message is:', decryptedMessage)
  )
  .catch((error) => console.log(error.message));
})
```

### Get Encryption Public Key

return `Promise<string>`- The public encryption key of the Ethereum account whose encryption key should be retrived

```javascript
let encryptionPublicKey
window.ethereum.request({
  method: 'eth_getEncryptionPublicKey',
  params: [accounts[0]], // you must have access to the specified account
  })
  .then((result) => {
    encryptionPublicKey = result;
  })
  .catch((error) => {
    if (error.code === 4001) {
      // EIP-1193 userRejectedRequest error
      console.log("We can't encrypt anything without the key.");
    } else {
      console.error(error);
    }
  });
```

### Encrypt

```javascript
const ethUtil = require('ethereumjs-util');
const encryptedMessage = ethUtil.bufferToHex(
  Buffer.from(
    JSON.stringify(
      sigUtil.encrypt(
        {
          publicKey: encryptionPublicKey,
          data: 'hello world!,
          version: 'x25519-xsalsa20-poly1305',
        }
      )
    ),
    'utf8'
  )
);
```

### Add Ethereum Chain

Return null - if the request was successful, and an error otherwise.

```javascript
window.ethereum.request
interface AddEthereumChainParameter {
  chainId: string; // A 0x-prefixed hexadecimal string
  chainName: string;
  nativeCurrency: {
    name: string;
    symbol: string; // 2-6 characters long
    decimals: 18;
  };
  rpcUrls: string[];
  blockExplorerUrls?: string[];
  iconUrls?: string[]; // Currently ignored.
}
```

### Switch Ethereum Chain

Return null - if the request was successful, and an error otherwise.

```javascript
window.await ethereum.request({
method: 'wallet_switchEthereumChain',
    params: [{ chainId: '0xf00' }],
  });
} catch (switchError) {
  // This error code indicates that the chain has not been added to MapNode.
  if (switchError.code === 4902) {
    try {
      await ethereum.request({
        method: 'wallet_addEthereumChain',
        params: [
          {
            chainId: '0xf00',
            chainName: '...',
            rpcUrls: ['https://...'] /* ... */,
          },
        ],
      });
    } catch (addError) {
      // handle "add" error
    }
  }
  // handle other "switch" errors
}
```

### Watch Asset

Return Boolean - true if the token was added, fasle otherwise

```javascript
window.ethereum.request({
method: 'wallet_watchAsset',
    params: {
      type: 'ERC20',
      options: {
        address: '0xb60e8dd61c5d32be8058bb8eb970870f07233155',
        symbol: 'FOO',
        decimals: 18,
        image: 'https://foo.io/token-image.svg',
      },
    },
  })
  .then((success) => {
    if (success) {
      console.log('FOO successfully added to wallet!');
    } else {
      throw new Error('Something went wrong.');
    }
  })
  .catch(console.error);
```

### RPC Request

return `Promise<Ethereum RPC>` Currently only support HTTP(s) method Reference: [RPC Method](http://google.com)

```javascript
window.ethereum.request({method: '<Your Method>', params: [args1,....]})
```

## Experimental MultiChain Connection

You can connect and receive multiChain address at the same time by using the following methods

```javascript
async function connect(){
	if(!window.MapNode){
		throw new Error('MapNode Extension is required');
	}
	const accounts = await window.MapNode.connect([<chain 1>, <chain 2>, ...]);
	
	if(!accounts){
		throw new Error('Connect Error | User cancel your request');
	}
	
	// Do anything with accounts:[<address of chain 1>, <address of chain 2>]
}
```

When your connection is success, chain's properties will be available for your next request. For example:

```javascript
// For example | connect ether & solana
async function connect(){
	const conn = await window.MapNode.connect(['ether','solana']);
	// If user accept the request, those properties will available at window.MapNode ;
	//  window.solana || Checkout document of solana connection guide for more methods;
	//	window.ether || Checkout document of ether connection guide for more methods;
}
```

Chain's Name can be found at

```javascript
const { CHAIN_NAME } = window.MapNode
```

## Subscription

Support subscribe using JSON-RPC notifications. This allows clients to wait for events instead of polling for them. All result will be release at `data` event.

#### Methods

```javascript
// For Subscribe
window.ethereum.request({
	method: 'eth_subscribe',
	params: ['<type>','<options>']
})
// Its result will be subscription ID which can be used for unsubscribe
// For Unsubscribe
window.ethereum.request({
	method: 'eth_unsubscribe',
	params: ['<Subscription ID>']
});
```

#### Example

```javascript
// Subscribe for event
const subscriptionID = window.ethereum.request({
    method: 'eth_subscribe',
	params: ["logs", 
	{
		address: "0x8320fe7702b96808f7bbc0d4a888ed1468216cfd", 
		topics: ["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"]}]
})
// You can listen for incoming notifications by
window.ethereum.on("data", data => {
	// Do the rest of your work with data
})
```

## To handle events

### List of events

Currently we only support some action event from wallet extension

```javascript
window.ethereum.on('event_name', callback);
​//Example
window.ethereum.on('close', () => window.location.reload());
window.ethereum.on('accountsChanged', () => window.location.reload());
```

<table><thead><tr><th width="184.0317835309541">Events</th><th>Trigger</th></tr></thead><tbody><tr><td>accountsChanged</td><td>Receive when active account changed in Extension</td></tr><tr><td>networkChanged</td><td>Receive when active network changed in Extension</td></tr><tr><td>chainChanged</td><td>Receive when active chain changed in Extension</td></tr><tr><td>disconnect</td><td>Receive when disconnect from Extension</td></tr><tr><td>close</td><td>Alias for disconnect event</td></tr></tbody></table>

<table><thead><tr><th width="359.9860751564186">Method</th><th>Description</th></tr></thead><tbody><tr><td>on(event, callback)</td><td>Add event listener</td></tr><tr><td>off(event, callback)</td><td>Remove event listener</td></tr></tbody></table>


# Bug Bounty Program

**1. Guidelines**

#### *We ask that all researchers*:

* Make every effort to avoid privacy violations, degradation of user experience, disruption to production systems, and destruction of data during security testing
* Use the identified communication channels to report vulnerability information to us
* Report vulnerabilities as soon as you discover it, but keep it confidential between yourself and Etherscan until we’ve resolve the issue.&#x20;
* Provide us with at least 7 working days to investigate the issue and revert back to you

#### **2. If you are the first to report the issue, and we make a code or configuration change based on the issue, we commit to:**

* Recognize your contribution on mapnode.io (list below for the last 50 contributors)
* Reward you with a bounty (up to a maximum of $2500 paid out per month):\
  \- $1000-$3000 in crypto equivalent if you identified a vulnerability that presented a critical risk \*\
  \- $500 in crypto equivalent if you identified a vulnerability that presented a high risk \*\
  \- $250 in crypto equivalent if you identified a vulnerability that presented a moderate risk \*\
  \- $0 in crypto equivalent if you identified a vulnerability that presented a low risk \*\
  \- Entry in Hall of Fame Only, If there was in fact no or low risk vulnerability, but we still made a code or configuration change nonetheless\
  \
  *Researcher will provide us with an bsc bep20 address for the payout within 7 days after we have resolved the issue.*\
  *\* vulnerability level will be determined at our discretion*\
  *\*\* in the event the vulnerabilty exists in multiple explorers, only the first explorer is entitled to the rewards*

#### **3. Scope**

WebSite: [https://mapnode.io](https://mapnode.io/)\
We are interested in the following vulnerabilities:\
• Business logic issues\
• Remote code execution (RCE)\
• Database vulnerability, SQLi\
• File inclusions (Local & Remote)\
• Access Control Issues (IDOR, Privilege Escalation, etc)\
• Leakage of sensitive information\
• Server-Side Request Forgery (SSRF)\
• Other vulnerability with a clear potential loss

#### **4. Out of scope**

Vulnerabilities found in out of scope resources are unlikely to be rewarded unless they present a serious business risk (at our sole discretion). In general, the following vulnerabilities do not correspond to the severity threshold\
\
• Visual typos, spelling mistakes, etc\
• Findings derived primarily from social engineering (e.g. phishing, etc)\
• Findings from applications or systems not listed in the ‘Scope’ section\
• UI/UX bugs, Data entry errors, spelling mistakes, typos, etc\
• Network level Denial of Service (DoS/DDoS) vulnerabilities\
• Certificates/TLS/SSL related issues\
• DNS issues (i.e. MX records, SPF records, etc.)\
• Server configuration issues (i.e., open ports, TLS, etc.)\
• Spam or Social Engineering techniques\
• Security bugs in third-party applications or services\
• XSS Exploits that do not pose a security risk to 'other' users (Self-XSS)\
• Login/Logout CSRF-XSS\
• https/ssl or server-info disclosure related issues\
• https Mixed Content Scripts\
• Brute Force attacks\
• Best practices concerns\
• Recently (less than 30 days) disclosed 0day vulnerabilities\
• Username/email enumeration via Login/Forgot Password Page error messages\
• Missing HTTP security headers\
• Weak password policy<br>

**5. How to Report a Security Vulnerability**

• Description of the location and potential impact of the vulnerability\
• A detailed description of the steps required to reproduce the vulnerability (POC scripts, screenshots, and compressed screen captures are all helpful to us)\
• Your name/handle and a link for recognition in our recognitaion Hall of Fame (twitter, reddit, facebook, hackerone, etc)\
• Email us at **<support@mapnode.io>**


# Terms of Service

**PLEASE READ THESE TERMS OF SERVICE CAREFULLY.**

BY ACCESSING OR USING OUR SERVICES, YOU AGREE TO BE BOUND BY THESE TERMS OF SERVICE AND ALL TERMS INCORPORATED BY REFERENCE.

These Terms of Service and any terms expressly incorporated herein (“Terms”) apply to your access to and use of all services (our “Services”) provided by mapnode.io (“Company,” “we,” or “us”).

**1. ELIGIBILITY**

You represent and warrant that you: (a) are of legal age to form a binding contract; (b) have not previously been suspended or removed from using our Services; and (c) have full power and authority to enter into this agreement and in doing so will not violate any other agreement to which you are a party.

If you are registering to use the Services on behalf of a legal entity, you further represent and warrant that (i) such legal entity is duly organized and validly existing under the applicable laws of the jurisdiction of its organization, and (ii) you are duly authorized by such legal entity to act on its behalf.

**2. ACCOUNT REGISTRATION**

You must create an account with Company to access the Services (“Account”). When you create an Account, you agree to:\
\
(a) create a strong password that you do not use for any other website or online service;\
(b) provide accurate and truthful information;\
(c) maintain and promptly update your Account information;\
(d) maintain the security of your Account by protecting your Account password and restricting access to your computer and your Account;\
(e) promptly notify us if you discover or otherwise suspect any security breaches related to your Account; and\
(f) take responsibility for all activities that occur under your Account and accept all risks of any authorized or unauthorized access to your Account, to the maximum extent permitted by law.

When you create an Account, we assign you an account identifier that you must retain to access your Account.

**3. DISCONTINUANCE OF SERVICES**

We may, in our sole discretion and without liability to you, with or without prior notice and at any time, modify or discontinue, temporarily or permanently, any portion of our Services.

**4. ASSUMPTION OF RISK**

You acknowledge and agree that there are risks associated with utilizing an Internet-based service including, but not limited to, the risk of failure of hardware, software and Internet connections, the risk of malicious software introduction, and the risk that third parties may obtain unauthorized access to information stored within your Account.

You acknowledge and agree that Company will not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Services, however caused. Company takes no responsibility for and will not be liable for any losses, damages or claims arising from the use of our Services, including, but not limited to, any losses, damages or claims arising from:\
\
(a) passwords being "Bruteforced",\
(b) server failure or data loss,\
(c) forgotten passwords,\
(d) corrupted wallet files,\
(e) incorrectly constructed transactions or mistyped BNB Smart Chain addresses; or\
(f) unauthorized access to mobile applications,\
(g)"phishing," viruses, third-party attacks or any other unauthorized third-party activities.

**5. THIRD-PARTY SERVICES AND CONTENT**

In using our Services, you may view content or utilize services provided by third parties, including links to web pages and services of such parties (“Third-Party Content”).

We do not control, endorse or adopt any Third-Party Content and will have no responsibility for Third-Party Content, including, without limitation, material that may be misleading, incomplete, erroneous, offensive, indecent or otherwise objectionable in your jurisdiction.

In addition, your business dealings or correspondence with such third parties are solely between you and the third parties. We are not responsible or liable for any loss or damage of any sort incurred as the result of any such dealings, and you understand that your use of Third-Party Content, and your interactions with third parties, is at your own risk.

**6. ACCEPTABLE USE**

When accessing or using the Services, you agree that you will not violate any law, contract, intellectual property or other third-party right or commit a tort, and that you are solely responsible for your conduct while using our Services. You must not:

* Use our Services in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying our Services, or that could damage, disable, overburden or impair the functioning of our Services in any manner;
* Use our Services to pay for, support or otherwise engage in any illegal activities, including, but not limited to illegal gambling, fraud, money-laundering, or terrorist activities;
* Use any **robot, spider, crawler, scraper** or other automated means or interface not provided by us to access our Services or to extract data;
* Engage in **Automated Data Collection (scraping)** unless such Automated Data Collection is confined solely to search indexing for display on the Internet;
* Use or attempt to use another user’s account without authorization;
* Attempt to circumvent any content filtering techniques we employ, or attempt to access any service or area of our Services that you are not authorized to access;
* Introduce to the Services any virus, trojan worms, logic bombs or other harmful material;
* Develop any third-party applications that interact with our Services without our prior written consent;
* Provide false, inaccurate, or misleading information; and
* Encourage or induce any third party to engage in any of the activities prohibited under this Section.

**7. USER-GENERATED CONTENT**

7.1. **Responsibility for User-Generated Content** - You are solely responsible for the content of, and for any harm resulting from, any User-Generated Content that you post, upload, link to or otherwise make available via the Service, regardless of the form of that Content. We are not responsible for any public display or misuse of your User-Generated Content. We have the right (though not the obligation) to refuse or remove any User-Generated Content that, in our sole discretion, violates any MapNode terms or policies.

7.2. **Ownership of Content & Right to Post** - If you're posting anything you did not create yourself or do not own the rights to, you agree that you are responsible for any Content you post; that you will only submit Content that you have the right to post; and that you will fully comply with any third party licenses relating to Content you post.

7.3. **License Grant to Us** - We need the legal right to do things like host Your Content, publish it, and share it. You grant us and our legal successors the right to store, parse, and display your content, and make incidental copies as necessary to render the Website and provide the service.

7.4. **Moral Rights** - You retain all moral rights to Your Content that you upload, publish, or submit to any part of the Service, including the rights of integrity and attribution. However, you waive these rights and agree not to assert them against us, to enable us to reasonably exercise the rights granted in Section 7.3.

7.5. To the extent this agreement is not enforceable by applicable law, you grant MapNode the rights we need to use your content without attribution and to make reasonable adaptations of your content as necessary to render the Website and provide the service.

**8. COPYRIGHTS AND OTHER INTELLECTUAL PROPERTY RIGHTS**

Unless otherwise indicated by us, all copyright and other intellectual property rights in all content and other materials contained on our website or provided in connection with the Services, including, without limitation, the Company or Company logo and all designs, text, graphics, pictures, information, data, software, sound files, other files and the selection and arrangement thereof (collectively, “Company Materials”) are the proprietary property of Company or our licensors or suppliers and are protected by copyright laws and other intellectual property rights laws.

Unauthorized use and/or duplication of this material without express and written permission from this site’s author and/or owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to MapNode.io with appropriate and specific direction to the original content.

**9. TRADEMARKS**

“MapNode” the Company logo, and any other Company product or service names, logos or slogans that may appear on our Services are trademarks of Company and may not be copied, imitated or used, in whole or in part, without our prior written permission.

You will not use any trademark, product or service name of Company without our prior written permission, including without limitation any metatags or other “hidden text” utilizing any trademark, product or service name of Company. In addition, the look and feel of our Services, including all page headers, custom graphics, button icons and scripts, is the service mark, trademark and/or trade dress of Company and may not be copied, imitated or used, in whole or in part, without our prior written permission.

All other trademarks, registered trademarks, product names and company names or logos mentioned through our Services are the property of their respective owners. Reference to any products, services, processes or other information, by name, trademark, manufacturer, supplier or otherwise does not constitute or imply endorsement, sponsorship or recommendation by us.

**10. SUSPENSION; TERMINATION**

In the event of any Force Majeure Event, breach of these Terms, or any other event that would make provision of the Services commercially unreasonable for Company, we may, in our discretion and without liability to you, with or without prior notice, suspend your access to all or a portion of our Services.

We may terminate your access to the Services in our sole discretion, immediately and without prior notice, and delete or deactivate your Account and all related information and files in such account without liability to you, including, for instance, in the event that you breach any term of these Terms.

**11. COOKIE STATEMENT**

This site uses cookies. Cookies are small text files that are placed on your computer by websites that you visit. They are widely used in order to make websites work, or work more efficiently, as well as to provide information to the owners of the site. Cookies are typically stored on your computer's hard drive.

Information collected from cookies is used by us to evaluate the effectiveness of our Site, analyze trends, and manage the platform. The information collected from cookies allows us to determine such things as which parts of our Site are most visited and difficulties our visitors may experience in accessing our Site. With this knowledge, we can improve the quality of your experience on the platform by recognizing and delivering more of the most desired features and information, as well as by resolving access difficulties. We also use cookies and/or a technology known as web bugs or clear gifs, which are typically stored in emails to help us confirm your receipt of, and response to, our emails and to provide you with a more personalized experience when using our Site.

We also use third party service provider(s), to assist us in better understanding the use of our Site. Our service provider(s) will place cookies on the hard drive of your computer and will receive information that we select that will educate us on such things as how visitors navigate around our site, what pages are browsed and general transaction information. Our service provider(s) analyses this information and provides us with aggregate reports. The information and analysis provided by our service provider(s) will be used to assist us in better understanding our visitors' interests in our Site and how to better serve those interests. The information collected by our service provider(s) may be linked to and combined with information that we collect about you while you are using the platform. Our service provider(s) is/are contractually restricted from using information they receive from our Site other than to assist us.

Your continued use of this site, as well as any subsequent usage, will be interpreted as your consent to cookies being stored on your device.

**12. DISCLAIMER OF WARRANTIES**

(a) TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW, AND EXCEPT AS EXPRESSLY PROVIDED TO THE CONTRARY IN A WRITING BY US, OUR SERVICES ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW. WE EXPRESSLY DISCLAIM, AND YOU WAIVE, ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT AS TO OUR SERVICES, INCLUDING THE INFORMATION, CONTENT AND MATERIALS CONTAINED THEREIN.

(b) YOU ACKNOWLEDGE THAT INFORMATION YOU STORE OR TRANSFER THROUGH OUR SERVICES MAY BECOME IRRETRIEVABLY LOST OR CORRUPTED OR TEMPORARILY UNAVAILABLE DUE TO A VARIETY OF CAUSES, INCLUDING SOFTWARE FAILURES, PROTOCOL CHANGES BY THIRD PARTY PROVIDERS, INTERNET OUTAGES, FORCE MAJEURE EVENT OR OTHER DISASTERS, SCHEDULED OR UNSCHEDULED MAINTENANCE, OR OTHER CAUSES EITHER WITHIN OR OUTSIDE OUR CONTROL. YOU ARE SOLELY RESPONSIBLE FOR BACKING UP AND MAINTAINING DUPLICATE COPIES OF ANY INFORMATION YOU STORE OR TRANSFER THROUGH OUR SERVICES.

**13. LIMITATION OF LIABILITY**

EXCEPT AS OTHERWISE REQUIRED BY LAW, IN NO EVENT SHALL COMPANY, OUR DIRECTORS, MEMBERS, EMPLOYEES OR AGENTS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY OTHER DAMAGES OF ANY KIND, INCLUDING BUT NOT LIMITED TO LOSS OF USE, LOSS OF REWARDS OR LOSS OF DATA, WHETHER IN AN ACTION IN CONTRACT, TORT (INCLUDING BUT NOT LIMITED TO NEGLIGENCE) OR OTHERWISE, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE OUR SERVICES OR THE COMPANY MATERIALS, INCLUDING WITHOUT LIMITATION ANY DAMAGES CAUSED BY OR RESULTING FROM RELIANCE BY ANY USER ON ANY INFORMATION OBTAINED FROM COMPANY, OR THAT RESULT FROM MISTAKES, OMISSIONS, INTERRUPTIONS, DELETION OF FILES OR EMAIL, ERRORS, DEFECTS, VIRUSES, DELAYS IN OPERATION OR TRANSMISSION OR ANY FAILURE OF PERFORMANCE, WHETHER OR NOT RESULTING FROM A FORCE MAJEURE EVENT, COMMUNICATIONS FAILURE, THEFT, DESTRUCTION OR UNAUTHORIZED ACCESS TO COMPANY’S RECORDS, PROGRAMS OR SERVICES.

**14. INDEMNITY**

You agree to defend, indemnify and hold harmless Company (and each of our officers, directors, members, employees, agents and affiliates) from any claim, demand, action, damage, loss, cost or expense, including without limitation reasonable attorneys’ fees, arising out or relating to:\
\
(a) your use of, or conduct in connection with, our Services;\
(b) any Feedback you provide;\
(c) your violation of these Terms; or\
(d) your violation of any rights of any other person or entity.

**15. MISCELLANEOUS**

1**5**.1. **Entire Agreement; Order of Precedence.** These Terms contain the entire agreement, and supersede all prior and contemporaneous understandings between the parties regarding the Services. These Terms do not alter the terms or conditions of any other electronic or written agreement you may have with Company for the Services or for any other Company product or service or otherwise. In the event of any conflict between these Terms and any other agreement you may have with Company, the terms of that other agreement will control only if these Terms are specifically identified and declared to be overridden by such other agreement.

15.2. **Amendment.** We reserve the right to make changes or modifications to these Terms from time to time, in our sole discretion. Amended Terms will become effective immediately on the date they are posted to the Services unless we state otherwise via our notice of such amended Terms. Any amended Terms will apply prospectively to use of the Services after such changes become effective. Your continued use of the Services following the effective date of such changes will constitute your acceptance of such changes. If you do not agree to any amended Terms, you must discontinue using the Services.

15.3. **Waiver.** Our failure or delay in exercising any right, power or privilege under these Terms will not operate as a waiver thereof.

15.4. **Severability.** The invalidity or unenforceability of any of these Terms will not affect the validity or enforceability of any other of these Terms, all of which will remain in full force and effect.

15.5. **Force Majeure Events.** Company will not be liable for any loss or damage arising from any event beyond Company’s reasonable control, including, but not limited to, flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, communications, power failure, or equipment or software malfunction (each, a “Force Majeure Event”).

15.6. **Assignment.** You may not assign or transfer any of your rights or obligations under these Terms without prior written consent from Company, including by operation of law or in connection with any change of control. Company may assign or transfer any or all of its rights under these Terms, in whole or in part, without obtaining your consent or approval.

Projects are containers for task lists. Think of them as a library for everything your team needs to get done to complete or ship a project.

Hit the big '+' button in your sidebar and select 'New Project' from the menu that pops up. Give your project a name, and you're good to go!


# Privacy Policy

**PLEASE READ THE PRIVACY POLICY CAREFULLY.**

MapNode.io (referred to as the “Company”, “MapNode”, “we”, “our” or “us”) is committed to the protection of your Personal Data and takes the matter of protecting your privacy as high priority.

**1. TYPES OF DATA WE COLLECT**

The types of Personal Data that we collect directly from you or from third parties depend on the circumstances of collection and on the nature of the service requested or transaction undertaken. It may include (but is not limited to):

(a) personal information that links back to an individual, e.g., name, gender, date of birth, and other personal identification numbers;\
(b) contact information, e.g., address, phone number and email address;\
(c) technical information, e.g., IP address for API services and login;\
(d) statistical data, e.g., hits to website.<br>

This Privacy Policy covers the information we collect about you when you use our products or services, or otherwise interact with MapNode, unless a different privacy policy is displayed. This policy also explains your choices about how we use information about you.

Your choices include how you can object to certain uses of information about you and how you can access and update certain information about you. If you do not agree to the terms of this Policy, please do not use the Site, or any of our Services. Each time you use any Site, or any Services, the current version of this Privacy Policy will apply.

**2. HOW DO WE COLLECT PERSONAL DATA?**

This Privacy Policy covers any Personal Data provided to us:

(a) when you engage with our products and services;\
(b) when you create an account with us;\
(c) under any other contractual agreement or arrangement.<br>

Some of the other ways we may collect Personal Data shall include (but is not limited to):

(a) communications with you via telephone, letter, fax and email;\
(b) when you visit our website;\
(c) when you contact us in person;\
(d) when we contact you in person;\
(e) when we collect information about you from third parties; and other channels including our support helpdesk.<br>

**3. HOW DO WE COLLECT YOUR PERSONAL DATA ON OUR WEBSITE?**

From our website, we collect your Personal Data in the following ways:

(a) **IP address**\
We use your IP address to help diagnose problems with our server, and to administer our website.

(b) **Cookies**\
A cookie is an element of data that a website can send to your browser, which may then store it on your system. We use cookies in some of our pages to store your preferences and record session information.

The information that we collect is then used to ensure a more personalized service level for our users. You can adjust settings on your browser so that you will be notified when you receive a cookie. Please refer to your browser documentation to check if cookies have been enabled on your computer or to request not to receive cookies.

As cookies allow you to take advantage of some of the Website’s essential features, we recommend that you accept cookies. For instance, if you block or otherwise reject our cookies, you will not be able to use any products or services on the website that may require you to log-in (token holdings store cookies for favorite).

It is important that you prevent unauthorized access to your password and your computer. You should always log out after using a shared computer. Information collected from cookies is used by us to evaluate the effectiveness of our site, analyze trends, and manage the platform. The information collected from cookies allows us to determine such things as which parts of our site are most visited and difficulties our visitors may experience in accessing our site.

With this knowledge, we can improve the quality of your experience on the platform by recognizing and delivering more of the most desired features and information, as well as by resolving access difficulties. We also use cookies and/or a technology known as web bugs or clear gifs, which are typically stored in emails to help us confirm your receipt of, and response to our emails and to provide you with a more personalized experience when using our site. Your continued use of this site, as well as any subsequent usage, will be interpreted as your consent to cookies being stored on your device.

(c) **User feedback form**\
Our feedback form requires you to give us contact information (e.g. your name and email address) so that we can respond to your comments. We use your contact information from the registration form to send you information about our company. Your contact information is also used to contact you where necessary.

(d) **General Site tracking**\
We also use third party service provider(s), to assist us in better understanding the use of our site. Our service provider(s) will place cookies on the hard drive of your computer and will receive information that we select, for example, how visitors navigate around our site, what pages are browsed and general transaction information. Our service provider(s) analyzes this information and provides us with aggregate reports.

The information and analysis provided by our service provider(s) will be used to assist us in better understanding our visitors' interests in our site and how to better serve those interests. The information collected by our service provider(s) may be linked to and combined with information that we collect about you while you are using the platform. Our service provider(s) is/are contractually restricted from using information they receive from our Site other than to assist us.

(e) **Web Server site visits logging**\
The following is how we store the web server site visit logs (applicable to <https://BscScan.com>):

(i) To throttle the rate of requests and prevent certain types of attacks against us, we track the incoming IP addresses for very short periods of time and is then released.\
(ii) By default, we do NOT store identifiable 'x-forwarded-for' originating IPs during your site visit in the Web Server site visits logs.\
(iii) However in the event of certain types of third-party attacks, general server/application troubleshooting or other related reasons, we might temporarily activate the 'x-forwarded-for' logging.\
(iv) As part of our routine server maintenance, all raw web server site visit logs are retained for a minimum of 5 days only and then purged on an automated scheduled basis.

**4.WHAT DO WE USE YOUR PERSONAL DATA FOR?**

We may use your Personal Data for the following purposes:

(a) to enable us to provide our services and perform our services to you;\
(b) to protect the safety and well being of yourself and/or other customers;\
(c) to investigate and respond to claims and inquiries from you;\
(d) for business development purposes such as statistical and marketing analysis, systems testing, maintenance and development, customer surveys or to help us in any future dealings with you, for example by identifying your requirements and preference;\
(e) to comply with any legal or regulatory requirements; and/ or\
(f) for all other purposes ancillary to any of the purposes stated above.\
**("Core Purposes")**\
(g) to communicate offers, product, services and information on products and activities;\
(h) marketing/cross-marketing and communicating with you in relation to products and services offered by us and our service partners as well as our appointed agents; and/or\
(i) for all other purposes ancillary to any of the purposes stated above.\
**("Ancillary Purposes")**\
**(collectively, "Purposes")**<br>

**5. ACCESSING / CORRECTING / UPDATING YOUR PERSONAL DATA**

You may request to obtain information of your personal data and also update or make amendments to your personal data as below: (a) for online registered customers, you may login to your online account and update your personal data.

Please note that depending on the information requested, a nominal fee may be charged and/or backed by the BNB Smart Chain signed message. We will endeavour to provide the information back to you as soon as practicable. However we also reserve the right to validate all requests for the authenticity of the request.

**6. WITHDRAWING CONSENT**

Please note that it is obligatory for the Company to process your Personal Data for the Core Purpose as stated above, without which some services or features provided by BscScan may be affected.

If we do not have your consent to process your Personal Data for the Ancillary Purposes, we will not be able to keep you updated about our future, new and/or enhanced services and products. Nevertheless, you may stop receiving promotional activities by:

(a) unsubscribing from the mailing list;\
(b) editing the relevant account settings to unsubscribe; or\
(c) sending a request via <support@mapnode.io>

**7. TO WHOM DO WE DISCLOSE YOUR PERSONAL DATA?**

We will not trade or sell your Personal Data to third parties. Your Personal Data shall only be disclosed or transferred to the following third parties appointed or authorised by the Company for the fulfilment of the Purpose of: (a) data warehouses; (b) IT service providers; (c) data analytics and/or marketing agency; (d) legal bodies as permitted or required by law such as in compliance with a warrant or subpoena issued by a court of competent jurisdiction; and/or (e) regulatory authorities applicable to you; and/or (f) safety and security personnel.

In addition to the above, your Personal Data may also be disclosed or transferred to any of the Company’s actual and potential assignee, transferee or acquirer (including our affiliates and subsidiaries) or our business, assets or group companies, or in connection with any corporate restructuring or exercise including the our restructuring to transfer the business, assets and/or liabilities.

We shall take practical steps to ensure that their employees, officers, agents, consultants, contractors and such other third parties mentioned above who are involved in the collection, use and disclosure of your Personal Data will observe and adhere to the terms of this Privacy Statement.

**8. HOW LONG WILL WE RETAIN YOUR PERSONAL DATA?**

The Company stores data in global hosting provider with servers across regions and we shall take all reasonable steps to ensure that all Personal Data is destroyed or permanently deleted when no longer required for the Purpose and prepare a disposal schedule for inactive data after 24 month period.

**9. LINKS TO THIRD PARTY WEBSITES**

We may link this website and/or our applications to other companies’ or organizations’ websites (collectively, “Third Party Sites”). This Privacy Notice does not apply to such Third Party Sites as those sites are outside our control. If you access Third Party Sites using the links provided, the operators of these sites may collect your personal information.

Please ensure that you are satisfied with the privacy statements of these Third Party Sites before you submit any personal information. We try, as far as we can, to ensure that all third party linked sites have equivalent measures for protection of your personal information, but we cannot be held responsible legally or otherwise for the activities, privacy policies or levels of privacy compliance of these Third Party Sites.

**10. ADDITIONAL INFORMATION OR ASSISTANCE**

Please note that this Privacy Statement may be amended from time to time in accordance to applicable laws and regulations and such variations may be applicable to you.

For further inquiries or complaints in relation to our handling of your Personal Data or our Privacy Policy or wish to access, update or amend your Personal Data as mentioned above please contact us via our feedback <support@mapnode.io>


# Launchpad Policy

**Launchpad Policy**

This Launchpad Policy (“Policy) governs your access and use of specific functionality of the MapNode Software providing you with the possibility to participate in the sale and/or distribution of Digital Assets issued by the third parties or MapNode as well as governs your owning and holding of Digital Assets issued by MapNode purchased or acquired through the MapNode Software. This Policy is a supplement to <mark style="color:blue;">MapNode Terms of Service</mark> and incorporated thereto by the reference. By using Launchpad, Launchpool and their related services or our Services in general and/or by accepting MapNode’s Terms of Service, you agree to be legally bound by and to comply with this Policy.

References in this Policy to “MapNode”, “we”, “our” or “us”, are to MapNode Labs Ltd and references to “you”, “your” or “user” are to the person who is a user of Launchpad, Launchpool and their related services. All the definitions used in this Policy shall have the same meaning as in <mark style="color:blue;">MapNode Terms of Service</mark> unless this Policy sets a different meaning.

**1. Definitions**

1. “**Launchpad**” means the functionality of the MapNode Software providing users with the possibility to participate in the sale and distribution of Digital Assets issued by MapNode or by third parties (collectively, “Issuers”) according to the terms and conditions set out by this Policy and/or specified at the MapNode Software.
2. “**Launchpool**” means the functionality of the MapNode Software providing users with the possibility to participate in the distribution of Digital Assets issued by the Issuers according to the terms and conditions set out by this Policy and/or specified at the MapNode Software.
3. “**Token**” means the Digital Asset issued either by MapNode or the third party that is offered, sold or distributed through Launchpad and Launchpool. “**Third-Party Token**” means the Digital Asset issued by the third party that is offered, sold or distributed through Launchpad and Launchpool. “MapNode **Token**” means the Digital Asset issued by MapNode that is offered, sold or distributed through Launchpad and Launchpool.

**2. Eligibility**

1. Access and use of Launchpad, Launchpool and related services, participation in any sale or distribution of Tokens are intended solely for users who are 18 or older and who satisfy the criteria described in this Policy.
2. You are not allowed to access and/or use Launchpad, Launchpool and related services, take part in any sale or distribution of Tokens if you are:
   1. a citizen, a permanent resident or located in Afghanistan, Democratic Republic of Congo, Cuba, Democratic People’s Republic of Korea, Islamic Republic of Iran, Republic of Iraq, Puerto Rico, Syrian Arab Republic, Venezuela, Zimbabwe, United States of America (including its states and the district of Columbia), the Virgin Islands of the United States, or any other possessions of the United States of America;
   2. a citizen, a permanent resident or located at any state, country, territory or other jurisdiction that is embargoed by the United Nations;
   3. a citizen, a permanent resident or located at any state, country, territory or other jurisdiction where your purchase, ownership and/or use of Tokens would be illegal or otherwise violate any applicable law;
   4. an entity established at or carrying day-to-day management from any state, country, territory or other jurisdiction, specified in subsections (i)-(iii) of this Section;
   5. you are restricted or barred from conducting banking or financial transactions, in any jurisdiction or under any applicable laws;
   6. you are placed on any list of suspicious persons banned from travelling or conducting business or financial transactions in any jurisdiction;
   7. you are a politically exposed person (“PEP”) or a person connected with the PEP;
   8. a representative of any of such persons specified in subsections (i)-(vii) of this Section.
3. Also, we may not allow you to acquire Tokens and/or take part in the sale or distribution of Tokens, if you are a citizen, permanent resident or located in the country which based on various criteria selected by our anti-money laundering team as imposing anti-money laundering or counter-terrorist financing high risk (for example Corruption Perceptions Index by Transparency International, FATF warnings, countries with weak anti-money laundering and terrorist financing regimes determined by British Virgin Islands authorities) or you are an entity established at or carrying day-to-day management from such country.
4. You hereby acknowledge and agree that we shall have the right at any stage of the process and/or at any moment to cease any transfer or distribution of Tokens to you and terminate your participation in the sale or distribution of Tokens without the obligation of any refunds to you in the following cases:
5. you provided us with false or incomplete information, you are reluctant to provide complete information or you refused to provide us with any requested information;
6. you are or become a citizen of, a permanent resident of, or your entity’s day-to-day management is transferred to any of country, territory or jurisdiction specified in subsections (i)-(iii) of Section 2(b) or in Section 2(c);
7. you are or become restricted or barred from conducting banking or financial transactions, in any jurisdiction or under any applicable laws;
8. you are or were placed on any list of suspicious persons banned from travelling or conducting business or financial transactions in any jurisdiction;
9. you are or become the PEP or a person connected with the PEP;
10. you made a payment from cryptocurrency wallets or blockchain wallets placed at common blacklists or having known security discrepancies;
11. we have the suspicion that you are engaged in illegal activity or you using funds that come from illicit sources.
12. We shall have no liability to you for any damage caused by such cessation of transfer or distribution of Tokens to you.

**3. Identification and Verification**

1. We may require you to pass identity verification prior we allow you to use Launchpad, Launchpool and related services, participate in any sale or distribution of Tokens, receive any distribution of Tokens and at any moment thereafter.
2. For the purposes of this Policy we may require you to provide us with the following information: first name, last name, address, telephone number, e-mail address, date of birth, taxpayer identification number, a government identification, and, if applicable, information regarding your bank account (such as the name of the bank, the account type, routing number or SWIFT, and account number). Also, we may request from you your driving license or any other national ID, internal or international passport, bank statement, utility bill, tax document and/or other documents that we consider necessary for your identification. We may request from you video identification or your selfie with a specified ID or passport.
3. When you act on behalf of an entity, in addition, we may require such entity to pass entity verification prior we allow such entity to use Launchpad, Launchpool and related services, participate in any sale or distribution of Tokens, receive any distribution of Tokens and at any moment thereafter. In this case, we may require you to provide us with the following information: business name of the entity, registry code or registration number and the date of registration; ID of the shareholders (same as for the natural person identification), the ID of the director(s) and/or members of the management board (same as for the natural person identification), ID’s of the representatives (same as for the natural person identification), proof of the registered office/seat of the entity, ID’s of the beneficial owners (same as for the natural person identification), certificate of good standing, bank statements, proof of representation and powers, articles of association and/or other information and documents that we consider necessary.
4. The submitted documents (other than driving license, national ID, internal or international passport) should be issued no more than three months prior to the date of identification and should list your name and your current address. In providing us with this or any other information that may be required, you confirm that the information is accurate and authentic. You agree to keep us updated if any of the information or document you provide changes.
5. You acknowledge and agree that we may use subcontractors for the purpose of your identity verification. In this case processing of the requested information and documents would be governed by such subcontractor’s privacy policy and you would be able to read such privacy policy before you submit any information.
6. You hereby agree to provide us or our subcontractors with the information we or our subcontractors request and you hereby permit us and our subcontractors to keep a record of such information.
7. You authorise us and our subcontractors to make inquiries, whether directly or through third parties, that we and our subcontractors consider necessary to verify your identity, to ensure enforcement of geographic restrictions or protect you and/or us against fraud or other financial crime, and to take action we reasonably deem necessary based on the results of such inquiries.
8. We shall have the right to verify your identity on an ongoing basis, including cases when your identification information has been changed or your activity seemed to be suspicious (unusual for you). We reserve the right to request up-to-date documents from you and/or represented entity, even though you have passed identity verification in the past.

**4. Tokens**

1. You hereby acknowledge and agree that any relations of owning and holding of Third-Party Tokens shall be directly between you and the Issuer, MapNode will not and shall not be a party or any kind of intermediary of any such relations. Any disputes or claims related to any aspects of owning, holding of Third-Party Tokens, their functionality, rights and obligations of their owners or holders as well as their regulatory status, any related representations or warranties shall be addressed to the Issuer and settled directly between you and the Issuer. MapNode will not and shall not be a party of any such claims or disputes.
2. We do not and will not set or determine any intended functionality or features of Third-Party Tokens, Third-Party Token model, initial supply of Third-Party Tokens and any distribution approaches outside Launchpad and Launchpool distribution.
3. While we may execute distribution of Tokens acquired through Launchpad and Launchpool we cannot guarantee that such distribution will be timely and in the expected amount as it may depend on various reasons, including but not limited to, delays in supply or transfer of Tokens by the Issuer, any technical issues of integration with the Issuer’s software or infrastructure.
4. You are responsible for evaluating and determining the suitability of purchasing and/or acquiring Tokens. You acknowledge and agree that we do not and will be not responsible for any Issuer’s project, its performance and suitability to you. You hereby represent and warrant that prior to purchasing and/or acquiring any Token you will check available materials and documents describing this Token, its functionality, model, the scope of rights and obligations, legal and regulatory qualification of the Token, will evaluate the Issuer’s planned services and/or products connected with the Token usage.
5. You acknowledge and agree that in purchasing or acquiring Tokens through Launchpad or Launchpool, you are not relying in any manner on us or our affiliates.
6. You acknowledge and agree that the fact that any particular Third-Party Token is accessible or acquirable through Launchpad or Launchpool in no way constitutes any endorsement or indication that such Third-Party Token has undergone any form of due diligence review or qualification, and in no way indicates any party’s opinion that such Third-Party Token is safe, suitable, true to any third party representations made, verified or verifiable, or of any value or quality or legality.
7. You hereby acknowledge and agree that blockchain, tokens, wallet gateways, decentralized Protocols and smart contract technologies are still in an early development stage and their application of experimental nature. They, therefore, carry significant operational, technological, financial, regulatory and reputational risks. You are fully aware of such risks and accept them as part of your participation in the sale or free distribution of Tokens.

**5. Additional Provisions for MapNode Tokens**

1. You hereby acknowledge and agree that MapNode Tokens do not and shall not be construed to grant you any license or right of any nature with respect to any intellectual property rights, rights of publicity, or equivalent rights in or related to our software products, services or an ecosystem.
2. You hereby acknowledge and agree that MapNode Tokens do not and shall not be construed to grant you any kind of the right to convert such MapNode Tokens into shares of MapNode or any of its affiliates or other equity of MapNode, do not and shall not be construed to grant you any other right whatsoever, do not and shall not be construed to represent or confer any ownership right or stake, share or security or equivalent rights, voting right or any right to receive dividends, future revenue shares, intellectual property rights or any other form of participation in MapNode and/or any of its affiliates and/or any of their products or services.
3. You hereby acknowledge and agree that your purchase of MapNode Tokens does not involve the purchase of shares or any equivalent in any existing or future public or private company, corporation or other entity in any jurisdiction. You will not have any influence over the corporate governance of MapNode and its affiliates. You hereby acknowledge and agree that the purchase of MapNode Tokens is not meant to generate any reward, interest, gain, dividend nor even to maintain the substance of your contribution, but only allows you to benefit from functionality of MapNode Tokens.
4. You hereby acknowledge and agree that we have no debt towards you with respect to MapNode Tokens and will have no obligation to buy back any MapNode Tokens from you. MapNode Tokens are not and will never represent a loan to us or any our affiliates.
5. You hereby represent and warrant that you will not sell, transfer, donate or gift MapNode Tokens to any person specified in the Sections 2(b) and 2(c) of this Policy.

**6. Launchpad. Purchase of Tokens.**

1. The functionality of Launchpad allows users to participate in the sale of Tokens according to the specific allocation of Tokens available for purchase. Any such allocation will be based on certain criteria, designated by us and/ or the Issuer at our or its sole discretion, including but not limited to, holding of MapNode-issued tokens MapNode in the user’s blockchain wallet in certain amounts and/or for certain periods of time, Staking of MapNode tokens in certain amounts and/or for certain periods of time (“Participation Criteria”). We may divide users into several groups (tiers), set specific Participation Criteria for each of such groups (tiers) and set specific allocation of Digital Assets for each of such groups (tiers).
2. In order to participate in the sale of Tokens you should make sure that you meet Participation Criteria, subscribe to such sale via the Launchpad and give us the right to automatically check your blockchain wallet and evaluate your conformance with Participation Criteria. Upon checking your blockchain wallet and your identity verification status, we will determine whether or not you will be allowed to participate in the sale of Tokens, your inclusion to applicable group (tier), if any, and will calculate and set allocation for your purchase of Tokens.
3. We do not represent and warrant that you will be able to participate in any sale of any Tokens even meeting Participation Criteria or will be able to purchase any amount of Tokens according to available allocation, rather than you will be given a chance to participate in a sale of Tokens and/or to purchase Tokens. We may refuse you to participate in the sale of Tokens at our sole discretion, without explaining reasons for such refusal, at any stage, even if you passed identity verification and/or meet Participation Criteria.
4. If you are allowed to participate in the sale of Tokens, you shall transfer the corresponding amount of Digital Assets acceptable as a payment for Tokens to the specified blockchain wallet or smart contract or to interact with a smart contract facilitating your payment for Tokens. Tokens will be transferred to your blockchain wallet by using automated means of distribution, including the use of smart contracts. However, we may decide to manually transfer Tokens to your blockchain wallet without the involvement of smart contracts.
5. We may set additional rules or requirements for the purchase, release and/or distribution of Tokens purchased via Launchpad. This may include that Tokens would be transferred to your blockchain wallet in several instalments and/or may be locked up for a specific time. We may set such additional rules in the description of the sale of Tokens.
6. You hereby acknowledge and agree that all purchases of Tokens are final and that the payments made during the sale of Tokens are non-refundable. Subject to the above, by participating in the sale of Tokens, you acknowledge and agree that you have no right to request a refund from us for any reason.

**7. Launchpool. Acquiring of Tokens.**

1. The functionality of Launchpool allows users to participate in the free distribution of Tokens according to the specific allocation of Digital Assets and Participation Criteria. We may divide users into several groups (tiers), set specific Participation Criteria for each of such groups (tiers) and set specific allocation of Digital Assets for each of such groups (tiers).
2. In order to participate in the distribution of Tokens you should make sure that you meet Participation Criteria, subscribe to or request such distribution via the Launchpool and give us the right to automatically check your blockchain wallet and evaluate your conformance of Participation Criteria. Upon checking your blockchain wallet and your identity verification status, we will determine whether or not you will be allowed to participate in the distribution of Tokens, your inclusion to applicable group (tier), if any, and will calculate and set allocation of Tokens to you.
3. We do not represent and warrant that you will be able to participate in any distribution of Tokens even meeting Participation Criteria or receive any amount of Tokens according to available allocation, rather than you will be given a chance to participate in the distribution of Tokens and/or to receive Tokens. We may refuse you to participate in the free distribution of Tokens at our sole discretion, without explaining reasons for such refusal, at any stage, even if you passed identity verification and/or meet Participation Criteria.
4. Tokens will be transferred to your blockchain wallet by using automated means of distribution, including the use of smart contracts. However, we may decide to manually transfer Tokens to your blockchain wallet without the involvement of smart contracts.
5. We may set additional rules or requirements for the acquiring, release and/or distribution of Tokens purchased via Launchpad. This may include that Tokens would be transferred to your blockchain wallet in several installments and/or may be locked up for a specific time. We may set such additional rules in the description of the sale of Tokens.
6. You hereby acknowledge and agree that apart of Participation Criteria we may require you to perform certain actions of marketing and/or promotional nature determined by us or the Issuer at our or its sole discretion and we reserve the right to suspend or cease any distribution of Tokens if you have not performed required actions.

**8. Your Representation and Warranties**

1. You hereby represent and warrant the following:
   1. You are the exclusive owner of Digital Assets held in your blockchain wallet;
   2. You will comply with any applicable tax obligations in your jurisdiction arising from this Policy;
   3. You will comply with all applicable anti-money laundering and counter-terrorism ﬁnancing requirements;
   4. The execution and delivery of, and performance under, this Policy require no approval or other action from any governmental authority or person other than you;
   5. There are no actions or investigations, pending or threatened before or by any governmental authority against you which, if determined adversely, could reasonably be expected to have a material adverse effect on your ability to enter into and perform your obligations under this Policy.
   6. There is no unsatisﬁed judgment or any open injunction binding upon you which could reasonably be expected to have a material adverse effect on your ability to enter into and perform your obligations under this Policy.
   7. If you are a legal entity, you make the same representations with respect to your directors (or equivalent) and senior executive oﬃcers, and your aﬃliates and their respective directors (or equivalent) and senior executive oﬃcers;
2. You hereby represent and warrant that the funds, including any Digital Assets, virtual currency or cryptocurrency, you use to purchase Tokens, are not derived from or related to any unlawful activities, including but not limited to money laundering or terrorist ﬁnancing, and you will not use Tokens to ﬁnance, engage in, or otherwise support any unlawful activities.
3. You hereby represent and warrant that you acquire Tokens for your own use and utility, to use the Issuer’s services and not for investment or ﬁnancial purposes. You hereby represent and warrant that you will not use Tokens as speculative investments or for the purpose of speculating on the crypto assets markets. You represent and warrant that you will not manipulate the price of Tokens in any way and will not use Tokens for any other kind of market manipulation.
4. You hereby acknowledge and agree that the Issuer may add and/or remove any functionality of Tokens at any time at its sole discretion. Since the addition of functionality of Tokens by the Issuer is not guaranteed, you are aware of the fact that the Token may provide you with no functionality of such Token at all.

**9. Taxation**

1. It is your responsibility to determine whether, and to what extent, any taxes apply to your purchase, acquiring and/or use of Tokens, and to withhold, collect, report and remit the correct amounts of taxes to the appropriate tax authorities. By purchasing, acquiring, holding, owning or using Tokens, and to the extent permitted by law, you agree not to hold us or our affiliates and our/their respective shareholders, members, directors, officers, employees, agents and representatives liable for any tax liabilities arising from the purchase, acquiring, ownership or use of Tokens.

**10. Warranties**

1. EXCEPT FOR THE EXPRESS WARRANTIES SET FORTH IN THIS POLICY, WE HEREBY DISCLAIM ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO TOKENS, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FUNCTIONALITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, REGULATORY STATUS, NON-INFRINGEMENT AND QUALITY. WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, WE DO NOT REPRESENT OR WARRANT THAT: (I) THE OPERATION OR USE OF THE SMART CONTRACTS WILL BE TIMELY, UNINTERRUPTED OR ERROR-FREE; OR (II) THE QUALITY AND FUNCTIONALITY OF TOKENS WILL MEET YOUR REQUIREMENTS.
2. EXCEPT WHERE EXPRESSLY PROVIDED OTHERWISE BY US, THE MAPNODE SOFTWARE, SMART CONTRACTS AND TOKENS ARE PROVIDED TO YOU ON AN "AS IS" BASIS.
3. YOU FURTHER ACKNOWLEDGE THAT WE DO NOT ACT AS YOUR BROKER-DEALER, INTERMEDIARY, AGENT OR ADVISOR AND OWE YOU NO FIDUCIARY DUTY. ANY COMMUNICATION BY US TO YOU SHALL NOT BE CONSTRUED UNDER ANY CIRCUMSTANCES AS LEGAL, TAX, ACCOUNTING OR FINANCIAL ADVICE. ANY SALE OR DISTRIBUTION OF TOKENS AND YOUR PURCHASE OR ACQUIRING OF TOKENS SHALL NOT BE CONSTRUED AS THE FACILITATION OF ANY SALE OR EXCHANGE OF SECURITIES AS AN EXCHANGE.

**11. Risks Disclosure. Assumptions of Risks.**

1. You hereby represent and warrant that you have read, understood and accept risks relating to purchasing, acquiring, holding and owning of Digital Assets, interacting with Protocols and smart contracts as specified in the MapNode Terms of Services, including but not limited to, specified in Section 4 of such Terms of Service. You hereby irrevocably waive, release and discharge any and all claims, whether known or unknown to you, against us, our affiliates and Representatives related to any of the risks set forth therein.

**12. General Terms**

1. You agree to defend, indemnify and hold us harmless, our affiliates and Representatives from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, and expenses (including but not limited to attorney’s fees) arising out of or related to: (i) your participation in the sale and/or distribution of Tokens, purchase, acquiring, using, owning and holding Tokens; (ii) your misrepresentation or provision wrong, misleading information, documents for identity verification; (iii) your violation of any provision of this Policy, including without limitation your breach of any of the representations and warranties above; (iv) your violation of any applicable law, rule or regulation; (v) any actual or alleged breach of your representations, warranties, or obligations set forth in this Policy; (vi) negligent or willful misconduct; or (vii) any other party’s access and use of other appropriate security code. The foregoing shall include the actions of any third party who wrongfully commits these actions under your account or utilizes your password and/or private keys.
2. Section headings in this Policy are for convenience only, and shall not govern the meaning or interpretation of any provision of this Policy.
3. If any provision of this Policy is determined to be invalid or unenforceable under any applicable law, this will not affect the validity of any other provision.
4. We may modify this Policy by providing notice of such changes, such as by sending you an email, providing notice through the MapNode Software or its newsfeed, or updating the “Last Updated” date at the head of this Policy. By continuing to access or use of the MapNode Software, Launchpad, Launchpool and related services, you confirm your agreement to the modified Policy. If you do not agree to any modification to this Policy, you must stop using the MapNode Software, Launchpad, Launchpool and our related services. We encourage you to frequently review the Policy to ensure you understand the terms and conditions that apply to your access to, and use of, the MapNode Software, Launchpad, Launchpool and our services as well as your participation in any sale and/or distribution of Tokens.
5. This Policy shall be governed by and construed in accordance with the laws of the British Virgin Islands. Any dispute controversy, or claim arising out of, or relating to, or in connection with this Policy, including with respect to the formation, applicability, breach, termination, invalidity, enforceability or any dispute regarding non-contractual obligations arising out of or relating to such obligations, shall be referred to the BVI International Arbitration Centre for resolution pursuant to the BVI IAC Arbitration Rules (in force at the time of submission of a Notice of Arbitration and as may be amended from time to time).


# AML Policy

**Anti-Money Laundering Policy**

This Anti-Money Laundering Policy (“Policy”) is a part of our voluntarily applied regime to prevent money laundering, terrorist financing, fraud, or any other financial crime as well as to prevent usage of our services (as specified below) of any ineligible persons, underaged person, to prevent usage of our services of individuals or entities from the prohibited or high-risk jurisdictions.

References in these Terms to “we”, “our” or “us”, are to MapNode., the British Virgin Islands limited company, and references to “you”, “your” are to the person, including both individuals and entities using our services, software and applications.

Upon accessing or using MapNode Software or registration of your MapNode Wallet, you agree to be legally bound by and to comply with this Policy. This Policy can be amended from time to time at our sole discretion. All the definitions used in this Policy shall have the same meaning as in our  unless this Policy sets a different meaning.

This Policy applies to your usage of the Launchpad, Launchpool and/or your participation in the sale and/or distribution of Tokens. We may apply this Policy to your use of our software applications and/or services, not specifically mentioned in this Policy, at our sole discretion.

**1. Definitions**

1. “Token” means the Digital Asset issued by the third party that is offered, sold or distributed through Launchpad and Launchpool.
2. The term “entity” shall include any business, partnership, joint venture, agency, association, firm, corporation, limited liability company or other entity of any kind.

**2. Identification and Verification**

1. The performance of identity verification is an essential part of our anti-money laundering regime. We may require you to pass identity verification prior we allow you to use the functionality of Launchpad or Launchpool, participate in the sale and/or distribution of Tokens and at any moment thereafter. Also, we may require you to pass identity verification prior we allow you to use our software, applications and our other services and at any moment thereafter.
2. For the purposes of this Policy we may require you to provide us with the following information: first name, last name, address, telephone number, e-mail address, date of birth, taxpayer identification number, a government identification, and, if applicable, information regarding your bank account (such as the name of the bank, the account type, routing number, and account number). Also, we may request from you your driving license or any other national ID, internal or international passport, bank statement, utility bill, tax document and/or other documents that we consider necessary for your identification. We may request from you video identification or your selfie with a specified ID or passport.
3. When you act on behalf of an entity, in addition, we may require such entity to pass entity verification prior we allow such entity to use the functionality of Launchpad or Launchpool, participate in the sale and/or distribution of Tokens and at any moment thereafter. In this case, we may require you to provide us with the following information: business name of the entity, registry code or registration number and the date of registration; ID of the shareholders (same as for the natural person identification), ID of the director(s) and/or members of the management board (same as for the natural person identification), ID’s of the representatives (same as for the natural person identification), proof of the registered office/seat of the entity, ID’s of the beneficial owners (same as for the natural person identification), bank statements, proof of representation and powers; articles of association and/or other information and documents that we consider necessary.
4. The submitted documents (other than driving license, national ID, internal or international passport) should be issued no more than three months prior to the date of identification and should list your name and your current address. In providing us with this or any other information that may be required, you confirm that the information is accurate and authentic. You agree to keep us updated if any of the information or document you provide changes.
5. You acknowledge and agree that we may use subcontractors for the purpose of your identity verification. In this case processing of the requested information and documents would be governed by such subcontractor’s privacy policy and you would be able to read such privacy policy before you submit any information.
6. You hereby agree to provide us or our subcontractors with the information we or our subcontractors request and you hereby permit us and our subcontractors to keep a record of such information.
7. You authorise us and our subcontractors to make inquiries, whether directly or through third parties, that we and our subcontractors consider necessary to verify your identity, to ensure enforcement of geographic restrictions or protect you and/or us against fraud or other financial crime, and to take action we reasonably deem necessary based on the results of such inquiries.
8. We shall have the right to verify your identity on an on-going basis, including cases when your identification information has been changed or your activity seemed to be suspicious (unusual for you). We reserve the right to request up-to-date documents from you and/or represented entity, even though you have passed identity verification in the past.

**3. Restricted and High-Risk Regions.**

1. We will refuse you to access and/or use Launchpad, Launchpool and related services, will not allow you to acquire Tokens and/or take part in the sale and/or distribution of Tokens if you are:
   1. a citizen, a permanent resident or located in Afghanistan, Democratic Republic of Congo, Cuba, Democratic People’s Republic of Korea, Islamic Republic of Iran, Republic of Iraq, Puerto Rico, Syrian Arab Republic, Zimbabwe, United States of America (including its states and the district of Columbia), the Virgin Islands of the United States, or any other possessions of the United States of America;
   2. a citizen, a permanent resident or located at any state, country, territory or other jurisdiction that is embargoed by the United Nations;
   3. a citizen, a permanent resident or located at any state, country, territory or other jurisdiction where your purchase, ownership and/or use of Tokens would be illegal or otherwise violate any applicable law;
   4. an entity established at or carrying day-to-day management from any state, country, territory or other jurisdiction, specified in subsections (i)-(iii) of this Section;
   5. you are restricted or barred from conducting banking or financial transactions, in any jurisdiction or under any applicable laws;
   6. you are placed on any list of suspicious persons banned from travelling or conducting business or financial transactions in any jurisdiction;
   7. you are a politically exposed person (“PEP”) or a person connected with the PEP;
   8. a representative of any of such persons specified in subsections (i)-(vii) of this Section.
2. Also, we may not allow you to acquire Tokens and/or take part in the sale or distribution of Tokens, if you are a citizen, permanent resident or located in the country which based on various criteria selected by our anti-money laundering team as imposing anti-money laundering or counter-terrorist financing high risk (for example Corruption Perceptions Index by Transparency International, FATF warnings, countries with weak anti-money laundering and terrorist financing regimes determined by British Virgin Islands authorities) or you are an entity established at or carrying day-to-day management from such country.

**4. Refusal**

1. You hereby acknowledge and agree we shall have the right at any stage of the process and/or at any moment to cease any transfer or distribution of Tokens to you and terminate your participation in the sale and/or distribution of Tokens without the obligation of any refunds to you in the following cases:
   1. you provided us with false or incomplete information, you are reluctant to provide complete information or you refused to provide us with any requested information;
   2. you are or become a citizen of, a permanent resident of, or your entity’s day-to-day management is transferred to any of country, territory or jurisdiction specified in subsections (i)-(iii) of Section 3(a) or in the Section 3(b);
   3. you are or become restricted or barred from conducting banking or financial transactions, in any jurisdiction or under any applicable laws;
   4. you are or were placed on any list of suspicious persons banned from travelling or conducting business or financial transactions in any jurisdiction;
   5. you are or become a politically exposed person (“PEP”) or a person connected with the PEP;
   6. you made a payment from cryptocurrency wallets or crypto assets wallets placed at common blacklists or having known security discrepancies;
   7. we have the suspicion that you are engaged in illegal activity or you using funds that come from illicit sources.
2. We shall have no liability to you for any damage caused by such cessation of transfer of Tokens to you.

**5. Monitoring Transactions. Reporting**

1. We may monitor and analyse your transactions and blockchain wallets activity. We may perform compliance-related tasks, including capturing data, filtering, record-keeping, investigation management and reporting. We may place you on watch and service denial lists, open cases for investigation where needed, send internal communications and fill out statutory reports, if applicable.
2. We may check addresses of your blockchain wallets against common blacklists and known security discrepancies, to ensure that the funds do not come from illicit sources, and there are no signs of money laundering (location, layers, integration), either manually or using a third party service.
3. We shall have the right to report your transactions of suspicious nature to the proper law enforcement authorities, request you to provide any additional information and documents in case of suspicious transactions.

**6. General Terms**

1. We may modify this Policy by providing notice of such changes, such as by sending you an email, providing notice through any of our websites, or by updating the “Last Updated” date at the bottom of this Policy.
2. You acknowledge that our decision to take certain actions according to this Policy may be based on confidential criteria that are essential to security protocols or crime investigation. You agree that we are under no obligation to disclose the details of our security procedures to you.


