# WELCOME

Ramper stands as the go-to digital channel for transitioning from Web2 to Web3. With a mission to 'empower progress,' it provides DeFi infrastructure & loyalty solutions for businesses & communities.

## SDK Solutions

### Ramper Embedded Wallet SDK

[Ramper SDK](/embedded-wallet-sdk/quickstart) provides a Web3 wallet solution for developers to embed and smoothly onboard every user in a native way, allowing them create self-custody wallets as easily as logging in with Web2 credentials (Email, Facebook, Twitter, Apple ID, etc). Neither external wallet download nor seed phrase required!

[Ramper SDK](/embedded-wallet-sdk/quickstart) also provides a "WalletView" component, which provides onchain applications with various wallet-related functionalities such as transaction signatures, fiat-on-ramp, and token transfers.

See these functions in action at <https://example.ramper.xyz/>

#### Blockchains Supported

Now

* Viction

Upcoming

* Ethereum
* NEAR
* Chiliz
* Polygon
* zkEVM
* Other 100+ most popular EVM and Non-EVM blockchains, which developers can configure in near future.

### Ramper NFT Checkout SDK

Make your NFTs accessible to everyone globally. Ramper's [NFT Checkout ](/nft-checkout-sdk/about-ramper-nft-checkout)provides a fast NFT checkout solution supporting both crypto & fiat. Ramper handles chargebacks, and instant wallet creation, and pays you in your NFT contract's native tokens.

#### Blockchains Supported

* Ethereum
* Polygon
* NEAR

## Ramper EMPC Architecture

Ramper’s mission is to simplify Web3 onboarding for every average user, in a way that complex Web3 wallet creation is abstracted to what is more friendly to them: Log in with SSO and/or Web2 credentials.

To ensure users of that convenience yet confidence, building a highly secure key management system (KMS) on the back-end is our priority.

Since Ramper V2, we have introduced Embedded Multi-Party Computation (EMPC) system in which the user's secret (mnemonic) is split into three encrypted parts and stored separately as follows:

* Key #1 is stored in the AWS storage service.
* Key #2 is stored in the Ramper storage service.
* Key #3 is stored in the user's local device.

The user's secret is created, split, or recovered exclusively on the user's device. Possessing two out of the three parts can reconstruct the secret for wallet recovery and/or transaction signing.

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

## **Ramper Wallet**

Ramper Wallet offers our users **Convenience** with lightning-fast social login, accessibility across multiple blockchains, and a seamlessly intuitive user interface, making the easiest steps ever to Web 3 and the cryptocurrency world.

* **Easy login:** Let users sign in instantly using social accounts (Email, Facebook, Twitter, Apple), that generate non-custodial wallets behind the scene. Allows all users to say goodbye with complex seed phrases and private keys.
* **Multi-chain accessible:** Ramper gives you the freedom to manage various cryptocurrencies all in one place by supporting a wide range of blockchain networks: Ethereum, BNB Chain, Viction, Polygon, Solana, Sei Mainnet, and Sei Testnet.
* **Seamless interface:** Ramper provides an intuitive interface and user-friendly functionalities, so navigating and managing your digital assets has never been simpler.
* **Advanced security:** Ramper prioritizes security with its Restorative Performant Multi-encryption System (RPMS), guaranteeing that your assets are protected and under your exclusive control in the digital realm. In near future, Ramper Wallet will be integrating its core to EMPC for further strenghen security.

![Ramper Wallet](/files/c0Q3soTFngCnQWTT8t5r)

## Get started

Follow Ramper and be part of a vibrant community 🔥

👉 Twitter: <https://twitter.com/ramper_xyz>

👉 Facebook: <https://ramper.link/facebook>

👉 Telegram: <https://t.me/ramper_xyz>

👉 Discord: <https://ramper.link/discord>

👉 Blog: <https://blog.ramper.xyz/>&#x20;

👉 Website: <https://www.ramper.xyz/>

👉 Youtube: <https://ramper.link/youtube>


# Developer Dashboard

The Developer Dashboard is a control panel for creating, managing apps, and customizing UI Brand design. API keys will be issued to connect to the Ramper SDK. View user data and history here.

## **Getting Started**

Visit our [Developer Dashboard](https://developer.v2.ramper.xyz/signin) to create a new Ramper app!

<figure><img src="/files/O4EeN6B8fleMhqQdU21A" alt=""><figcaption><p>Login</p></figcaption></figure>

<figure><img src="/files/quBwBFxQOxIqqXMOmIvr" alt=""><figcaption><p>Login</p></figcaption></figure>

<figure><img src="/files/pKl2zPURE1jKGRWaSvC6" alt=""><figcaption><p>Creating new app</p></figcaption></figure>

Once a new app is created, an App ID and App Secret will be generated. App secrets can be re-rolled anytime. The App ID should be provided to the `init` function when using our SDK to allow you to track your user's activity on Ramper. The App Secret is used to verify the issued `idToken` on your server side to manage user sessions.

<figure><img src="/files/X9zJC1b0JPfiTPc2eLCs" alt=""><figcaption><p>App ID and App Secret</p></figcaption></figure>

### App Home Page

Use your new App ID in the init() function when initializing the SDK.

```jsx
init({
  appId: <YOUR APP ID HERE>
  appName: 'Polygon Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ],
  walletProviders: [WALLET_PROVIDER.METAMASK],
  network: SUPPORTED_ETHEREUM_NETWORKS.MATICMUM,
  theme: THEME.DARK,
})
```

### **Set Up User's Wallet Address**

{% hint style="info" %}
This feature allows developers to configure the wallet address setup for their Dapp during the initial creation phase. It determines how user wallet addresses are synced during social login. **This is a one-time setting and cannot be modified later.**
{% endhint %}

#### Available Options

* **Coin98 Super Wallet:**
  * Syncs the user's wallet address with Coin98 Super Wallet’s social login
  * Suitable for Dapps that require integration with Coin98 Super Wallet for consistency
* **Ramper Wallet:**
  * Syncs the user's wallet address with Ramper Mobile/Extension Wallet
* **Different:**
  * Allows users to provide a custom wallet address **independent of** Coin98 Super Wallet and Ramper Wallet

#### **How to Set Up During Application Creation**

1. Access the Developer Dashboard
2. Log in to the developer dashboard to create your Dapp
3. Select wallet address sync options:

* Coin98 Super Wallet
* Ramper Wallet
* Different

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

Once selected, click the **Add** button to finalize the wallet address setup. This configuration will apply to all users accessing the Dapp via the social login SDK.


# Developer Dashboard (Legacy)

Developer Dashboard is a control panel for you to create and manage apps as well as NFT Collections. API keys will be issued to connect to the Ramper SDK. View user data and NFT purchase history here.

## Getting Started

Visit our [developer dashboard](https://developer.ramper.xyz) to create a new Ramper app!

![Login](/files/wrBwvtVt4XCZ8pGg6aaZ) ![Creating New App](/files/kY1JnkQ8OgXTf57TrovZ)

Once a new app is created, an App ID and App Secret will be generated. App secrets can be re-rolled anytime. The App ID should be provided to the `init` function when using our SDK to allow you to track your user's activity on Ramper. The App Secret is used to verify the issued `idToken` on your server side to manage user sessions.

![App Home Page](/files/PwiL0GQnOFZ8aK6aUxQD)

Use your new App ID in the init() function when initializing the SDK.

```jsx
init({
  appId: <YOUR APP ID HERE>
  appName: 'Polygon Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ],
  walletProviders: [WALLET_PROVIDER.METAMASK],
  network: SUPPORTED_ETHEREUM_NETWORKS.MATICMUM,
  theme: THEME.DARK,
})
```

## User Analytics

Once connected, track who logs into your app by navigating to *Users* in the sidebar. Sort user data by clicking on the various column headers.&#x20;

![Users Page](/files/d6Pr9fJwxPKAAaxJCf5L)

## NFT Checkout

If you are interested in supporting NFT purchases with both Crypto and Fiat, you will need to create a Collection and Verify your Account to comply with Know-Your-Business (KYB) regulations in the following sections.

To get started, first visit the NFT Checkout tab on the left panel to create your first collection. We currently support the following networks:

* Ethereum - Mainnet (homestead)
* Polygon - Mainnet (matic)
* Polygon - Mumbai Testnet (maticmum)
* Ethereum - Goerli Testnet (goerli)

![Collection Created](/files/icvXCHhZmKrzHJHuYKzQ) ![NFT Checkouts](/files/TpSYH9Zj2JoUmIk4HtkF)

Upon creation, a Ramper link will be generated where customers can purchase your NFT using fiat or crypto. The purchase history will show successful transactions completed through this Ramper link.

![Purchase History ](/files/FKHMqHHTscSGpvt7rNvJ) ![Ramper Link](/files/l0uAneHcj5Rj8ci8Vwqk)

## Verify Account

NFT Checkouts will be restricted to **testnet** until your account is verified. To leave sandbox mode, navigate to *My Account* and submit the required information and documents. Choose between *Individual* or *Business* account types to begin the process.&#x20;

![Seller Information](/files/o91YOm5vyGsevqT5BnSa) ![Personal Documents](/files/mP2Lb52dUxIWvJmpGJgQ)

Upon submission, your application will be reviewed in 1-2 business days. We will reach out via email if more information is required.


# Quickstart

Ramper Embedded Wallet SDK is a non-custodial wallet & web3 login solution. Let anyone log into DApps instantly without having to download wallets, use browser extensions, or store seed phrases.

### Features

[See demo](https://example.ramper.xyz/v1/demo)

By adding Ramper SDK to your DApps, you are able to every average user even those who are unfamiliar with web3. Let users log in instantly through their email or SSO securely. Ramper Embedded Wallet SDK is currently free fo you to integrate.

#### Login Solution

* Login using email or SSO (FaceID coming soon)&#x20;
* Non-custodial wallets are generated behind the scene
* Customize a theme reflecting your brand

#### Request Transaction Signatures

* Secure transaction requests
* 15+ million transactions per day with plans to rapidly scale this further

#### Unified Wallet Interface&#x20;

* View, send, and receive cryptocurrencies and NFTs
* Interchangeable network
* Integrated fiat onramp
* Settings to export private key

<div align="left"><figure><img src="/files/mLyZ6gof6ResQkEy7a8i" alt=""><figcaption><p>Login</p></figcaption></figure> <figure><img src="/files/c28E3MFYxubvyH3ehBQk" alt=""><figcaption><p>Sign transactions</p></figcaption></figure> <figure><img src="/files/cUdD4MXJzBR1wvScsyUS" alt=""><figcaption><p>Wallet view</p></figcaption></figure></div>

<br>


# For AI Agents

This document provides instructions for AI agents to integrate `@ramper-v2/multi` and `@ramper-v2/core` into a React application. This guide focuses strictly on SDK initialization, Provider-based Sign-In (e.g., Google), and Logout functionality.

## 1. Dependencies

Ensure the following dependencies are installed in `package.json`:

```json
{
  "dependencies": {
    "@ramper-v2/core": "1.4.3",
    "@ramper-v2/multi": "1.4.3"
  }
}
```

## 2. Initialization

Before using any authentication methods, initialize the SDK at the top level of your application (outside of the React component tree).

```javascript
import { init } from '@ramper-v2/multi'

// Initialize the Ramper SDK
init({
  appId: 'wqybpekjou', // Only use this
  appName: 'Your App Name',
  walletProviders: [],
  defaultTokenAddresses: [],
  theme: 'light',
  network: 'mainnet', // or 'testnet'
  authProviders: ['google', 'email'],
}).catch(console.error)
```

## 3. Core Methods & Authentication

Import the necessary methods for authentication and user state management.

```javascript
import { signInWithProvider, getUser, signOut } from '@ramper-v2/multi'
```

### Checking Cached User (On Mount)

Use `getUser()` to check if a user session already exists when the component mounts.

```javascript
import { useState, useEffect } from 'react'

function App() {
  const [user, setUser] = useState(null)

  useEffect(() => {
    const cachedUser = getUser()
    if (cachedUser) setUser(cachedUser)
  }, [])

  // ...
}
```

### Sign In with Provider

To trigger authentication for a specific provider (like Google or Email) without opening the generic modal, use `signInWithProvider`.

```javascript
const handleSignIn = async () => {
  try {
    const result = await signInWithProvider({
      provider: 'google', // Options include 'google', 'email', etc.
      message: 'Optional sign message for the wallet',
    });

    // The user object is returned in the result, or falls back to cached user
    const currentUser = result?.user || getUser()
    setUser(currentUser)
  } catch (e) {
    console.error('Sign in failed:', e)
  }
}
```

### Sign Out

Use `signOut()` to clear the session.

```javascript
const handleSignOut = async () => {
  try {
    await signOut()
    setUser(null)
  } catch (e) {
    console.error('Sign out failed:', e)
  }
}
```

## Summary / Checklist for Agents

1. Add `init({...})` globally before the React component tree renders.
2. Store the user in local React state.
3. Populate initial state using `getUser()` inside a `useEffect`.
4. Create a sign-in function calling `signInWithProvider({ provider: 'google' })`.
5. Create a sign-out function calling `signOut()`.


# For Web Apps


# Multichain Supported

## Supported Chains <a href="#supported-chains" id="supported-chains"></a>

This is a list of chains that we're currently supports. You can find the `chain` from @ramer-v2/core

<table><thead><tr><th>Chain Name</th><th width="254">Chain ID</th><th>Network</th></tr></thead><tbody><tr><td>Viction</td><td>88</td><td>Mainnet</td></tr><tr><td>Polygon</td><td>137</td><td>Mainnet</td></tr><tr><td>Binance Smart Chain</td><td>90</td><td>Mainnet</td></tr><tr><td>Chiliz</td><td>88888</td><td>Mainnet</td></tr><tr><td>ZkSync Era</td><td>324</td><td>Mainnet</td></tr><tr><td>Ethereum</td><td>1</td><td>Mainnet</td></tr><tr><td>Orange</td><td>61022</td><td>Mainnet</td></tr><tr><td>Viction Testnet</td><td>89</td><td>Testnet</td></tr><tr><td>Orange Testnet</td><td>61022</td><td>Testnet</td></tr></tbody></table>

## Initialization <a href="#initialization" id="initialization"></a>

For simple initialization, you need to have an `appId` for creating an app in Ramper, please visit this [link](https://developer.v2.ramper.xyz/) to create a new app. Then you can use the following code:

```jsx
import {
  init
} from "@ramper-v2/multi";
 
 
...
 
const handleInit = async () => {
  await init({
    appId: "your-app-id",
  });
};
 
```

### Notes <a href="#notes" id="notes"></a>

You can also use some custom parameters to initialize Ramper. Please note that those optional parameters are only applied if config from your app is not provided.

Here are some parameters you can use:

<table><thead><tr><th>Parameter</th><th width="412">Type</th><th>Description</th></tr></thead><tbody><tr><td>config</td><td><code>Record&#x3C;string, string></code></td><td>This one will be provided by the Ramper team</td></tr><tr><td>theme</td><td><code>dark</code> or <code>light</code></td><td>This will change theme for wallet UI</td></tr><tr><td>coinInfo</td><td>CoinInfo</td><td>The list of coins to display and calulation</td></tr><tr><td>language</td><td><code>en</code> or <code>kr</code></td><td>Select supported language</td></tr><tr><td>walletTabs</td><td>string</td><td>Select initial wallet tab</td></tr><tr><td>partner</td><td>string</td><td>Select partner default is <code>ramper</code></td></tr><tr><td>logoURI</td><td>string</td><td>Logo URI for display through the wallet</td></tr></tbody></table>

### User sign-up & sign-in

```jsx
import { signInWithProvider, signIn } from '@ramper-v2/multi'
 
const signInResult = await signInWithProvider({ provider });
 
const signInResult = await signIn();
```

There are two ways to sign in a user. The first way is to use the `signInWithProvider` function, which takes a provider as an argument. The provider can be one of the following: `google`, `facebook`, or `email`. The second way is to use the `signIn` function, which will show a modal with all the available providers.

### Get the current signed in user

```jsx
import { getUser } from '@ramper-v2/multi'
 
const user = await getUser()
 
if (user) {
  console.log(user)
}
```

### Logging Out <a href="#logging-out" id="logging-out"></a>

Users can log out or disconnect their wallet with:

```jsx
import { signOut } from '@ramper-v2/multi'
 
await signOut()
```

Yup, it really is just that easy!

If there's any feature you would like to see or design patterns you would like for the Ramper team to adopt.

### Disclaimer <a href="#disclaimer" id="disclaimer"></a>

Our current SDK is in active development. The interface described above and the functionalities provided are subject to change.


# Wallet Integration

## Overview <a href="#overview" id="overview"></a>

Ramper supports many standardized methods, including: `signMessage` , `signTransaction` , `sendTransaction` , `sendToken`

## Example <a href="#example" id="example"></a>

```javascript
import {
  sendToken,
  sendTransaction,
  signMessage,
  signTransaction,
} from "@ramper-v2/multi";
import { CHAIN } from "@ramper-v2/core";
 
...
 
// Initialize Chain
const chain = CHAIN.VICION;
 
// Sign Message
const handleSignMessage = async () => {
  const result = await signMessage({
    message: abc,
    chain,
  });
};
 
// Sign Transaction
const handleSignTransaction = async () => {
  // Please use your own nonce and estimateGas function
  const nonce = await getNonce(publicKey);
  const gasLimit = await estimateGas({
    to: receiver,
    value: //,
  });
 
  const transaction = {
    from: publicKey,
    data: "0x",
    gasLimit: gasLimit.toString(),
    nonce,
    to: receiver,
    value: amount,
  };
  const result = await signTransaction({
    transaction,
    chain,
  });
};
 
// Send Transaction
const handleSendTransaction = async () => {
  // Please use your own nonce and estimateGas function
  const nonce = await getNonce(publicKey);
  const gasLimit = await estimateGas({
    to: receiver,
    value: amount,
  });
 
  const transaction = {
    from: publicKey,
    data: "0x",
    gasLimit: gasLimit.toString(),
    nonce,
    to: receiver,
    value: amount,
  };
  const result = await sendTransaction({
    transaction,
    chain,
  });
};
 
// Send Token
const handleSendToken = async () => {
  const result = await sendToken({
    transaction: {
      from: publicKey,
      to: receiver,
      value: amount,
    },
    symbol: "c98",
    chain,
  });
};
```


# Approve NFT

## Approve Single NFT

{% tabs %}
{% tab title="Code Example" %}
{% code title="approve-nft.tsx" fullWidth="true" %}

```javascript
import {
  approveToken,
  ApproveTypes,
  RawTransaction
} from "@ramper-v2/multi";
import Web3 from "web3";
import { CHAIN_DATA } from "@wallet/constants";
 
const rpcURL = CHAIN_DATA[chain].rpcURL;
const client = new Web3(
  new Web3.providers.HttpProvider(rpcURL)
);
 
const approveNFTData = {
  approveContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
  spender: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
  tokenID: '2443'
}
 
 
const handleApproveNFT = async () => {
  try {
    const { approveContract, spender, tokenID } = approveNFTData;
 
    if (!approveContract || !chain) return;
 
    const contract = new client.eth.Contract(
      ERC721ABI as any,
        approveContract
      );
    const dataraw = contract.methods.approve(spender, tokenID);
    const rawTransaction: RawTransaction = {
      data: dataraw.encodeABI(),
      to: approveContract,
    };
 
    const result = await approveToken({
      transaction: rawTransaction,
      options: {
        type: ApproveTypes.NFT,
      },
      chain,
    });
  } catch (error) {
    // Error Handler
  }
};
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}

<figure><img src="/files/SS2vY7Q2Sgu6IJSGwAOI" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Approve NFT Collection

{% tabs %}
{% tab title="Code Example" %}
{% code title="approve-nft-collection.tsx" fullWidth="true" %}

```javascript
import {
  approveToken,
  ApproveTypes
} from "@ramper-v2/multi";
import Web3 from "web3";
import { CHAIN_DATA } from "@wallet/constants";
 
const rpcURL = CHAIN_DATA[chain].rpcURL;
 
const approveNFTCollectionData = {
  approveContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
  spender: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
  tokenID: '2443'
}
 
const client = new Web3(
  new Web3.providers.HttpProvider(rpcURL)
);
 
const handleApproveNFTCollection = async () => {
  try {
    const { approveContract, spender } = approveNFTCollectionData;
 
    const contract = new client.eth.Contract(
      ERC721ABI as any,
      approveContract
    );
    const dataraw = contract.methods.setApprovalForAll(spender, true);
    const rawTransaction: RawTransaction = {
      data: dataraw.encodeABI(),
      to: approveContract,
    };
 
    const result = await approveToken(rawTransaction, {
      type: ApproveTypes.NFTCOLLECTION,
    });
  } catch (error) {
    // Error Handler
  }
};
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}

<figure><img src="/files/crpUG8S93OVYsIo3sdPl" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


# Approve Token

{% tabs %}
{% tab title="Code Example" %}
{% code title="approve-token.tsx" %}

```javascript
import {
  approveToken,
  ApproveTypes,
  CHAIN,
  TokenInfo,
  RawTransaction
} from "@ramper-v2/multi";
 
import {
  convertBalanceToWei
} from "@ramper-v2/utils";
 
import Web3 from "web3";
import { CHAIN_DATA } from "@wallet/constants";
 
const rpcURL = CHAIN_DATA[chain].rpcURL;
 
const approveTokenData = {
approveContract: '0x0Fd0288AAAE91eaF935e2eC14b23486f86516c8C',
amount: '1',
spender: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826'
}
 
const handleApproveToken = async () => {
  try {
    const {
      approveContract,
      amount: approveAmount,
      spender,
    } = approveTokenData;
 
    if (!approveContract || !chain) return;
 
    const client = new Web3(
      new Web3.providers.HttpProvider(rpcURL)
    );
    const contract = new client.eth.Contract(
      ERC20ABI as any,
      approveContract
    );
 
    const decimal = ramper.config.coinInfo?.[chain]?.find((coinInfo) => {
      return (
        String(coinInfo.address).toLocaleLowerCase() ===
        approveContract.toLocaleLowerCase()
      );
    })?.decimals;
 
    const amount = convertBalanceToWei(approveAmount, decimal);
    const dataraw = contract.methods.approve(spender, amount);
    const rawTransaction: RawTransaction = {
      data: dataraw.encodeABI(),
      to: approveContract,
    };
 
    const result = await approveToken({
      transaction: rawTransaction,
      chain,
    });
 
  } catch (error) {
  // Error Handler
  }
};
 
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}

<figure><img src="/files/m5lKVmyR1oAHIHq2GsEI" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


# Sign Typed

## Sign Typed Data

{% tabs %}
{% tab title="Code Example" %}
{% code title="sign-typed.tsx" %}

```javascript
import {
  signTypeData,
} from "@ramper-v2/multi";
 
const TYPE_DATA_TEST = JSON.stringify([
  {
    type: "string",
    name: "Message",
    value: "Hi, Alice!",
  },
  {
    type: "uint32",
    name: "A number",
    value: "1337",
  },
])
 
const handleSignTypeData = async () => {
  const result = await signTypeData({
    message: TYPE_DATA_TEST,
    type: 'eth_signTypedData',
    chain,
  });
};
 
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}

<div><figure><img src="/files/zvSl3ramcoLbNO0XzMAC" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Bv5ZPFnm77HDpp8INNBN" alt=""><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}

## Sign Typed Data V3

{% tabs %}
{% tab title="Code Example" %}
{% code title="sign-typed-v3.tsx" %}

```javascript
  import {
    signTypeData,
  } from "@ramper-v2/multi";
 
  const TYPE_DATA_TEST =  JSON.stringify({
  types: {
    EIP712Domain: [
      { name: "name", type: "string" },
      { name: "version", type: "string" },
      { name: "chainId", type: "uint256" },
      { name: "verifyingContract", type: "address" },
    ],
    Person: [
      { name: "name", type: "string" },
      { name: "wallet", type: "address" },
    ],
    Mail: [
      { name: "from", type: "Person" },
      { name: "to", type: "Person" },
      { name: "contents", type: "string" },
    ],
  },
  primaryType: "Mail",
  domain: {
    name: "Ether Mail",
    version: "1",
    chainId: 88,
    verifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
  },
  message: {
    from: {
      name: "Cow",
      wallet: "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
    },
    to: { name: "Bob", wallet: "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB" },
    contents: "Hello, Bob!",
  },
})
 
const handleSignTypeDataV3 = async () => {
  const result = await signTypeData({
    message: TYPE_DATA_TEST,
    type: 'eth_signTypedData_v3',
    chain,
  });
};
 
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}

<div><figure><img src="/files/KeVRSv5Lfok4fk8py3nH" alt=""><figcaption></figcaption></figure> <figure><img src="/files/I97SOiAaUCoc6sTVO4og" alt=""><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}

## Sign Typed Data V4

{% tabs %}
{% tab title="Code Example" %}

```javascript
import {
  signTypeData,
} from "@ramper-v2/multi";
 
const TYPE_DATA_TEST = JSON.stringify({
  domain: {
    chainId: "88",
    name: "Ether Mail",
    verifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
    version: "1",
  },
  message: {
    contents: "Hello, Bob!",
    from: {
      name: "Cow",
      wallets: [
        "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
        "0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF",
      ],
    },
    to: [
      {
        name: "Bob",
        wallets: [
          "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
          "0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57",
          "0xB0B0b0b0b0b0B000000000000000000000000000",
        ],
      },
    ],
    attachment: "0x",
  },
  primaryType: "Mail",
  types: {
    EIP712Domain: [
      { name: "name", type: "string" },
      { name: "version", type: "string" },
      { name: "chainId", type: "uint256" },
      { name: "verifyingContract", type: "address" },
    ],
    Group: [
      { name: "name", type: "string" },
      { name: "members", type: "Person[]" },
    ],
    Mail: [
      { name: "from", type: "Person" },
      { name: "to", type: "Person[]" },
      { name: "contents", type: "string" },
      { name: "attachment", type: "bytes" },
    ],
    Person: [
      { name: "name", type: "string" },
      { name: "wallets", type: "address[]" },
    ],
  },
})
 
const handleSignTypeV4 = async () => {
  const result = await signTypeData({
    message: TYPE_DATA_TEST,
    type: 'eth_signTypedData_v4',
    chain,
  });
};
 
```

{% endtab %}

{% tab title="Demo UI" %}

<div><figure><img src="/files/tdJpBrFK6lTPIseanphG" alt=""><figcaption></figcaption></figure> <figure><img src="/files/u4pgEpPYC0CwAWXhTM37" alt=""><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}


# Get Started on Viction

## Overview <a href="#getting-started" id="getting-started"></a>

Ramper SDK provides an easy wallet solution for developers to integrate into their Dapps. Once integrated, your users will be able to log in with a popular OAuth solution and instantly interact with a Viction wallet.

Ramper SDK also provides the "WalletView" component, which allows your application to access various wallet-related functionalities such as Fiat On-ramp, transaction history, and token transfers. All via a single line of code.

## Getting Started

### Install Ramper SDK <a href="#install-ramper-sdk" id="install-ramper-sdk"></a>

#### Installing Ramper SDK <a href="#id-sdk-viction-installrampervictionsdk" id="id-sdk-viction-installrampervictionsdk"></a>

```
$ npm i @ramper-v2/viction
```

```
$ yarn add @ramper-v2/viction
```

#### Initialising Ramper SDK <a href="#id-sdk-viction-usersignup-and-login" id="id-sdk-viction-usersignup-and-login"></a>

```jsx
import { init, signIn } from '@ramper-v2/viction'
import { getWalletModel, User, WALLET_PROVIDER } from '@ramper-v2/core'
import { ethers } from '@ethers'

await init({
  appId: 'missing_app_id',
  appName: 'Viction Test App',
  walletProviders: [],
  defaultTokenAddresses: [],
  theme: 'dark',
  network: 'mainnet',
  authProviders: ['google', 'facebook', 'email'],
})
```

You need to initialize the SDK with your app id, app name, and other configurations to be able to use Ramper SDK. Make sure to run the init function after the page is loaded, and wait for the promise to resolve before using the SDK.

#### User sign-up & sign-in <a href="#user-sign-up-and-sign-in" id="user-sign-up-and-sign-in"></a>

```jsx
const signInResult = await signInWithProvider({ provider });
const signInResult = await signIn();
```

There are two ways to sign in a user. The first way is to use the `signInWithProvider` function, which takes a provider as an argument. The provider can be one of the following: `google`, `facebook`, or `email`. The second way is to use the `signIn` function, which will show a modal with all the available providers.

#### Get the current signed in user <a href="#get-the-current-signed-in-user" id="get-the-current-signed-in-user"></a>

```jsx
import { getUser } from '@ramper-v2/viction'
const user = await getUser()
if (user) {
  console.log(user)
}
```

#### Logging Out <a href="#logging-out" id="logging-out"></a>

Users can log out or disconnect their wallet with:

```jsx
import { signOut } from '@ramper-v2/viction'
await signOut()
```

Yup, it really is just that easy!

{% hint style="info" %}
Disclaimer: Our current SDK is in active development. The interface described above and the functionalities provided are subject to change.
{% endhint %}

### In-App Wallet View

#### Overview <a href="#overview.1" id="overview.1"></a>

The Ramper SDK provides "ViewWallet" component. This is meant to further help Dapp developers to focus on their core-competancy, by providing a number of wallet-related functions one may have to implmenet off-the-shelf.

These functions include showing the user's wallet info (address, balances, transaction history, etc), an integrated fiat-on-ramp, token transfer, as well as access to numerous config items (that you'd initially pass in init())

#### How to include in your app <a href="#how-to-include-in-your-app" id="how-to-include-in-your-app"></a>

It's extremely simple to include WalletView in your Dapp, if you're already using Ramper Embedded Wallet SDK!

```jsx
import { openWallet } from '@ramper-v2/viction'
...
    <Button onClick={openWallet}>My Wallet</Button>

```

### Wallet Integration <a href="#wallet-integration" id="wallet-integration"></a>

#### Overview <a href="#overview.2" id="overview.2"></a>

Ramper supports many standardized methods, including: signMessage signTransaction sendTransaction sendToken connect

```jsx
import {
  sendToken,
  sendTransaction,
  signMessage,
  signTransaction,
  getNonce,
  estimateGas
} from "@ramper-v2/viction";
...
// Sign Message
const handleSignMessage = async () => {
  const result = await signMessage(message.message);
};
// Sign Transaction
const handleSignTransaction = async () => {
  const nonce = await getNonce(wallet?.publicKey as string);
    const gasLimit = await estimateGas({
      to: receiver,
      value: convertBalanceToWei("0.0001", 18),
    });
    const transaction = {
      from: wallet?.publicKey as string,
      data: "0x",
      gasLimit: gasLimit.toString(),
      nonce,
      to: receiver,
      value: amount,
    };
  const result = await signTransaction(transaction);
};
// Send Transaction
const handleSendTransaction = async () => {
  const nonce = await getNonce(wallet?.publicKey as string);
    const gasLimit = await estimateGas({
      to: receiver,
      value: convertBalanceToWei("0.0001", 18),
    });
    const transaction = {
      from: wallet?.publicKey as string,
      data: "0x",
      gasLimit: gasLimit.toString(),
      nonce,
      to: receiver,
      value: amount,
    };
  const result = await sendTransaction(transaction);
};
// Send Token
const handleSendToken = async () => {
  const result = await sendToken({
    to: transactionData.receiver,
    value: transactionData.amount,
    symbol: "c98",
  });
};
```


# Version 1


# Get Started on Viction

#### Install Ramper Viction SDK <a href="#id-sdk-viction-installrampervictionsdk" id="id-sdk-viction-installrampervictionsdk"></a>

```
npm i @ramper/viction
```

or

```
yarn add @ramper/viction
```

#### User signup & login <a href="#id-sdk-viction-usersignup-and-login" id="id-sdk-viction-usersignup-and-login"></a>

```
import {
  init,
  AUTH_PROVIDERS,
  CHAIN,
  THEME,
  WALLET_PROVIDER,
  SUPPORTED_TOMO_NETWORKS
} from '@ramper/viction'
import { getWalletModel, User } from '@ramper/core'

init({
  appName: 'Viction Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ],
  walletProviders: [WALLET_PROVIDER.METAMASK],
  network: SUPPORTED_TOMO_NETWORKS.MAINNET,
  theme: THEME.DARK,
})

const signInResult = await signIn()
```

Calling `await signIn(walletToUse)` launch the log in dialog and return a signInResult when the user successfully logs in or connects an account

#### Get logged-in user <a href="#id-sdk-viction-getlogged-inuser" id="id-sdk-viction-getlogged-inuser"></a>

```
import { getUser } from '@ramper/viction'

const user = getUser()
```

#### Send Token <a href="#id-sdk-viction-sendtoken" id="id-sdk-viction-sendtoken"></a>

The following code demonstrates how to send a token from a wallet belonging to the signed in user or a connected wallet.

```
import { sendToken } from '@ramper/viction'

try {
  const isSuccess = await sendToken({
    to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
    value: '0.000001',
    network: 'mainnet'
  })
  console.log('sendToken result: ', isSuccess)
} catch (e) {
  console.error(e)
}
```

#### Get ethers.js compatible signer <a href="#id-sdk-viction-getethers.jscompatiblesigner" id="id-sdk-viction-getethers.jscompatiblesigner"></a>

Once you have obtained a Signer, you can use the familiar ethers.js functions to write your DApp. See <https://docs.ethers.io/v5/api/signer/> for reference if you aren't already familiar with ethers.js

`signTransaction`, `signMessage` and `sendTransaction` functions are implemented

```
import { sendTransaction, signTransaction, signMessage } from '@ramper/viction'

try {
  sendTransaction({
    from: wallet?.publicKey as string,
    data: '0x',
    gasLimit: gasLimit.toString(),
    nonce,
    to: transaction.receiver,
    value: transaction.amount,
  })
  
  signTransaction({
    from: wallet?.publicKey as string,
    data: '0x',
    gasLimit: gasLimit.toString(),
    nonce,
    to: transaction.receiver,
    value: transaction.amount,
  })
  
  signMessage(message)
} catch (e) {
  console.log(e)
}

```

We highly recommend you use Promise for the fields that need network access to be determined, such as nonce and gasLimit, etc.

If sendTransaction is triggered by a button, for example, and you perform all the accesses before actually calling sendTransaction, we've noticed the popup window for the user confirmation can be blocked by Safari.

#### Sign out <a href="#id-sdk-viction-signout" id="id-sdk-viction-signout"></a>

Users can log out or disconnect their wallet with:

```
import { signOut } from '@ramper/viction'

await signOut()
```

Yup, it really is just that easy!

If there's any feature you would like to see or design patterns you would like for the Ramper team to adopt, come chat with us (see [Introduction](https://coin98.atlassian.net/#chat-with-us) for ways to reach us).

NPM Source: <https://www.npmjs.com/package/@ramper/viction>


# Get Started on zkSync Era

#### Install Ramper  SDK <a href="#id-sdk-viction-installrampervictionsdk" id="id-sdk-viction-installrampervictionsdk"></a>

```
npm i @ramper/zksync
```

or

```
yarn add @ramper/zksync
```

#### User signup & login <a href="#id-sdk-viction-usersignup-and-login" id="id-sdk-viction-usersignup-and-login"></a>

<pre><code><strong>import {
</strong>  init,
  AUTH_PROVIDERS,
  CHAIN,
  THEME,
  WALLET_PROVIDER,
  SUPPORTED_ZKSYNC_ERA_NETWORKS
} from '@ramper/zksync'
import { getWalletModel, User } from '@ramper/core'

init({
  appName: 'zKsync Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ],
  walletProviders: [WALLET_PROVIDER.METAMASK],
  network: SUPPORTED_ZKSYNC_ERA_NETWORKS.MAINNET,
  theme: THEME.DARK,
})

const signInResult = await signIn()
</code></pre>

Calling `await signIn(walletToUse)` launch the log in dialog and return a signInResult when the user successfully logs in or connects an account

#### Get logged-in user <a href="#id-sdk-viction-getlogged-inuser" id="id-sdk-viction-getlogged-inuser"></a>

```
import { getUser } from '@ramper/zksync'

const user = getUser()
```

#### Send Token <a href="#id-sdk-viction-sendtoken" id="id-sdk-viction-sendtoken"></a>

The following code demonstrates how to send a token from a wallet belonging to the signed in user or a connected wallet.

```
import { sendToken } from '@ramper/zksync'

try {
  const isSuccess = await sendToken({
    to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
    value: '0.000001',
    network: 'mainnet'
  })
  console.log('sendToken result: ', isSuccess)
} catch (e) {
  console.error(e)
}
```

#### Get ethers.js compatible signer <a href="#id-sdk-viction-getethers.jscompatiblesigner" id="id-sdk-viction-getethers.jscompatiblesigner"></a>

Once you have obtained a Signer, you can use the familiar ethers.js functions to write your DApp. See [Signers](https://docs.ethers.io/v5/api/signer/) for reference if you aren't already familiar with ethers.js

`signTransaction`, `signMessage` and `sendTransaction` functions are implemented

```
import { sendTransaction, signTransaction, signMessage } from '@ramper/zksync'

try {
  sendTransaction({
    from: wallet?.publicKey as string,
    data: '0x',
    gasLimit: gasLimit.toString(),
    nonce,
    to: transaction.receiver,
    value: transaction.amount,
  })
  
  signTransaction({
    from: wallet?.publicKey as string,
    data: '0x',
    gasLimit: gasLimit.toString(),
    nonce,
    to: transaction.receiver,
    value: transaction.amount,
  })
  
  signMessage(message)
} catch (e) {
  console.log(e)
}


```

We highly recommend you use Promise for the fields that need network access to be determined, such as nonce and gasLimit, etc.

If sendTransaction is triggered by a button, for example, and you perform all the accesses before actually calling sendTransaction, we've noticed the popup window for the user confirmation can be blocked by Safari.

#### Sign out <a href="#id-sdk-viction-signout" id="id-sdk-viction-signout"></a>

Users can log out or disconnect their wallet with:

```
import { signOut } from '@ramper/zksync'

await signOut()
```

Yup, it really is just that easy!

If there's any feature you would like to see or design patterns you would like for the Ramper team to adopt, come chat with us.

NPM Source: <https://www.npmjs.com/package/@ramper/zksync>


# Get Started on EVM

{% hint style="info" %}
**Good to know:** Currently, Ramper's EVM SDK only supports React, and is compatible with Ether.js (currently supporting Ethereum & Polygon)
{% endhint %}

## Overview

Ramper's EVM SDK provides an easy wallet solution for developers to integrate into their DApps. Once integrated, your users will be able to log in with a popular OAuth solution and instantly interact with an Ethereum wallet, compatible with ethers.js

Ethers.js compatibility means any chain that works with ethers.js is also compatible with Ramper SDK.

Ramper SDK also provides [WalletView](/embedded-wallet-sdk/quickstart/for-web-apps/version-1/in-app-wallet-view/walletview) component, which provides the DApp with various wallet-related functionalities such as fiat-on-ramp, transaction history and token transfers.

In addition, Ramper's EVM SDK provides native support to connect your DApp with Metamask (more wallet supports coming soon) as well.

See these functions in action at <https://example.ramper.xyz/>

## Install Ramper SDK

#### Setup ether.js signer

Ramper SDK provides your Dapp an ethers.js Signer object to abstract the wallet operations away from your work scope. It works with any ethers.js-compatible Provider, such as Infura, Alchemy, etc. Unlike Metamask, you do need to set your own Provider up and pass it in to our SDK (see <https://docs.ethers.io/v5/api/providers/>). This design was to provide maximum control over the DApp infrastructure (e.g. with Metamask you are tied to using Infura, which had various issues)

#### Install SDK

```jsx
$ npm i @ramper/ethereum
```

or

```
$ yarn add @ramper/ethereum
```

#### User signup & login

```jsx
import { 
  init, 
  AUTH_PROVIDERS, 
  CHAIN, 
  THEME, 
  WALLET_PROVIDER, 
  SUPPORTED_ETHEREUM_NETWORKS 
} from '@ramper/ethereum'
import { getWalletModel, User } from '@ramper/core'
import { ethers } from '@ethers'

init({
  appName: 'EVM Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ],
  walletProviders: [WALLET_PROVIDER.METAMASK],
  network: SUPPORTED_ETHEREUM_NETWORKS.MATICMUM,
  theme: THEME.DARK,
})

const signInResult = await signIn()
// 80001 is the chainid for 'maticmum'
const alchemy = new ethers.providers.AlchemyProvider(80001, ALCHEMY_KEY)

```

Calling `await signIn(walletToUse)` launch the log in dialog and return a signInResult when the user successfully logs in or connects an account

#### Get logged-in user&#x20;

```jsx
import { getUser } from '@ramper/ethereum'

const user = getUser()
```

#### Send token

The following code demonstrates how to send a token from a wallet belonging to the signed in user or a connected wallet.

```jsx
import { sendToken } from '@ramper/ethereum'

try {
  const isSuccess = await sendToken({
    to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
    value: '0.000001', 
    network: 'mainnet'
  })
  console.log('sendToken result: ', isSuccess)
} catch (e) {
  console.error(e)
}
```

#### Get ethers.js compatible signer&#x20;

Once you have obtained a Signer, you can use the familiar ethers.js functions to write your DApp. See <https://docs.ethers.io/v5/api/signer/> for reference if you aren't already familiar with ethers.js&#x20;

Both signTransaction and sendTransaction functions are implemented (signMessage coming soon).

```jsx
import { getRamperSigner } from '@ramper/ethereum'

// This will be either RamperSigner or MetamaskSigner depending on
// what the user signed in with when prompted by signIn()
const signer = await getRamperSigner(alchemy)

const value = ethers.utils.parseEther('0.0000001')
const gasLimit = await alchemy.estimateGas({
  to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
  value: value,
})
const feeData = await alchemy.getFeeData()

try {
  signer.sendTransaction({
    type: 2,
    from: 'your-address',
    to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
    value: value,
    chainId: 80001,
    nonce: alchemy.getTransactionCount('your-address'),
    gasLimit: gasLimit,
    maxFeePerGas: feeData.maxFeePerGas,
    maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,
  })
} catch (e) {
  console.log(e)
}
```

{% hint style="info" %}
We highly recommend you use Promise for the fields that need network access to be determined, such as nonce and gasLimit, etc.

If sendTransaction is triggered by a button, for example, and you perform all the accesses before actually calling sendTransaction, we've noticed the popup window for the user confirmation can be blocked by Safari.
{% endhint %}

#### Sign out

Users can log out or disconnect their wallet with:

```jsx
import { signOut } from '@ramper/ethereum'

await signOut()
```

Yup, it really is just that easy!

If there's any feature you would like to see or design patterns you would like for the Ramper team to adopt, come chat with us (see [Introduction](/#chat-with-us) for ways to reach us).<br>

## Boilerplate Example

{% tabs %}
{% tab title="ReactJS" %}

```typescript
import {
  CHAIN,
  getRamperSigner,
  getUser,
  getWalletModel,
  init,
  openWallet,
  sendToken,
  signIn,
  signOut,
  User,
} from '@ramper/ethereum'
import { ethers } from 'ethers'
import { useMemo, useState } from 'react'

init({
  appName: 'EVM Test App',
  walletProviders: ['metamask'],
  defaultTokenAddresses: ['0x514910771af9ca656af840dff83e8264ecf986ca'],
  theme: 'dark',
  network: 'maticmum',
  authProviders: ['google', 'facebook', 'twitter', 'apple', 'email'],
})

const alchemy = new ethers.providers.AlchemyProvider(80001, 'pEWvHrkSkkyWGZmezdGMk_LjYu8DAx1k')

function App() {
  const [user, setUser] = useState<User | null>(getUser())
  const wallet = useMemo(() => {
    return user ? getWalletModel(window.localStorage, CHAIN.ETHEREUM) : null
  }, [user])

  const handleSignIn = async () => {
    const signInResult = await signIn()
    setUser(signInResult.user ?? null)
  }

  const handleSendToken = async () => {
    try {
      const isSuccess = await sendToken({
        to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
        value: '0.000001',
        network: 'mainnet',
      })
      console.log('sendToekn result: ', isSuccess)
    } catch (e) {
      console.error(e)
    }
  }

  const handleSendTransactionWithRamperSigner = async () => {
    if (!wallet) {
      console.log('No wallet')
      return
    }

    const signer = await getRamperSigner(alchemy)

    const value = ethers.utils.parseEther('0.0000001')
    const gasLimit = await alchemy.estimateGas({
      to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
      value,
    })
    const feeData = await alchemy.getFeeData()

    try {
      signer.sendTransaction({
        type: 2,
        from: wallet.publicKey,
        to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
        value,
        chainId: 80001,
        nonce: alchemy.getTransactionCount(wallet.publicKey),
        gasLimit: gasLimit,
        maxFeePerGas: feeData.maxFeePerGas,
        maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,
      })
    } catch (e) {
      console.log(e)
    }
  }

  const handleSignOut = () => {
    signOut()
    setUser(null)
  }

  const handleOpenWalletView = () => {
    openWallet()
  }

  return (
    <div
      style={{
        padding: '20px 16px',
      }}
    >
      <div
        style={{
          display: 'flex',
          flexDirection: 'column',
        }}
      >
        <p>Ramper Ethereum Example</p>
        <button onClick={handleSignIn}>Sign in</button>
        <br />
        <button onClick={handleSendToken}>Test sendToken</button>
        <br />
        <button onClick={handleSendTransactionWithRamperSigner}>Test sendTransaction with RamperSigner</button>
        <br />
        <button onClick={handleOpenWalletView}>Open WalletView</button>
        <br />
        <button onClick={handleSignOut}>Sign out</button>
      </div>
    </div>
  )
}

export default App

```

{% endtab %}

{% tab title="Vanilla Javascript" %}
Our vanilla Javascript SDK is very similar to our ReactJS SDK. Instead of doing an `npm i` , you can integrate our SDK by importing from our CDN. Afterwards, you just need to interact with the `window.ramper` global object to gain access to most of the exported methods.\
\
Currently our vanilla JS SDK is in **beta preview** mode. There are a few minor bugs and refinements needed to reach full parity with our ReactJS SDK so please check back next week for updates. For any SDK design feedback, please contact the Ramper team.

```html
<!DOCTYPE html>
<html>
<head>
  <script src="https://js.ramper.xyz/v1/ethereum"></script>
  <script src="https://cdn.ethers.io/lib/ethers-5.6.umd.min.js"
  type="application/javascript"></script>
</head>
<body>
  <script>
    window.ramper.setConfig({
      appName: "EVM Test App",
      chainName: "ethereum",
      defaultTokenAddresses: [],
      theme: "dark",
      network: "maticmum",
      authProviders: ["twitter", "google", "facebook", "apple", "email"],
    });

    /*
     * Gets the cached user and wallet.
     */
    function getUserData() {
      const cachedUser = window.localStorage.getItem('ramper_loggedInUser')
      if (!cachedUser || cachedUser === 'undefined' || cachedUser === 'null') {
        return null
      }

      const cachedWallet = window.localStorage.getItem('ramper_currentUserWallets')
      if (!cachedWallet || cachedWallet === 'undefined' || cachedWallet === 'null') {
        return null
      }

      const user = JSON.parse(cachedUser)
      const wallets = JSON.parse(cachedWallet)
      return {user, wallets}
    }
    
    async function signIn() {
      if (getUserData()) {
        alert("Error: You are already signed in.")
        return
      }
      const userData = await window.ramper.signIn()
      console.log(userData)
    }

    function openWallet() {
      if (!getUserData()){
        alert("Error: You are signed out.")
        return
      }
      window.ramper.openWallet()
    }

    function showUserData() {
      if (!getUserData()){
        alert("Error: You are signed out.")
        return
      }
    }

    async function sendTransaction() {
      console.log("Send Transaction using ether.js is in the process of being fully migrated to our Vanilla JS SDK")

      const {users, wallets} = getUserData()
      const wallet = wallets["ethereum"]

      if (!getUserData()){
        alert("Error: You are signed out.")
        return
      }
      const alchemy = new ethers.providers.AlchemyProvider(80001, 'pEWvHrkSkkyWGZmezdGMk_LjYu8DAx1k')
      const ramperSigner = await window.ramper.getRamperSigner(alchemy)
      try {
        if (!ramperSigner || !wallet) {
          throw new Error('No wallet')
        }

        const fromAddress = wallet.publicKey
        const toAddress = '0x1A2060a7469A5Df387e73dE3a9268763F4bE793d'
        const value = '0.00001'

        const tx = {
          type: 2,
          from: fromAddress,
          to: toAddress,
          value: ethers.utils.parseEther(value),
          chainId: 80001,
          nonce: alchemy.getTransactionCount(fromAddress),
          gasLimit: alchemy.estimateGas({
            to: toAddress,
            value: ethers.utils.parseEther(value),
          }),
          maxFeePerGas: alchemy.getFeeData().then((x) => x.maxFeePerGas),
          maxPriorityFeePerGas: alchemy.getFeeData().then((x) => x.maxPriorityFeePerGas),
        }
        console.log(tx)
        const signedTx = await ramperSigner.signTransaction(tx)
        const txResult = await alchemy.sendTransaction(signedTx)

        console.log('RESULTS ' + txResult.hash)
      } catch (ex) {
        console.log(ex)
      }
    }

    function signOut() {
      if (!getUserData()){
        alert("Error: You are already signed out.")
        return
      }
      window.ramper.signOut()
    }
  </script>
  <button onclick="signIn()">Sign In</button>
  <button onclick="openWallet()">View Wallet</button>
  <button onclick="sendTransaction()">Send Transaction (Not Fully Ported)</button>
  <button onclick="signOut()">Sign Out</button>
</body>
</html
```

{% endtab %}
{% endtabs %}


# Get Started on Chiliz

#### Install Ramper Chiliz SDK <a href="#chilizsdk-installramperchilizsdk" id="chilizsdk-installramperchilizsdk"></a>

```
npm i @ramper/chiliz
```

or

```
yarn add @ramper/chiliz
```

#### User signup & login <a href="#chilizsdk-usersignup-and-login" id="chilizsdk-usersignup-and-login"></a>

```
import {
  init,
  AUTH_PROVIDERS,
  CHAIN,
  THEME,
  WALLET_PROVIDER,
  SUPPORTED_CHILIZ_NETWORKS
} from '@ramper/chiliz'
import { getWalletModel, User } from '@ramper/core'

init({
  appName: 'Chiliz Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ],
  walletProviders: [WALLET_PROVIDER.METAMASK],
  network: SUPPORTED_CHILIZ_NETWORKS.MAINNET,
  theme: THEME.DARK,
})

const signInResult = await signIn()
```

Calling `await signIn(walletToUse)` launch the log in dialog and return a signInResult when the user successfully logs in or connects an account

#### Get logged-in user <a href="#chilizsdk-getlogged-inuser" id="chilizsdk-getlogged-inuser"></a>

```
import { getUser } from '@ramper/chiliz'

const user = getUser()
```

#### Send Token <a href="#chilizsdk-sendtoken" id="chilizsdk-sendtoken"></a>

The following code demonstrates how to send a token from a wallet belonging to the signed in user or a connected wallet.

```
import { sendToken } from '@ramper/chiliz'

try {
  const isSuccess = await sendToken({
    to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
    value: '0.000001',
    network: 'mainnet'
  })
  console.log('sendToken result: ', isSuccess)
} catch (e) {
  console.error(e)
}
```

#### Get ethers.js compatible signer <a href="#chilizsdk-getethers.jscompatiblesigner" id="chilizsdk-getethers.jscompatiblesigner"></a>

Once you have obtained a Signer, you can use the familiar ethers.js functions to write your DApp. See <https://docs.ethers.io/v5/api/signer/> for reference if you aren't already familiar with ethers.js

`signTransaction`, `signMessage` and `sendTransaction` functions are implemented

```
import { sendTransaction, signTransaction, signMessage } from '@ramper/chiliz'

try {
  sendTransaction({
    from: wallet?.publicKey as string,
    data: '0x',
    gasLimit: gasLimit.toString(),
    nonce,
    to: transaction.receiver,
    value: transaction.amount,
  })
  
  signTransaction({
    from: wallet?.publicKey as string,
    data: '0x',
    gasLimit: gasLimit.toString(),
    nonce,
    to: transaction.receiver,
    value: transaction.amount,
  })
  
  signMessage(message)
} catch (e) {
  console.log(e)
}

```

We highly recommend you use Promise for the fields that need network access to be determined, such as nonce and gasLimit, etc.

If sendTransaction is triggered by a button, for example, and you perform all the accesses before actually calling sendTransaction, we've noticed the popup window for the user confirmation can be blocked by Safari.

#### Sign out <a href="#chilizsdk-signout" id="chilizsdk-signout"></a>

Users can log out or disconnect their wallet with:

```
import { signOut } from '@ramper/chiliz'

await signOut()
```

Yup, it really is just that easy!

If there's any feature you would like to see or design patterns you would like for the Ramper team to adopt, come chat with us (see [Introduction](https://coin98.atlassian.net/#chat-with-us) for ways to reach us).

NPM Source: <https://www.npmjs.com/package/@ramper/chiliz>


# Get Started on NEAR

{% hint style="info" %}
**Good to know:** Currently, Ramper's Near SDK only supports React. A stand-alone version is under consideration.
{% endhint %}

## Overview

Ramper's Near SDK provides an easy wallet solution for developers to integrate into their DApps. Once integrated, your users will be able to log in with a popular OAuth solution and instantly interact with a Near wallet.

Ramper  SDK also provides [WalletView](/embedded-wallet-sdk/quickstart/for-web-apps/version-1/in-app-wallet-view/walletview) component, which provides the DApp with various wallet-related functionalities such as fiat-on-ramp, transaction history and token transfers.

In addition, Ramper's Near SDK provides native support to connect your DApp with Near Wallet (more wallet supports coming soon) as well.

See these functions in action at <https://example.ramper.xyz/>

### <mark style="color:red;">Initialize NEAR Wallet</mark>

To do anything with the NEAR wallet, it needs to be first funded with at least 0.1 NEAR. This is a [policy set by NEAR](https://near.org/blog/getting-started-with-the-near-wallet/#:~:text=To%20do%20anything%20with%20the,exchanges%20like%20Binance%20and%20Huobi.). Whenever a user logs into your DApp through Ramper SDK, you will need to ensure that their wallet is funded.&#x20;

We recommend checking their wallet balance. Either transfer 0.1 NEAR, or instruct the user to obtain NEAR. All new NEAR wallets remain inactive until initialized.

## Install Ramper SDK

#### Setup Near JS Library

Near JS Library is useful for constructing transactions and providing a host of useful functions to interact with the Near blockchain. You can install the Near JS Library as follows:

```
npm i near-api-js bn.js
npm i -D @types/bn.js
```

#### Install Ramper Connect SDK

```jsx
$ yarn add @ramper/near
```

or

```jsx
$ npm i @ramper/near
```

#### User signup & login

```jsx
import { 
  init, 
  signIn,
  AUTH_PROVIDER, 
  CHAIN, 
  THEME, 
  WALLET_PROVIDER,
  SUPPORTED_NEAR_NETWORKS 
} from '@ramper/near'

init({
  appName: 'Near Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ]
  walletProviders: [WALLET_PROVIDER.NEAR_WALLET],
  network: SUPPORTED_NEAR_NETWORKS.TESTNET,
  theme: THEME.DARK,
})

const signInResult = await signIn()
```

Calling `await signIn()` will launch the log in dialog and return a signInResult when the user successfully logs in or connects an account.

#### Get logged in user

```jsx
import { getUser } from '@ramper/near'

const user = getUser()
```

#### Displaying User Tokens

Ramper Connect SDK provides an `openWallet` method that opens an interface which allows the user to view their tokens, export their private key, see their transaction history, and do much more with their Ramper wallet.

```jsx
import { openWallet } from '@ramper/near'  

<button onClick={openWallet}>My Wallet</button>
```

Once the user logs in, we recommend you replace the login button with a new button that shows their wallet address and triggers the `openWallet()` function when clicked.  &#x20;

#### Send token

The following code demonstrates how to send a token from a wallet belonging to the signed in user or a connected wallet.

```jsx
import { sendToken } from '@ramper/near'

try {
  const isSuccess = await sendToken({
    to: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148',
    value: '0.01', 
    network: 'testnet'
  })
  console.log('sendToken result: ', isSuccess)
} catch (ex) {
  console.error('Transaction failed')
}
```

#### Send transaction

The following code demonstrates how to send a transaction from a wallet belonging to the signed in user.

```typescript
import { sendTransaction } from '@ramper/near'
import { transactions } from 'near-api-js'
import { BN } from 'bn.js'

try {
  const actions = [transactions.transfer(new BN(10000000))]
  await sendTransaction({
    transactionActions: [{
      receiverId: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148'
      actions: actions
    }],
    network: 'testnet',
  })
} catch (ex) {
  console.error('Transaction failed')
}
```

**Sign transaction**

The following code demonstrates how to sign a transaction from a wallet belonging to the signed in user.

```typescript
import { signTransaction } from '@ramper/near'

try {
  const result = await signTransaction({
    transaction: {
      receiverId: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148',
      actions: [transactions.transfer(new BN(10000000))],
    },
  })
  console.log('signTransaction result', result)
} catch (e) {
  console.error(e)
}
```

#### Sign message

The following code demonstrates how to sign a transaction from a wallet belonging to the signed in user.

```typescript
import { signMessage } from '@ramper/near'

const message = [12, 13, 14, 15]
const messageBuffer = new Uint8Array(message)

try {
  const result = await signMessage({
    message: messageBuffer,
  })
  console.log('signMessage result', result)
} catch (e) {
  console.log(e)
}
```

#### Sign out

Users can log out or disconnect their wallet with:

```jsx
import { signOut } from '@ramper/near'

await signOut()
```

Yup, it really is just that easy!

If there's any feature you would like to see or design patterns you would like for the Ramper team to adopt, come chat with us (see [Introduction](/#chat-with-us) for ways to reach us).

## Boilerplate Examples

{% tabs %}
{% tab title="Vue" %}
Install Dependencies:

```
npm i --save @ramper/near bn.js
npm i --save-dev @types/bn.js
```

\
Add near-api-js to the `<HEAD>` tag in your index.html. Alternatively, you can install near-api-js from npm.

```html
<script src="https://cdn.jsdelivr.net/npm/near-api-js@0.41.0/dist/near-api-js.min.js"></script>
```

\
Sample App.vue

```html
<script setup lang="ts">
import { AUTH_PROVIDER, CHAIN, getUser, init, openWallet, sendTransaction, signIn, signOut, THEME, WALLET_PROVIDER } from "@ramper/near";
import BN from "bn.js";
// Alternative to importing nearApi from CDN.
//import { transactions } from 'near-api-js';
</script>

<script lang="ts">

declare global {
  interface Window {
    nearApi: any
  }
}

init({
  appName: 'Near Test App',
  chainName: CHAIN.NEAR,
  walletProviders: [WALLET_PROVIDER.NEAR_WALLET],
  theme: THEME.LIGHT,
  network: 'testnet',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.EMAIL
  ]
})

export default {
  components: {},
  data() {
    return {
      user: getUser()
    };
  },
  created() {},
  methods: {
    async handleSignIn(payload: MouseEvent) {
      const userData = await signIn()
      this.user = userData.user || null
    },
    handleSignOut(payload: MouseEvent) {
      signOut()
      this.user = null
    },
    openWalletView(payload: MouseEvent) {
      openWallet()
    },
    async sendSampleTransaction(payload: MouseEvent) {
      const actions = [window.nearApi.transactions.transfer(new BN(10000000))]
      const res = await sendTransaction({
        transactionActions: [
          {
            receiverId: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148',
            actions: actions,
          },
        ],
        network: 'testnet',
      })
      console.log("Transaction Result: ", res)
    }
  },
};

</script>

<template>
  <main>
    <button v-if="!user" @click="handleSignIn">Sign In</button>
    <div v-if="user">
      <h1>User Info:</h1>
      <p class="box">
        {{ JSON.stringify(user) }}
      </p>
      <button @click="openWalletView">View Wallet</button>
      <button @click="sendSampleTransaction">Send Sample Transaction</button>
      <button @click="handleSignOut">Sign out</button>
    </div>
  </main>
</template>

<style scoped>
.box {
  width: 80%;
  word-break: break-all;
  padding: 20px;
}
</style>

```

{% endtab %}

{% tab title="ReactJS" %}

```jsx
import { 
  init, 
  signIn,
  signOut,
  User,
  getUser,
  openWallet,
  sendToken,
  sendTransaction,
  AUTH_PROVIDER, 
  CHAIN, 
  THEME, 
  WALLET_PROVIDER, 
  SUPPORTED_NEAR_NETWORKS 
} from '@ramper/near'
import { BN } from 'bn.js'
import { transactions } from 'near-api-js'
import { useState } from 'react'

init({
  appName: 'Near Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ],
  walletProviders: [WALLET_PROVIDER.NEAR_WALLET],
  network: SUPPORTED_NEAR_NETWORKS.TESTNET,
  theme: THEME.DARK
})

function App() {
  const [user, setUser] = useState<User | null>(getUser())

  const handleSignIn = async () => {
    const signInResult = await signIn()
    setUser(signInResult.user ?? null)
  }

  const handleSendToken = async () => {
    try {
      const isSuccess = await sendToken({
        to: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148',
        value: '0.01',
        network: 'testnet',
      })
      console.log('sendToekn result: ', isSuccess)
    } catch (e) {
      console.error(e)
    }
  }

  const handleSendTransaction = async () => {
    try {
      const actions = [transactions.transfer(new BN(10000000))]
      await sendTransaction({
        transactionActions: [
          {
            receiverId: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148',
            actions: actions,
          },
        ],
        network: 'testnet',
      })
    } catch (ex) {
      console.error('Transaction failed')
    }
  }

  const handleSignOut = () => {
    signOut()
    setUser(null)
  }

  const handleOpenWalletView = () => {
    openWallet()
  }

  return (
    <div
      style={{
        padding: '20px 16px',
      }}
    >
      <div
        style={{
          display: 'flex',
          flexDirection: 'column',
        }}
      >
        <p>Ramper Near Example</p>
        <button onClick={handleSignIn}>Sign in</button>
        <br />
        <button onClick={handleSendToken}>Test sendToken</button>
        <br />
        <button onClick={handleSendTransaction}>Test sendTransaction</button>
        <br />
        <button onClick={handleOpenWalletView}>Open WalletView</button>
        <br />
        <button onClick={handleSignOut}>Sign out</button>
      </div>
    </div>
  )
}

export default App

```

{% endtab %}
{% endtabs %}


# Get Started on Terra

{% hint style="info" %}
**Good to know:** Currently, Ramper's Terra SDK only supports React. A stand-alone version is under consideration.
{% endhint %}

## Overview

Ramper's Terra SDK provides an easy wallet solution for developers to integrate into their DApps. Once integrated, your users will be able to log in with a popular OAuth solution and instantly interact with a Terra wallet.

Ramper  SDK also provides [WalletView](/embedded-wallet-sdk/quickstart/for-web-apps/version-1/in-app-wallet-view/walletview) component, which provides the DApp with various wallet-related functionalities such as fiat-on-ramp, transaction history and token transfers.

In addition, Ramper's Terra SDK provides native support to connect your DApp with TerraStation and WalletConnect (more wallet supports coming soon) as well.

See these functions in action at <https://example.ramper.xyz/>

## Install Ramper SDK

#### Setup Terra's wallet provider

Terra's Wallet-Provider SDK provides access to TerraStation and WalletConnect. Ramper's SDK interfaces with Terra's Wallet-Provider to support both native wallets.

Follow these steps before continuing: <https://github.com/terra-money/wallet-provider/tree/main/packages/src/@terra-money/wallet-provider>

#### Install SDK

```jsx
$ yarn add @ramper/terra
```

or

```jsx
$ npm i @ramper/terra
```

#### User signup & login

```jsx
import { signIn } from '@ramper/terra'
import { useWallet } from '@terra/wallet-provider'

const walletToUse = useWallet()
const signInResult = await signIn(walletToUse)
```

Calling `await signIn(walletToUse)` will launch the log in dialog and return a signInResult when the user successfully logs in or connects an account.

#### Get logged in user

```jsx
import { getUser } from '@ramper/terra'

const user = getUser()
```

#### Check balance

Once logged in, you can check the current coins and tokens balance:

```jsx
import { getUserTokens } from '@ramper/terra'

await getUserTokens('testnet')
```

#### Send token

The following code demonstrates how to send a token from a wallet belonging to the signed in user or a connected wallet.

```jsx
import { sendToken } from '@ramper/terra'

...

try {
  const toAddress = 'terra123aqd9edra72sehg84jk93wq44kfh05s2w02aq'
  const isSuccess = await sendToken({
    to: toAddress,
    symbol: 'Luna',
    value: '0.01', 
    network: 'mainnet'
  })
} catch (ex) {
  console.error('Transaction failed')
}
```

#### Send transaction

The following code demonstrates how to send a transaction from a wallet belonging to the signed in user or a connected wallet.

```jsx
import { sendFromWallet } from '@ramper/terra'
import { useWallet } from '@terra/wallet-provider'
import { useConnectedWallet } from '@terra/wallet-provider'

const { status } = useWallet()
const connectedWallet = useConnectedWallet()
try {
  await sendFromWallet(toAddress, 'UST', 200, 'testnet', status, connectedWallet)
} catch (e) {
  console.error('Transaction failed')
}
```

#### Post Terra.js message transactions

Similar to terra.js CreateAndSignTx method and wallet-provider's post method, Ramper Connect SDK exposes a method called postTransaction to send custom transactions.

```jsx
import { Coin, CreateTxOptions, Fee, MsgSwap } from '@terra-money/terra.js'
import { postTransaction } from '@ramper/terra'
import { useWallet } from '@terra/wallet-provider'
import { useConnectedWallet } from '@terra/wallet-provider'

const { status } = useWallet()
const connectedWallet = useConnectedWallet()

const user = await getUser()

try {
  const res: TxResult = await postTransaction({
    msgs: [new MsgSwap(user.wallets['terra'].publicKey, new Coin('uusd', 1000000), 'ukrw')],
    memo: 'Swapping USD for KRW',
  }, 'testnet', status, connectedWallet)
} catch (ex) {
  console.error('Transaction failed')
}
```

More information on constructing custom transactions can be found here: <https://terra-money.github.io/terra.js/>

#### Sign out

Users can log out or disconnect their wallet with:

```jsx
import { signOut } from '@ramper/terra'
import { useWallet } from '@terra/wallet-provider'

const walletToUse = useWallet()
await signOut(walletToUse)
```

Yup, it really is just that easy!

If there's any feature you would like to see or design patterns you would like for the Ramper team to adopt, come chat with us (see [Introduction](/#chat-with-us) for ways to reach us).


# SDK Specifications

These are the functions you would use in your dApp to interact with Ramper. Import each from @ramper/ethereum, @ramper/terra, or @ramper/near accordingly.


# Initialization

You can configure various aspects of Ramper UI by passing in a config to init() function. Make sure to first visit the Developer Dashboard to obtain your App ID and App Secret.

## Basic Examples

{% tabs %}
{% tab title="EVM" %}

```jsx
import { 
  init, 
  AUTH_PROVIDER, 
  CHAIN, 
  THEME, 
  WALLET_PROVIDER, 
  SUPPORTED_ETHEREUM_NETWORKS 
} from '@ramper/ethereum'

init({
  appId: '<YOUR_APP_ID>',
  appName: 'EVM Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ],
  walletProviders: [WALLET_PROVIDER.METAMASK],
  network: SUPPORTED_ETHEREUM_NETWORKS.MATICMUM,
  theme: THEME.DARK,
})
```

{% endtab %}

{% tab title="NEAR" %}

```jsx
import { 
  init, 
  AUTH_PROVIDER, 
  CHAIN, 
  THEME, 
  WALLET_PROVIDER,
  SUPPORTED_NEAR_NETWORKS 
} from '@ramper/near'

init({
  appName: 'Near Test App',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ]
  walletProviders: [WALLET_PROVIDER.NEAR_WALLET],
  network: SUPPORTED_NEAR_NETWORKS.TESTNET,
  theme: THEME.DARK,
})
```

{% endtab %}

{% tab title="Terra" %}

```jsx
import { init, AUTH_PROVIDER, CHAIN, 
  THEME, WALLET_PROVIDER } from '@ramper/terra'

init({
  appName: 'Terra Test App',
  chainName: CHAIN.TERRA,
  walletProviders: [WALLET_PROVIDER.TERRA_STATION, 
    WALLET_PROVIDER.WALLET_CONNECT],
  theme: THEME.LIGHT,
  network: 'mainnet',
  authProviders: [
    AUTH_PROVIDER.GOOGLE,
    AUTH_PROVIDER.FACEBOOK,
    AUTH_PROVIDER.TWITTER,
    AUTH_PROVIDER.APPLE,
    AUTH_PROVIDER.EMAIL
  ]
})
```

{% endtab %}
{% endtabs %}

## Basic Configuration

```jsx
   * App Name
   * @default ''
   */
  appName: string

  /**
   * Network to use for the app.
   * @default 'mainnet'
   */
  network: string

  /**
   * Token addresses to show default tokens on WalletView.
   * @default []
   */
  defaultTokenAddresses: string[]
  
  /**
   * App ID for viewing user data on developer dashboard.
   * @default 'missing_app_id'
   */
  appId: string

  /**
   * Whether the app should issue an dapp based idToken on login in.
   * Setting to false improves log in performance.
   * Setting to true requires a valid appId to be set.
   * @default false
   */
  issueIdToken: boolean

  /**
   * List of wallet tabs to show on WalletView.
   * @default "['coin', 'nft']"
   */
  walletTabs: WalletTab[]
```

## Auth methods displayed

```jsx
  /**
   * List of social sign in methods to use for sign in.
   * @default "['google', 'facebook', 'twitter', 'email']"
   */
  authProviders: AuthProviders
```

## Appearance

```jsx
  /**
   * Theme to use for the UI.
   * @default 'dark'
   */
  theme: Theme

  /**
   * Primary color to use for the UI.
   * @default '#00B5D8'
   */
  primaryColor: string

  /**
   * Logo to display on top of sign in popup.
   * @default 'https://static.ramper.xyz/logo.png'
   */
  logoURI: string

  /**
   * Language to use for the UI.
   * @default 'en'
   */
  language: Language

  /**
   * Currency to display in the UI.
   * @default 'usd'
   */
  currency: Currency
```


# Sign In/Out

{% tabs %}
{% tab title="EVM" %}
These are the functions you would use in your dApp to interact with Ramper. Import each from @ramper/ethereum

## Sign in

```jsx
const signIn: (clientAPIKey?: string) => Promise<SignInResult>
```

The sign in options such as which SSO providers to allow and which Web3 wallets to allow can be customized through the [`init`](/embedded-wallet-sdk/quickstart/for-web-apps/version-1/sdk-specifications/initialization) function. It is recommend to call this function when the user clicks the Sign In Button on your web app.\
\
The clientAPIKey is optional. You can obtain it from Ramper Developer Console (coming soon)

## Sign out

```jsx
const signOut: () => Promise<void>
```

## Response Types

```jsx
type SignInResult = {
  method: 'ramper' | 'wallet' | 'none'
  user?: User
  apiGatingToken?: string
}
```

The `method` value is `'ramper'` if the user logged in using SSO or email and a Ramper managed wallet is created for them. The `method` value is `'wallet'` if the user used a Web3 wallet such as Metamask to log in. Lastly, the method returns `'none'` if the user cancels the log in process.\
\
The `user` value contains information regarding the user that logged in. The `apiGatingToken` is generated based on the `clientAPIKey` if that value was provided on `signIn`. The `apiGatingToken` is an JWT idToken that can be decoded with the `clientAPIKey`. This key can be used to verify that the user has logged in properly.\
\
Example Response:

```jsx
{
   "method":"ramper",
   "user":{
      "signupSource":"google.com",
      "UID":"iskWbvugB0RVsTt70jC7WguEdM02",
      "wallets":{
         "ethereum":{
            "publicKey":"0x2C682335C7E82364790004B8f37F712A18e2b80A",
            "creationDate":1653006881447,
            "walletId":"ethereum_0x2C682335C7E82364790004B8f37F712A18e2b80A",
            "blockchain":"ethereum"
         }
      }
   }
}
```

\
Related Data Types:

```jsx
export type User = {
  wallets: Record<string, Wallet>
} & UserModel

export type UserModel = {
  UID: string
  signupSource: string
  notificationPreference?: string
  email?: string
  preferredCommunicationMethod?: string
  region?: string
}

export type WalletModel = {
  blockchain: string
  walletId: string
  publicKey: string
  creationDate: number // UTC Epoch
  provider?: string
}

export type Wallet = {
  getAddress: () => string
} & WalletModel
```

{% endtab %}

{% tab title="NEAR" %}
These are the functions you would use in your dApp to interact with Ramper. Import each from @ramper/near

## Sign in

```jsx
const signIn: (clientAPIKey?: string) => Promise<SignInResult>
```

The sign in options such as which SSO providers to allow and which Web3 wallets to allow can be customized through the `init` function. It is recommend to call this function when the user clicks the Sign In Button on your web app.\
\
The clientAPIKey is optional. You can obtain it from Ramper Developer Console (coming soon)

## Sign out

```jsx
const signOut: () => Promise<void>
```

## Response Types

```jsx
type SignInResult = {
  method: 'ramper' | 'wallet' | 'cancel' | 'none'
  user?: User
  apiGatingToken?: string
}
```

The `method` value is `'ramper'` if the user logged in using SSO or email and a Ramper managed wallet is created for them. The `method` value is `'wallet'` if the user used a Web3 wallet such as Near Wallet to log in. Lastly, the method returns `'none'` if the user cancels the log in process.\
\
The `user` value contains information regarding the user that logged in. The `apiGatingToken` is generated based on the `clientAPIKey` if that value was provided on `signIn`. The `apiGatingToken` is an JWT idToken that can be decoded with the `clientAPIKey`. This key can be used to verify that the user has logged in properly.\
\
Example Response:

```jsx
{
   "method":"ramper",
   "user":{
      "signupSource":"google.com",
      "UID":"rWoyYQQkzjNZHx8uHKQHuORZ5tD3",
      "wallets":{
         "near":{
            "walletId":"near_51dbd6e5de6a6a89c1054ab5f2dc2adfb47b47b0c1bb766f3346ef42525853ae",
            "creationDate":1654623899156,
            "blockchain":"near",
            "publicKey":"51dbd6e5de6a6a89c1054ab5f2dc2adfb47b47b0c1bb766f3346ef42525853ae"
         }
      }
   },
   "apiGatingToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtZXRob2QiOiJyYW1wZXIiLCJVSUQiOiJyV295WVFRa3pqTlpIeDh1SEtRSHVPUlo1dEQzIn0.mSTvGaTKjDtXrVlHjVsJSNdlnEfIFM_6v0mZOJfi-MQ"
}
```

\
Related Data Types:

```jsx
export type User = {
  wallets: Record<string, Wallet>
} & UserModel

export type UserModel = {
  UID: string
  signupSource: string
  notificationPreference?: string
  email?: string
  preferredCommunicationMethod?: string
  region?: string
}

export type WalletModel = {
  blockchain: string
  walletId: string
  publicKey: string
  creationDate: number // UTC Epoch
  provider?: string
}

export type Wallet = {
  getAddress: () => string
} & WalletModel
```

{% endtab %}

{% tab title="Terra" %}
These are the functions you would use in your dApp to interact with Ramper. Import each from @ramper/terra

## Sign in

```jsx
const signIn: (walletToUse?: Wallet, clientAPIKey?: string) => Promise<SignInResult>
```

The sign in options such as which SSO providers to allow and which Web3 wallets to allow can be customized through the `init` function. It is recommend to call this function when the user clicks the Sign In Button on your web app.\
\
The `walletToUse` is the terra wallet provider wallet. The `walletToUse` is required to support Terra Station and WalletConnect. You can obtain the walletToUse with the following code:<br>

```jsx
import { useWallet } from '@terra/wallet-provider'

...

const walletToUse = useWallet()
```

The clientAPIKey is optional. You can obtain it from Ramper Developer Console (coming soon)

## Sign out

```jsx
const signOut: (walletToUse?: Wallet) => Promise<void>
```

## Response Types

```jsx
type SignInResult = {
  method: 'ramper' | 'wallet' | 'none'
  user?: User
  apiGatingToken?: string
}
```

The `method` value is `'ramper'` if the user logged in using SSO or email and a Ramper managed wallet is created for them. The `method` value is `'wallet'` if the user used a Web3 wallet such as Terra Station to log in. Lastly, the method returns `'none'` if the user cancels the log in process.\
\
The `user` value contains information regarding the user that logged in. The `apiGatingToken` is generated based on the `clientAPIKey` if that value was provided on `signIn`. The `apiGatingToken` is an JWT idToken that can be decoded with the `clientAPIKey`. This key can be used to verify that the user has logged in properly.\
\
Example Response:

```jsx
{
   "method":"ramper",
   "user":{
      "signupSource":"google.com",
      "UID":"rWoyYQQkzjNZHx8uHKQHuORZ5tD3",
      "wallets":{
         "terra":{
            "walletId":"terra_terra1yfnuustlzlppr3nhprzqmmadmvx0scx70aj5tk",
            "publicKey":"terra1yfnuustlzlppr3nhprzqmmadmvx0scx70aj5tk",
            "creationDate":1646185360467,
            "blockchain":"terra"
         }
      }
   }
}
```

\
Related Data Types:

```jsx
export type User = {
  wallets: Record<string, Wallet>
} & UserModel

export type UserModel = {
  UID: string
  signupSource: string
  notificationPreference?: string
  email?: string
  preferredCommunicationMethod?: string
  region?: string
}

export type WalletModel = {
  blockchain: string
  walletId: string
  publicKey: string
  creationDate: number // UTC Epoch
  provider?: string
}

export type Wallet = {
  getAddress: () => string
} & WalletModel
```

{% endtab %}
{% endtabs %}


# Transactions

{% tabs %}
{% tab title="EVM" %}

## Send Token

Currently, Ramper SDK supports `sendToken` which is a simple way to send a token to another address from the current logged in wallet.

```jsx
const sendToken = async (params: Partial<{
  from: string
  to: string
  value: string
  decimal: number
  symbol: string
  network: string
  theme: string
}>) => Promise<boolean>
```

Example Usage:

```jsx
import { sendToken } from '@ramper/ethereum'

await sendToken({
  to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
  value: '0.00001',
  network: 'mainnet'
})
```

## RamperSigner

Ramper SDK allows you to request a signed transaction from the user for subsequent broadcasting to the network. Ramper SDK is built around [Ether.js](https://docs.ethers.io/v5/) and [Alchemy](https://docs.ethers.io/v5/api/providers/api-providers/) but if you'd like to see Ramper SDK support other use cases, let us know on [Discord](https://ramper.link/discord), or email us at <team@ramper.xyz>.\
\
In order to broadcast a transaction, you must first set up an Alchemy Provider.

```jsx
import { ethers } from 'ethers'

const alchemy = new ethers.providers.AlchemyProvider(80001, 'pEWvHrkSkkyWGZmezdGMk_LjYu8DAx1k')
```

\
After the user is logged in through Ramper SDK, you can set up a `RamperSigner` object with the alchemy provider that will eventually collect the user's authorization to sign the requested transaction.<br>

```jsx
import { getRamperSigner } from '@ramper/ethereum'

// User must be logged in
const ramperSigner = await getRamperSigner(alchemy)
```

### Sign Transaction

```typescript
import { TransactionRequest } from '@ethersproject/abstract-provider'

ramperSigner.signTransaction(
    transaction: Deferrable<TransactionRequest>
): Promise<string>
```

Example usage:

```jsx
import { getRamperSigner } from '@ramper/ethereum'
import { ethers } from 'ethers'

const alchemy = new ethers.providers.AlchemyProvider(80001, 'pEWvHrkSkkyWGZmezdGMk_LjYu8DAx1k')
const ramperSigner = await getRamperSigner(alchemy)

const value = ethers.utils.parseEther('0.0000001')
const nonce = await alchemy.getTransactionCount('your-wallet-address')
const gasLimit = await alchemy.estimateGas({
  to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
  value: value,
})
const feeData = await alchemy.getFeeData()

try {
    const result = await ramperSigner.signTransaction({
        type: 2,
        from: 'your-wallet-address',
        to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
        value: value,
        chainId: 80001,
        nonce: nonce,
        gasLimit: gasLimit,
        maxFeePerGas: feeData.maxFeePerGas,
        maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,
    })
    console.log('signTransaction result', result)
} catch (e) {
  console.log(e)
}
```

### Send Transaction

```typescript
import { 
    TransactionRequest, 
    TransactionResponse 
} from '@ethersproject/abstract-provider'

ramperSigner.sendTransaction(
    transaction: Deferrable<TransactionRequest>
): Promise<TransactionResponse>
```

Example usage:

```jsx
import { getRamperSigner } from '@ramper/ethereum'
import { ethers } from 'ethers'

const alchemy = new ethers.providers.AlchemyProvider(80001, 'pEWvHrkSkkyWGZmezdGMk_LjYu8DAx1k')
const ramperSigner = await getRamperSigner(alchemy)

const value = ethers.utils.parseEther('0.0000001')
const nonce = await alchemy.getTransactionCount('your-wallet-address')
const gasLimit = await alchemy.estimateGas({
  to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
  value: value,
})
const feeData = await alchemy.getFeeData()

try {
  await ramperSigner.sendTransaction({
    type: 2,
    from: 'your-wallet-address',
    to: '0xa419dfa199Df8651c3f4476546AF5E4CC4E0F73F',
    value: value,
    chainId: 80001,
    nonce: nonce,
    gasLimit: gasLimit,
    maxFeePerGas: feeData.maxFeePerGas,
    maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,
  })
  console.log('sendTransaction result', result)
} catch (e) {
  console.log(e)
}
```

### Sign Message

```typescript
ramperSigner.signMessage(
    message: Bytes | string
): Promise<string>
```

Example usage:

```jsx
import { getRamperSigner } from '@ramper/ethereum'
import { ethers } from 'ethers'

const alchemy = new ethers.providers.AlchemyProvider(80001, 'pEWvHrkSkkyWGZmezdGMk_LjYu8DAx1k')
const ramperSigner = await getRamperSigner(alchemy)

try {
  const message = 'Ramper sign message test'
  const result = await ramperSigner.signMessage(message)
  
  console.log('signMessage result: ', result)
} catch (e) {
  console.log(e)
}
```

### Sign TypedData

```typescript
import { TypedDataField } from '@ethersproject/abstract-signer'

ramperSigner._signTypedData(
    domain: TypedDataDomain,
    types: Record<string, Array<TypedDataField>>,
    value: Record<string, any>,
  ): Promise<string>
```

Example usage:

```typescript
import { getRamperSigner } from '@ramper/ethereum'
import { ethers } from 'ethers'
import { eip712 } from './eip712

const alchemy = new ethers.providers.AlchemyProvider(80001, 'pEWvHrkSkkyWGZmezdGMk_LjYu8DAx1k')
const ramperSigner = await getRamperSigner(alchemy)

try {
  const message = 'Ramper signTypedData test'
  const result = await ramperSigner.signTypedData(
    eip712.example.domain, 
    eip712.example.types, 
    eip712.example.value
  )
  
  console.log('signTypedData result: ', result)
} catch (e) {
  console.log(e)
}
```

eip712.ts

```typescript
const example = {
  domain: {
    name: 'Ether Mail',
    version: '1',
    chainId: 1,
    verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
  },

  // The named list of all type definitions
  types: {
    Person: [
      { name: 'name', type: 'string' },
      { name: 'wallet', type: 'address' },
    ],
    Mail: [
      { name: 'from', type: 'Person' },
      { name: 'to', type: 'Person' },
      { name: 'contents', type: 'string' },
    ],
  },

  // The data to sign
  value: {
    from: {
      name: 'Cow',
      wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
    },
    to: {
      name: 'Bob',
      wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
    },
    contents: 'Hello, Bob!',
  },
}

export const eip712 = {
  example,
}
```

{% endtab %}

{% tab title="NEAR" %}

## Send Token

Currently, Ramper Connect SDK supports `sendToken` which is a simple way to send a token to another address from the current logged in wallet.

```jsx
const sendToken = async (params: Partial<{
  from: string
  to: string
  value: string
  decimal: number
  symbol: string
  network: string
  theme: string
}>) => Promise<boolean>
```

Example Usage:

```jsx
import { sendToken } from '@ramper/near'

await sendToken({
  to: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148',
  value: '0.01', 
  network: 'testnet'
})
```

## Custom Transactions

Ramper Connect SDK supports custom Near transactions by supporting interactions with `near-api-js`. You can find an overview of near-api-js [here](https://docs.near.org/docs/api/javascript-library) and their TypeDocs [here](https://near.github.io/near-api-js/).

```jsx
import { sendTransaction } from '@ramper/near'
import { transactions } from 'near-api-js'
import { BN } from 'bn.js'

try {
  const actions = [transactions.transfer(new BN(10000000))]
  await sendTransaction({
    transactionActions: [{
      receiverId: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148'
      actions: actions
    }],
    network: 'testnet',
  })
} catch (ex) {
  console.error('Transaction failed')
}
```

You can find a list of supported actions [here](https://nomicon.io/RuntimeSpec/Actions).

The result type is below. You can see more details about the FinalExecutionOutcome [here](https://github.com/near/near-api-js/blob/7f16b10ece3c900aebcedf6ebc660cc9e604a242/packages/near-api-js/src/providers/provider.ts#L84).

```typescript
type SendTransactionResult = {
  type: 'success' | 'failure' | 'cancel' | 'none'
  txHashes: string[]
  result?: (FinalExecutionOutcome | Error)[] | Error
}
```

Note. If you sign in with NEAR Wallet, you can get **transaction hashes only.**

## Sign Transaction

You can sign a transaction with `signTransaction` from the current logged in wallet. It is same as `signer.signMessage` of `near-api-js`. Look at the code [here](https://github.com/near/near-api-js/blob/master/src/signer.ts#L90).

```typescript
const signTransaction = async (params: {
  transaction: Transaction
  network?: NearNetwork
}) => Promise<{
  type: 'success' | 'failure' | 'cancel' | 'none',
  result?: string | Error
}>
```

```typescript
import { transactions } from 'near-api-js'

type Transaction = {
  receiverId: string
  actions: transactions.Action[]
}
```

Example Usage:

```typescript
import { signTransaction } from '@ramper/near'

try {
  const result = await signTransaction({
    transaction: {
      receiverId: '421ccd52db3465153de4591177396dc72e401b0ab1687b8c175491be32fbd148',
      actions: [transactions.transfer(new BN(10000000))],
    },
  })
  console.log('signTransaction result', result)
} catch (e) {
  console.error(e)
}
```

## Sign Message

You can sign a message with `signMessage` from the current logged in wallet. It is same as `signer.signMessage` of `near-api-js`. Look at the code [here](https://github.com/near/near-api-js/blob/master/src/signer.ts#L90).

```typescript
const signMessage = async (params: {
  message: Uint8Array
  network?: NearNetwork
}) => Promise<{
  type: TransactionResultType
  result?: Signature | Error
}>
```

Example Usage:

```typescript
import { signMessage } from '@ramper/near'

const message = [12, 13, 14, 15]
const messageBuffer = new Uint8Array(message)

try {
  const result = await signMessage({
    message: messageBuffer,
  })
  console.log('signMessage result', result)
} catch (e) {
  console.log(e)
}
```

{% endtab %}

{% tab title="Terra" %}

## Send Token

Currently, Ramper Connect SDK supports `sendToken` which is a simple way to send a token to another address from the current logged in wallet.

```jsx
const sendToken: async (params: Partial<{
  from: string
  to: string
  value: string
  decimal: number
  symbol: string
  network: string
  theme: string
  status: WalletStatus
  connectedWallet: ConnectedWallet
}>) => Promise<boolean>
```

`status` and `connectedWallet` are used in case you want to support with Terra Station and Wallet Connect.

```jsx
import {
  useConnectedWallet,
  useWallet
} from '@terra-money/wallet-provider'

...

const walletToUse = useWallet()
const { status } = walletToUse
const connectedWallet = useConnectedWallet()
```

#### Example Usage:

```jsx
import {
  useConnectedWallet,
  useWallet
} from '@terra-money/wallet-provider'
import { sendToken } from '@ramper/terra'

const walletToUse = useWallet()
const { status } = walletToUse
const connectedWallet = useConnectedWallet()
const toAddress = 'terra123aqd9edra72sehg84jk93wq44kfh05s2w02aq'

const isSuccess = await sendToken({
    to: toAddress,
    symbol: 'Luna',
    value: '0.01', 
    network: 'mainnet'
 })
```

## Custom Transactions

Ramper Connect SDK supports all the custom transaction all the custom transactions that Terra Station supports with the `post` method. Provide the same `txOption` that is commonly used in Terra.js `createAndSignTx` method - more details can be found here: <https://terra-money.github.io/terra.js/>.&#x20;

```jsx
const postTransaction: (
  txOptions: CreateTxOptions,
  ramperNetwork: 'testnet' | 'mainnet',
  status?: WalletStatus,
  connectedWallet?: ConnectedWallet,
) => Promise<TxResult>
```

{% endtab %}
{% endtabs %}

## Error Handling

Use a try/catch block to detect if the user canceled the transaction or the transaction failed to be broadcasted successfully.


# Session Management

## Token Retrieval

If you need to manage your user's sessions, Ramper SDK exposes an idToken and a refreshToken. These tokens will be returned in a `ramperCredential` property if `issueIdToken` is set to `true` in the `init` function.

## Token Verification

The idToken is a JWT can be verified with your App Secret obtained through the developer console. (use "import \* as jwt from 'jsonwebtoken'")

![](/files/SuD4YelrQJWJe0p8YIl6)

Retrieving a new refreshToken if the existing refreshToken is still valid:

```
POST https://us-central1-ramper-prod.cloudfunctions.net/getRefreshedToken

Post Params (JSON):
{
  "refreshToken": "<USER_REFRESH_TOKEN>"
}
```


# Vanilla JS SDK

Beta Preview

Our vanilla Javascript SDK is very similar to our ReactJS SDK. Instead of doing an `npm i` , you can integrate our SDK by importing from our CDN. Afterwards, you just need to interact with the `window.ramper` global object to gain access to most of the exported methods.\
\
Currently our vanilla JS SDK is in **beta preview** mode. There are a few minor bugs and refinements needed to reach full parity with our ReactJS SDK so please check back next week for updates. For any SDK design feedback, please contact the Ramper team.

{% tabs %}
{% tab title="EVM" %}

```html
<html>
<head>
  <script src="https://js.ramper.xyz/v1/ethereum"></script>
  <script src="https://cdn.ethers.io/lib/ethers-5.6.umd.min.js"
  type="application/javascript"></script>
</head>
<body>
  <script>
    window.onload = () => {
      window.ramper.init({
        appName: "Ethereum Test App",
        chainName: "ethereum",
        defaultTokenAddresses: [],
        theme: "dark",
        network: "maticmum",
        authProviders: ["twitter", "google", "facebook", "apple", "email"],
      })
    }
    
    async function signIn() {
      if (window.ramper.getUser()) {
        alert("Error: You are already signed in.")
        return
      }
      const userData = await window.ramper.signIn()
      console.log(userData)
    }

    function openWallet() {
      if (!window.ramper.getUser()){
        alert("Error: You are signed out.")
        return
      }
      window.ramper.openWallet()
    }

    async function sendTransaction() {
      console.log("Send Transaction using ether.js is in the process of being fully migrated to our Vanilla JS SDK. Please check back in 1-2 days.")

      if (!window.ramper.getUser()){
        alert("Error: You are signed out.")
        return
      }
      const wallet = window.ramper.getUser().wallets["ethereum"]

      const alchemy = new ethers.providers.AlchemyProvider(80001, 'pEWvHrkSkkyWGZmezdGMk_LjYu8DAx1k')
      const ramperSigner = await window.ramper.getRamperSigner(alchemy)
      try {
        if (!ramperSigner || !wallet) {
          throw new Error('No wallet')
        }

        const fromAddress = wallet.publicKey
        const toAddress = '0x1A2060a7469A5Df387e73dE3a9268763F4bE793d'
        const value = '0.00001'

        const tx = {
          type: 2,
          from: fromAddress,
          to: toAddress,
          value: ethers.utils.parseEther(value),
          chainId: 80001,
          nonce: alchemy.getTransactionCount(fromAddress),
          gasLimit: alchemy.estimateGas({
            to: toAddress,
            value: ethers.utils.parseEther(value),
          }),
          maxFeePerGas: alchemy.getFeeData().then((x) => x.maxFeePerGas),
          maxPriorityFeePerGas: alchemy.getFeeData().then((x) => x.maxPriorityFeePerGas),
        }
        console.log(tx)
        const signedTx = await ramperSigner.signTransaction(tx)
        const txResult = await alchemy.sendTransaction(signedTx)

        console.log('RESULTS ' + txResult.hash)
      } catch (ex) {
        console.log(ex)
      }
    }

    function signOut() {
      if (!window.ramper.getUser()){
        alert("Error: You are already signed out.")
        return
      }
      window.ramper.signOut()
    }
  </script>
  <button onclick="signIn()">Sign In</button>
  <button onclick="openWallet()">View Wallet</button>
  <button onclick="sendTransaction()">Send Transaction (Not Fully Ported)</button>
  <button onclick="signOut()">Sign Out</button>
</body>
</html>
```

{% endtab %}

{% tab title="Near" %}

```html
<!DOCTYPE html>
<html>
<head>
  <script src="https://js.ramper.xyz/v1/near"></script>
  <!-- Recommended you use `npm i --save near-api-js` instead -->
  <script src="https://cdn.jsdelivr.net/npm/near-api-js@0.41.0/dist/near-api-js.min.js"></script>
  <!-- Recommended you use `npm i --save bn.js` instead -->
  <script type="text/javascript" src="https://testdapp.ramper.xyz/bn.js"></script>
</head>
<body>
  <script>
    window.ramper.init({
      appName: "Near Test App",
      chainName: "near",
      defaultTokenAddresses: [],
      theme: "dark",
      network: "testnet",
      authProviders: ["twitter", "google", "facebook", "apple", "email"],
    });
    
    async function signIn() {
      if (window.ramper.getUser()) {
        alert("Error: You are already signed in.")
        return
      }
      const userData = await window.ramper.signIn()
      console.log(JSON.stringify(userData))
    }

    function openWallet() {
      if (!window.ramper.getUser()){
        alert("Error: You are signed out.")
        return
      }
      window.ramper.openWallet()
    }

    const experimental = true;

    async function sendTransaction() {
      const actions = [nearApi.transactions.transfer(new BN(10000000))]
      window.ramper.sendTransaction({
        toAddress: "02c49b4d1ce076c30c94bba082ec78e493915a6f84537b5fe7cb90ed56722d09",
        actions
      })
    }

    function signOut() {
      if (!window.ramper.getUser()){
        alert("Error: You are already signed out.")
        return
      }
      window.ramper.signOut()
    }
  </script>
  <button onclick="signIn()">Sign In</button>
  <button onclick="openWallet()">View Wallet</button>
  <button onclick="sendTransaction()">Send Transaction</button>
  <button onclick="signOut()">Sign Out</button>
</body>
</html>
```

{% endtab %}
{% endtabs %}


# In-App Wallet View

## Overview

Once a user has logged into your DApp through Ramper Connect SDK, a Ramper wallet gets created for the user.

You can display this wallet inside your DApp through our [WalletView](/embedded-wallet-sdk/quickstart/for-web-apps/version-1/in-app-wallet-view/walletview) feature. This gives your users the ability to manage their tokens, view transaction history, export private key, buy crypto, etc. seamlessly inside your DApp.

![](/files/etpggyj8O6bJ6AQyrjBx)

Separately - your users can manage their wallet anytime by visiting wallet.ramper.xyz


# WalletView

Ramper SDK provides "WalletView", a wallet interface that displays inside your DApp.

## Overview

The WalletView function renders a wallet interface for users that allows the user to do the following:

* View all their tokens
* Send tokens
* Deposit tokens
* Buy tokens through our integrated fiat-on-ramp
* View their transaction history
* Export their private wallet key.
* Change their language.
* Change their network
* Change their UI theme.

Once the user logs in, we recommend you replace the login button with a new button that shows their wallet address and triggers the `openWallet()` function when clicked.  &#x20;

See these functions in action at <https://example.ramper.xyz/>\
\
**Screenshots**

<div align="left"><img src="/files/dOowiksi3QM3TRtaowho" alt="Token View"> <img src="/files/3N4QJQ5H91lVU2xZTvR6" alt="Settings"> <img src="/files/3BkdZchxdSxeofo5QJQC" alt="Sign Transactions"></div>

## Include in your DApp

It's extremely simple to include WalletView in your DApp if you're already using Ramper SDK!

{% tabs %}
{% tab title="EVM" %}

```jsx
import { openWallet } from '@ramper/ethereum'

<button onClick={openWallet}>My Wallet</button>
```

{% endtab %}

{% tab title="Terra" %}

```jsx
import { openWallet } from '@ramper/terra'

...    

<Button onClick={openWallet}>My Wallet</Button>
```

{% endtab %}

{% tab title="NEAR" %}

```jsx
import { openWallet } from '@ramper/near'

...    

<Button onClick={openWallet}>My Wallet</Button>
```

{% endtab %}
{% endtabs %}

## More Screenshots

**Transactions View:**

<div align="left"><img src="/files/v1l0ifJsi6O7Cgxoo8td" alt=""></div>

**Fiat on-ramp:**

![](/files/y8wk2e28XNZkm9V3Z7q1)<br>


# Fiat Onramp

[WalletView](/embedded-wallet-sdk/quickstart/for-web-apps/version-1/in-app-wallet-view/walletview) renders a wallet interface for users with many functionalities. It includes a "Buy" button that takes users through an in-app fiat onboarding flow.

!["Buy" button](/files/cgtnlTSS4l98RLx3npXX) ![MoonPay fiat onramp](/files/y8wk2e28XNZkm9V3Z7q1)


# Standalone Wallet

## Overview

Your users can visit [wallet.ramper.xyz](https://wallet.ramper.xyz) to manage their wallet outside of your DApp. On our Wallet App, your users will be able to:

* View all their tokens
* Send tokens
* Deposit tokens
* Buy tokens through our integrated fiat-on-ramp
* View their transaction history
* Export their private wallet key.
* View their NFTs
* Send their NFTs to other wallets
* Change their language.
* Change their network
* Change their UI theme.
* Connect with other DApps like OpenSea.io through WalletConnect.

![](/files/sDQdisdMs4EO3m8DD9Lq)

## Wallet Connect (Coming Soon)

In order to connect your wallet with another DApp through WalletConnect, first click on the WalletConnect button:

![](/files/4FCHjWF0bF8Mtpyfi608)![](/files/31ue02qNV15T4eRoDIQQ)

Once connected, make sure to keep this tab open. You will be able to approve and reject incoming requests to your wallet through this page:

![](/files/WvNKEXXU5KDKDFOuqXiR)

To disconnect from WalletConnect, simply click on the "Connected" button and then the "disconnect" button on the next page.

![](/files/7AWl1yjbMr1I6JZfO90S)![](/files/xVsv33AEx1hZO7BTuw3O)


# CONNECT MOBILE SDK

Currently React Native is only available on EVM

{% hint style="info" %}
**Good to know:** Currently, Ramper's mobile SDK only supports React Native.
{% endhint %}


# Get Started on Mobile

Ramper's React Native SDK helps developers provide easy access to the Blockchain for non-native crypto users through their SSO accounts.

{% hint style="info" %}

## Installation

{% endhint %}

Our `@ramper/react-native-core` library handles authentication for our users through a supported SSO account. Once the user logs in, an ethereum wallet will be created for the user. If you are new to react native, we recommend you set up your environment properly first by visiting <https://reactnative.dev/docs/environment-setup>. &#x20;

#### npm

```jsx
$ npm install @ramper/react-native-core
```

#### yarn

```jsx
$ yarn add @ramper/react-native-core
```

### Install peer dependencies&#x20;

```jsx
yarn add query-string react-native-keychain react-native-inappbrowser-reborn @react-native-community/clipboard @react-navigation/bottom-tabs @react-navigation/native @react-navigation/stack accordion-collapse-react-native date-fns react-native-raw-bottom-sheet react-query react-native-gesture-handler react-native-safe-area-context react-native-screens
```

**Note:** Follow the further installation steps of [react-native-inappbrowser-reborn](https://github.com/proyecto26/react-native-inappbrowser#mostly-automatic-installation) & [react-navigation](https://reactnavigation.org/docs/getting-started/)

## Step 1

```jsx
$ cd ios && pod install
```

## Step 2

Secondly, our SDK uses deep links to communicate back with your application. In order to Configure Deep Links, you will need to get an app id by signing up at <https://developer.ramper.xyz> and apply the following steps:

#### iOS

Add the below code in your AppDelegate.m file

```jsx
// Add the header at the top of the file:
#import <React/RCTLinkingManager.h>

// Add this above `@end`:
- (BOOL)application:(UIApplication *)application
   openURL:(NSURL *)url
   options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  return [RCTLinkingManager application:application openURL:url options:options];
}
```

Copy your bundle id as shown in the below screenshot:

![Alt text](https://i.ibb.co/bRPzW40/deep-link-ios-1.jpg)

Paste your bundle id in the identifier section and add ramper\<appId> in the URI Scheme section: Make sure to not include the brackets <> in the URLScheme

![Alt text](https://i.ibb.co/0Z5tgwr/deep-link-ios-2.jpg)

#### Android

Add the following in your project/adnroid/app/src/main/AndroidManifest.xml file under **Activity** Tag

```jsx
      <intent-filter>
      <!--  Make sure to not include the brackets <> in the scheme -->
        <data android:scheme="ramper<appId>" />
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
      </intent-filter>
```

## Run your app

#### iOS

```jsx
$ npx react-native run-ios
```

#### Android

```jsx
$ npx react-native run-android
```

## Usage

In your starting file import Ramper as below

```jsx
import { Ramper } from '@ramper/react-native-core';
```

call configure passing your **appId (required)**, **locale (default: en)**, **chainName (required)** and **authUrl (optional)**

```jsx
Ramper.configure({
  appId: 'appId',
  locale: 'kr' | 'en',
  chainName: 'ethereum',
});
```

## Authentication

#### Show Sign In Screen

We have a pre-built screen that you can use to display all the sign in options for the customer:

![](/files/Ul3VlvAVn0aKVCPHvAaE)

```jsx
import { RamperScreen } from '@ramper/react-native-core';
```

```jsx
<RamperScreen
  providers={[
    {
      name: 'google' | 'facebook' | 'twitter' | 'apple'
    },
  ]}
  theme="light | dark"
  onSuccess={(user) => {
    //handle user
  }}
  onFailure={(error) => {
    // handle error
  }}
  onClose={() => {}}
  logo={require('mylogo') | { uri: 'mylogourl' }}
  browserProps // optional
/>
```

Check supported browser props for [iOS](https://github.com/proyecto26/react-native-inappbrowser/#ios-options) and [Android](https://github.com/proyecto26/react-native-inappbrowser/#android-options)

#### Signing In Directly

If you want to create a custom Sign In page and only allow the user to sign in with a specific provider, you can invoke the `signin` method directly instead.

```jsx
import { Auth } from '@ramper/react-native-core';
```

`Auth.signin` accepts three parameters:

**Provider: (google | facebook | twitter | apple)**\
**browserProps (optional): check supported browser props for** [**iOS**](https://github.com/proyecto26/react-native-inappbrowser/#ios-options) **and** [**Android**](https://github.com/proyecto26/react-native-inappbrowser/#android-options)

```jsx
try {
  const user = await Auth.signin(
    'google' | 'facebook' | 'twitter' | 'apple',
    browserProps, //optional
  );
  // handle response
} catch (error) {
  // handle error
}
```

#### Get User

After a user logs in or on app relaunch, you can call the getUser method to get the currently logged-in user's information.

```jsx
try {
  const user = await Auth.getUser();
  // handle user
} catch (error) {
  // handle error
}
```

### Wallet View

We also provide a Wallet View that allows your user to see their Ethereum wallet balance and conduct common actions.

### Step 1

```shell
$ yarn add @ramper/react-native-evm
```

### Step 2

```jsx
import { WalletView } from '@ramper/react-native-core';
import { EthDataProvider } from '@ramper/react-native-evm';
```

### Step 3

**Use the wallet view component like this**

```jsx
<WalletView
  dataProviders={[{ name: 'ethereum', dataProvider: EthDataProvider }]}
  onCLose={() => {}} // this method will be called when the user clicks on the close button of wallet view
/>
```

**Note:** before using this component please make sure that the user is logged in by calling `getUser` method mentioned above.

#### Transactions

Please refer to [React Native EVM](/embedded-wallet-sdk/quickstart/for-web-apps/version-1/connect-mobile-sdk/react-native-evm#transactions) for transaction instructions

#### Sign out

```jsx
import { Auth } from '@ramper/react-native-core';

try {
  const signout = await Auth.signOut(
    browserProps //optional
  );
  // handle signout
} catch (error) {
  // handle error
}
```


# React Native EVM

The `@ramper/react-native-evm` package works in conjunction with the `@ramper/react-native-core` package. This package works with `ethers.js` and is responsible for handling all EVM-related peculiarities in order to interact with an Ethereum-based wallet.

#### npm

```shell
$ npm install @ramper/react-native-evm react-native-get-random-values
```

#### yarn

```shell
$ yarn add @ramper/react-native-evm react-native-get-random-values
```

### Step 1

```shell
$ cd ios && pod install
```

### Step 2

You will need to register react-native-get-random-values and @ethersproject/shims in the entry file of your application, such as index.js:

```jsx
// Import the crypto getRandomValues shim (**BEFORE** the shims)
import 'react-native-get-random-values';

// Import the ethers shims (**BEFORE** ethers)
import '@ethersproject/shims';
```

## Usage

```jsx
import { ethers } from 'ethers';
import { EtherTx } from '@ramper/react-native-evm';
```

### Transactions

```typescript
import { Transactions } from '@ramper/react-native-core';
```

Before you can do transactions you need to create an ethers provider

```typescript
const provider = ethers.getDefaultProvider(
  `https://polygon-mumbai.g.alchemy.com/v2/${yourApiKey}`
);
```

#### Sign Transaction

```typescript
const value = ethers.utils.parseEther('0.0000001');
try {
  const transaction = await Transactions.signTransaction({
    serializedTx: await EtherTx.serializeTransactionRequest(
      {
        from: 'fromAddress',
        to: 'toAddress',
        value,
      },
      provider
    ),
    network: SUPPORTED_ETHEREUM_NETWORKS.MATICMUM,
    theme: 'light',
  });
  const deserializedTransaction = EtherTx.deserializeTransaction(transaction);=
  
  // broadcast the Signed Transaction to the network:
  const transaction = await provider.sendTransaction(
    deserializedTransaction.transaction
  );
} catch (error) {
  // handle error
}
```

#### Sign Typed Data

```typescript
try {
  const signTypedDataResponse = await Transactions.signTypedData({
    serializedTx: await EtherTx.serializeSignTypedDataRequest(
      {
        name: 'Ether Mail',
        version: '1',
        chainId: 1,
        verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
      },
      {
        Person: [
          { name: 'name', type: 'string' },
          { name: 'wallet', type: 'address' },
        ],
        Mail: [
          { name: 'from', type: 'Person' },
          { name: 'to', type: 'Person' },
          { name: 'contents', type: 'string' },
        ],
      },
      {
        from: {
          name: 'Cow',
          wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
        },
        to: {
          name: 'Bob',
          wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
        },
        contents: 'Hello, Bob!',
      }
    ),
    network: SUPPORTED_ETHEREUM_NETWORKS.MATICMUM,
  });
  const deserializedTypedData = EtherTx.deserializeTransaction(signResponse);
  // handle response
} catch (error) {
  // handle error
}
```

#### Sign Message

```typescript
try {
  const signMessageResponse = await Transactions.signMessage({
    serializedTx: EtherTx.serializeMessage({
      message: 'Hello World',
      method: 'eth_sign',
    }),
    network: SUPPORTED_ETHEREUM_NETWORKS.MATICMUM,
    theme: 'light',
  });
  const deserializedRespone =
    EtherTx.deserializeTransaction(signMessageResponse);
  // handle response
} catch (error) {
  // handle error
}
```

#### Personal Sign

```typescript
try {
  const signPersonalMessageResponse = await Transactions.signMessage({
    serializedTx: EtherTx.serializeMessage({
      message: 'My email is john@doe.com - Thu, 22 Sep 2022 22:45:02 GMT',
      method: 'personal_sign',
    }),
    network: SUPPORTED_ETHEREUM_NETWORKS.MATICMUM,
    theme: 'light',
  });
  const deserializedResponse = EtherTx.deserializeTransaction(
    signPersonalMessageResponse
  );
  // handle response
} catch (error) {
  // handle error
}
```

### Deserialize Transaction

```jsx
const deserializedTx = EtherTx.deserializeTransaction(serializedTx);
```

Method Signature:

<pre class="language-typescript"><code class="lang-typescript">type DeserializedTx = {
   transaction: string // Signed Transaction
<strong>   msgs: any[]
</strong>}
</code></pre>


# For Unity Apps

Overview

The Ramper Unity SDK is a no-code integration solution for Unity projects to have embedded Web3 wallet and dapp-to-wallet signatures signing within their app, allowing their users to instantly own a self-custodial wallet just by signing in with Email or SSO (Gmail, Facebook, Twitter, Apple ID, Telegram). Onboarding Web2 users to onchain games has been never this easy!

## Supported platform

* Android
* iOS

## Installation

Download and Import: Download the **unity-ramper-latest.unitypackage** and import it into your Unity project.

{% embed url="<https://game-sdk.static.cyborg.game/unity-ramper-v2.1.2_b.unitypackage>" %}

## Setup

After installation, you need to configure the SDK settings.

**1. Open the Settings Asset:**

Go to the Unity top menu and select Ninety Eight > Ramper SDK Setting.

**2. Configure the Settings:**

* App ID: Enter the appId provided by Ramper.
* Game Slug (Optional for Games not connected to Ninety Eight game server): Enter the gameSlug provided by Ninety Eight.
* Is Debug: Toggle this option to enable or disable debug logs.

Demo Wallet: For testing in the Unity editor, enter a fixed wallet address to simulate wallet interactions. These settings ensure that your SDK is properly configured for use within your Unity project.

## Usage

### **Connecting to a Wallet**

#### **Basic login method**

Use the Login method to connect to a Web3 wallet. This method opens a web view for the user to authenticate their wallet.

**Parameters**

* **message**: The message to sign with the wallet. An empty string is acceptable.

```jsx
C98SDK.Ins.Login(message, dataCallback =>
{
   if (connectCallback.success)
    {
        Debug.Log("Successfully connected: " + connectCallback.data.wallets.ethereum.publicKey);
    }
    else
    {
        Debug.LogError("Failed to connect. error: " + connectCallback.error);
    }
});
```

#### **Login direct with Provider**

LoginDirect is a function that supports custom social login buttons in your app.

**Parameters**

* provider: The provider directs to the login method for Ramper.
* message: The message to sign with the wallet. An empty string is acceptable.

```jsx
C98SDK.Ins.LoginDirect("google", message, dataCallback =>
{
   if (connectCallback.success)
    {
        Debug.Log("Successfully connected: " + connectCallback.data.wallets.ethereum.publicKey);
    }
    else
    {
        Debug.LogError("Failed to connect. error: " + connectCallback.error);
    }
});
```

We support the most popular providers: Google, Apple, Facebook, Telegram and Email.

#### **Signing a Message**

The SignMessage method allows you to sign messages, which is essential for authentication and transaction verification in Web3 applications.

```jsx
C98SDK.Ins.SignMessage("Your message here", (signMessageCallback) =>
{
    if (signMessageCallback.success)
    {
        Debug.Log("Message signed: " + signMessageCallback.signature);
    }
    else
    {
        Debug.LogError("Failed to sign message.");
    }
});

```

#### **Signing a Transaction**

You can sign transactions using the SignTransaction method. This is critical for executing actions on the blockchain.

```jsx
C98SDK.Ins.SignTransaction(transactionData, (signTransactionCallback) =>
{
    if (signTransactionCallback.success)
    {
        Debug.Log("Transaction signed: " + signTransactionCallback.transactionHash);
    }
    else
    {
        Debug.LogError("Failed to sign transaction.");
    }
});

```

### Dependencies

* Unity: Version 2020.3 or higher.
* WebView: The SDK leverages a web view for user authentication.


# For Telegram Mini Apps


# Set up Telegram bot

{% hint style="info" %}
Before starting to use Telegram SDK (Ramper Embedded Wallet for Telegram Mini Apps), clients need to set up a bot on Telegram and provide bot token to Ramper for signing in authorization.

You can refer to [How to get Telegram bot API token](https://www.siteguarding.com/en/how-to-get-telegram-bot-api-token) in order to set up a Telegram bot and get an API token.
{% endhint %}

## **Set up your Telegram bot**

You don't have to neither write any code for this nor use your computer! Just go to the Telegram app on your device and complete 4 simple steps:

**Step 1:** Find telegram bot named "@botfarther", he will help you with creating and managing your bot.

<figure><img src="https://www.siteguarding.com/images/telegram_1.png" alt="" width="375"><figcaption></figcaption></figure>

**Step 2:** Print <mark style="color:blue;">/help</mark> and you will see all possible commands that the botfather can operate.

<figure><img src="https://www.siteguarding.com/images/telegram_2.png" alt="" width="375"><figcaption></figcaption></figure>

**Step 3**: Create a new bot type <mark style="color:blue;">/newbot</mark> or click on it.

Follow the instructions provided by him and create a new name to your bot. If you are making a bot only for experimentation, as it has to be a unique name, you can use namespace for your bot by placing your name before it in its username. By the way, its screen name can be anything you like.

<figure><img src="https://www.siteguarding.com/images/telegram_3.png" alt="" width="375"><figcaption></figcaption></figure>

**Step 4:** Congratulations! You've just created your Telegram bot. You will see a new API token generated for it.\
In sample above it's 270485614:AAHfiqksKZ8WmR2zSjiQ7\_v4TMAKdiHm9T0

**Step 5:** Provide Ramper team with the Bot Token to setup authorization (ETA 1 business day)

**Step 6:** Ramper provides App Id for Bot Token

**Step 7:** Implement [![](https://static-production.npmjs.com/da3ab40fb0861d15c83854c29f5f2962.png)npm: @ramper-v2/telegram-sdk](https://www.npmjs.com/package/@ramper-v2/telegram-sdk)


# Implement Ramper Telegram SDK

## Guide

There are 2 ways to add Ramper Embedded Wallet to a Telegram Mini App:

### **Method 1: Using npm (Recommended)**

> npm link: <https://www.npmjs.com/package/@ramper-v2/telegram-sdk>

```jsx
import RamperTelegram from 'ramper-telegram';
const sdkConfig = {
    // gameId provided by Ramper, request before using the SDK
    gameId: 'sdk_sample',
    partner: 'coin98',
    // partner app id provided by Ramper, request before using the SDK
    appId: 'missing_app_id',
    // callback functions for handling sign in success, sign in fail and sign message
    onSignInSucess: (uProfile) => {
        // handle user profile after sign in success
        console.log('sign-in-success', uProfile);
    },
    onSignMessage: (msg) => {
        // handle message after sign in success
        console.log('sign-message-success', msg);
    },
    onSignInFail: (ev) => {
        // handle sign in fail
        console.error('sign-in-fail', ev);
    }
}

// Initialize RamperTelegram
RamperTelegram.initializeAsync(sdkConfig)
    .then(() => {
        console.log('init ramper success')
    })
    .catch((reason => {
        console.error('');
    }))
```

### **Method 2: Using CDN in HTML**

```jsx
<!-- Double check the version of the SDK before using it -->
<script src="https://game-sdk.static.cyborg.game/rampertelegram.umd.production.min.js"></script>
<script>
    RamperTelegram.initializeAsync({
        // gameId provided by Ramper, request before using the SDK
        gameId: 'sdk_sample',
        partner: 'coin98',
        // partner app id provided by Ramper, request before using the SDK
        appId: 'missing_app_id',
        // callback functions for handling sign in success, sign in fail and sign message
        onSignInSucess: (uProfile) => {
            // handle user profile after sign in success
            console.log('sign-in-success', uProfile);
        },
        onSignMessage: (msg) => {
            // handle message after sign in success
            console.log('sign-message-success', msg);
        },
        onSignInFail: (ev) => {
            // handle sign in fail
            console.error('sign-in-fail', ev);
        }
    }).then(() => {
        console.log('init ramper success')
    }).catch((reason => {
        console.error('');
    }))
</script>
```

## **Functions**

### getSDKVersion

#### **Description**

The string representation of this SDK version.

> **getSDKVersion**(): `string`

#### **Returns**

`string` Returns string The SDK version.

#### **Example**

```jsx
var sdkVersion = RamperTelegram.getSDKVersion(); // '1.0'
```

### hideIframe

#### **Description**

Hide iframe

> **hideIframe**(): `void`

#### Returns

`void`

#### **Example**

```jsx
RamperTelegram.hideIframe();
```

***

### initializeAsync

#### **Description**

Initializes the SDK library. This should be called before any other SDK functions. Login request be fired on this.

> **initializeAsync**(`config`): `Promise`<`any`>

#### **Parameters**

• **config**: Object • Properties `ts gameId: string; partner: string; onSignInSucess: (userProfile: UserProfile) => void; onSignMessage: (data: Object) => void; onSignInFail: (data: Object) => void;`

#### **Returns**

`Promise`<`void`>

**Example**

```jsx
RamperTelegram.initializeAsync({
    gameId: 'sdk_sample',
    partner: 'coin98',
    appId: 'missing_app_id',
    onSignInFail: (ev) => {
        console.error('sign in fail');
    },
    onSignInSucess: (uProfile) => {
        console.log('sign-in-success', uProfile);
    },
    onSignMessage: (msg) => {
        console.log('sign-message-success', msg);
    }
})
```

***

### showIframe

#### **Description**

Open iframe with target url

> **showIframe**(`url`, `afterLoadUrlCallback`): `void`

#### **Parameters**

• **url**: `string` set a callback to be fired on web loaded • **afterLoadUrlCallback**: `any`

#### **Returns**

`void`

#### **Example**

```jsx
RamperTelegram.showIframe(
    'example.com',
    ()=>{
        console.log('load url success')
    }
)
```

***

### signMessage

#### **Description**

#### Sign a string data.

> **signMessage**(`msg`): `void`

#### **Parameters**

• **msg**: `string`

#### **Returns**

`void`

#### **Example**

```jsx
RamperTelegram.signMessage('Hello World');
```

***

### signOut

#### **Description**

Sign out the user.

> **signOut**(`callback`): `void`

#### **Parameters**

Set a callback to be fired when a logout is triggered. • **callback**: `Function`

```jsx
RamperTelegram.signOut(function() {
  console.log('logout event was triggered!');
})
```

#### **Returns**

`void`


# For React Native Apps

Ramper's React Native SDK helps developers provide easy access to the Blockchain for non-native crypto users through their SSO accounts.

## Introduction

Our `@ramper-v2/native-core` library handles authentication for our users through a supported SSO account. Once the user logs in, an ethereum wallet will be created for the user. If you are new to react native, we recommend you set up your environment properly first by visiting [React Native Getting Started](https://reactnative.dev/docs/getting-started).

{% content-ref url="/pages/dZB7V82Qu7VstXNt1g4p" %}
[Installation](/embedded-wallet-sdk/quickstart/for-react-native-apps/installation)
{% endcontent-ref %}

{% content-ref url="/pages/d6grGyAXIzADxYkqRRN0" %}
[Getting Started](/embedded-wallet-sdk/quickstart/for-react-native-apps/getting-started)
{% endcontent-ref %}

{% content-ref url="/pages/CEOZbGWOfxg1kkDiMfDQ" %}
[Wallet Integration](/embedded-wallet-sdk/quickstart/for-react-native-apps/wallet-integration)
{% endcontent-ref %}

{% content-ref url="/pages/6GUHxrX6JuUZPYJ2LPKf" %}
[Sign Typed](/embedded-wallet-sdk/quickstart/for-react-native-apps/sign-typed)
{% endcontent-ref %}

{% content-ref url="/pages/iLaFfXDcqgS56fdORCrY" %}
[Approve](/embedded-wallet-sdk/quickstart/for-react-native-apps/approve)
{% endcontent-ref %}


# Installation

## Install Core Package <a href="#install-core-package" id="install-core-package"></a>

{% tabs %}
{% tab title="npm" %}
{% code title="Install with npm" %}

```jsx
npm install @ramper-v2/native-core
```

{% endcode %}
{% endtab %}

{% tab title="pnpm" %}
{% code title="Install with pnpm" %}

```jsx
pnpm add @ramper/native-core
```

{% endcode %}
{% endtab %}

{% tab title="yarn" %}
{% code title="Install with yarn" %}

```jsx
yarn add @ramper/native-core
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Install Peer Dependencies <a href="#install-peer-dependencies" id="install-peer-dependencies"></a>

{% tabs %}
{% tab title="npm" %}
{% code title="Install with npm" %}

```jsx
npm install query-string react-native-keychain react-native-inappbrowser-reborn @react-native-community/clipboard @react-navigation/bottom-tabs @react-navigation/native @react-navigation/stack accordion-collapse-react-native date-fns react-native-raw-bottom-sheet react-query react-native-gesture-handler react-native-safe-area-context react-native-screens
```

{% endcode %}
{% endtab %}

{% tab title="pnpm" %}
{% code title="Install with pnpm" %}

```jsx
pnpm add query-string react-native-keychain react-native-inappbrowser-reborn @react-native-community/clipboard @react-navigation/bottom-tabs @react-navigation/native @react-navigation/stack accordion-collapse-react-native date-fns react-native-raw-bottom-sheet react-query react-native-gesture-handler react-native-safe-area-context react-native-screens
```

{% endcode %}
{% endtab %}

{% tab title="yarn" %}
{% code title="Install with yarn" %}

```jsx
yarn add query-string react-native-keychain react-native-inappbrowser-reborn @react-native-community/clipboard @react-navigation/bottom-tabs @react-navigation/native @react-navigation/stack accordion-collapse-react-native date-fns react-native-raw-bottom-sheet react-query react-native-gesture-handler react-native-safe-area-context react-native-screens
```

{% endcode %}
{% endtab %}
{% endtabs %}

Note: Follow the further installation steps of [react-native-inappbrowser-reborn](https://github.com/proyecto26/react-native-inappbrowser#mostly-automatic-installation) & [react-navigation](https://reactnavigation.org/docs/getting-started/).

### IOS setup <a href="#ios-setup" id="ios-setup"></a>

{% code title="Setup Podfile for iOS" %}

```jsx
cd ios && pod install
```

{% endcode %}

Secondly, our SDK uses deep links to communicate back with your application. In order to Configure Deep Links, you will need to get an app id by signing up at [the developer page](https://developer.v2.ramper.xyz/).

After getting the app id, add the below code in your AppDelegate.m file:

{% code title="AppDelegate.m" %}

```jsx
// Add the header at the top of the file:
#import <React/RCTLinkingManager.h>
 
// Add this above `@end`:
- (BOOL)application:(UIApplication *)application
   openURL:(NSURL *)url
   options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  return [RCTLinkingManager application:application openURL:url options:options];
}
```

{% endcode %}

Copy your bundle id as shown in the below screenshot:

![Bundle Id](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fbundle-id.efc2da3d.png\&w=3840\&q=75)

Paste your bundle id in the identifier section and add `ramper<appId>` in the URI Scheme section: Make sure to not include the brackets `<>` in the URLScheme:

<figure><img src="https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Furl-scheme-ios.950a92e8.png&#x26;w=3840&#x26;q=75" alt=""><figcaption></figcaption></figure>

### Android setup <a href="#android-setup" id="android-setup"></a>

Add the following in your `<your-project-path>/android/app/src/main/AndroidManifest.xml` file under Activity Tag

{% code title="Setup deep link for Android platform" %}

```jsx
  <intent-filter>
  <!--  Make sure to not include the brackets <> in the scheme -->
    <data android:scheme="ramper<appId>" />
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
  </intent-filter>
```

{% endcode %}

### Run the app <a href="#run-the-app" id="run-the-app"></a>

{% tabs %}
{% tab title="iOS" %}
{% code title="Run the app for iOS" %}

```jsx
npx react-native run-ios
```

{% endcode %}
{% endtab %}

{% tab title="Android" %}
{% code title="Run the app for Android" %}

```jsx
npx react-native run-android
```

{% endcode %}
{% endtab %}
{% endtabs %}


# Getting Started

The RamperContext provides a global context for the Ramper wallet integration, managing authentication, theming, dapp functions, etc.

## Usage <a href="#usage" id="usage"></a>

## Init the SDK <a href="#init-the-sdk" id="init-the-sdk"></a>

{% code title="container.tsx" %}

```jsx
  import { RamperProvider } from '@ramper-v2/native-core'
 
  <RamperProvider
    theme="light"
    appId="<your-app-id>"
    chain={chain}
    authUrl={AUTH_URL_DEFAULT}
  >
   // Nested components
   {children}
  <RamperProvider />
```

{% endcode %}

## Props <a href="#props" id="props"></a>

| Prop    | Type          | Default            | Description                          |
| ------- | ------------- | ------------------ | ------------------------------------ |
| appId   | string        | required           | Your Ramper application ID           |
| chain   | ChainNameEnum | 'tomo'             | The blockchain network to connect to |
| locale  | 'en' \| 'kr'  | 'en'               | Language setting                     |
| theme   | IThemes       | 'light'            | UI theme setting                     |
| authUrl | string        | AUTH\_URL\_DEFAULT | Ramper Authentication URL            |


# Wallet Integration

## Overview <a href="#overview" id="overview"></a>

Ramper supports many standardized methods, including: `signMessage` `signTransaction` `sendTransaction` `sendToken` `connect`

Get all dapps function from `useRamperService`

{% code title="container.tsx" %}

```jsx
import { useRamperService } from '@ramper/react-native-core'
const {
  network,
  userWallet,
  convertBalanceToWei,
  onOpenWallet,
  onLogout,
  signMessage,
  signTypedData,
  signTransaction,
  sendTransaction,
  approve,
} = useRamperService();
```

{% endcode %}

### Sign Message

{% code title="container.tsx" %}

```jsx
import { useRamperService } from '@ramper/react-native-core';
const { signMessage } = useRamperService();
 
/*
  signMessage(message: string)
*/
signMessage('Hello, world!');
```

{% endcode %}

### Sign Transaction

{% code title="container.tsx" %}

```jsx
import { useRamperService } from '@ramper/react-native-core';
const { signTransaction, userWallet } = useRamperService();
 
function handleSignTransaction() {
  const value = {
    from: userWallet?.wallets[0].address,
    to: transactionReceive,
    value: transactionAmount,
  };
  // Using serailized transaction as params
  const result = await signTransaction(JSON.stringify(value));
};
```

{% endcode %}

### Send Transaction

{% code title="container.tsx" %}

```jsx
import { useRamperService } from '@ramper/react-native-core';
const { sendTransaction } = useRamperService();
 
const transaction = {
  from: '0x1234567890123456789012345678901234567890',
  to: '0x1234567890123456789012345678901234567890',
  contractAddress: '0x0Fd0288AAAE91eaF935e2eC14b23486f86516c8C', // C98 token contract address
  amount: '100.0001',
};
const result = await sendTransaction(transaction);
```

{% endcode %}

Send transaction params:

| Param           | Type   | Description                                                                                    |
| --------------- | ------ | ---------------------------------------------------------------------------------------------- |
| from            | string | the sender address                                                                             |
| to              | string | the recipient address                                                                          |
| contractAddress | string | the token contract address, if not provided, it will be considered as send native token action |
| amount          | string | the amount of token to send, please using `.` to separate the integer and decimal              |

### Approve NFTs

{% code title="container.tsx" %}

```jsx
import { Web3 } from 'web3';
import { RPCS_DEFAULT } from '@ramper/react-native-core';
 
const { approve } = useRamperService();
 
function onApproveNFTs() {
  const client = new Web3(
    new Web3.providers.HttpProvider(network?.rpcURL),
  );
    const contract = new client.eth.Contract(
      ERC721FullABI,
      approveNFTContactAddress,
    );
 
    const rawData = contract.methods.approve(
      approveNFTSpender,
      approveNFTTokenId,
    );
    const value: ApproveTransaction = {
      data: rawData.encodeABI(),
      to: approveNFTContactAddress,
      type: 'nft',
    };
    const result = await approve(value);
}
```

{% endcode %}

### Approve NFT Collection

{% code title="container.tsx" %}

```jsx
import {useRamperService } from '@ramper/react-native-core';
const { approve, network } = useRamperService();
 
function onApproveNFTCollection() {
  const client = new Web3(
      new Web3.providers.HttpProvider(network?.rpcURL),
    );
    const contract = new client.eth.Contract(
      ERC721FullABI,
      approveNFTContactAddress,
    );
 
    const rawData = contract.methods.setApprovalForAll(approveNFTSpender, true);
    const value: ApproveTransaction = {
      data: rawData.encodeABI(),
      to: approveNFTContactAddress,
      type: 'nftCollection',
    };
  const result = await approve(value);
}
```

{% endcode %}


# Sign Typed

## Sign Typed Data

{% tabs %}
{% tab title="Code Example" %}
{% code title="sign-typed.tsx" %}

```jsx
import { useRamperService } from '@ramper-v2/native-core';
 
const { signTypedData } = useRamperService();
 
const TYPE_DATA_TEST = JSON.stringify([
  {
    type: "string",
    name: "Message",
    value: "Hi, Alice!",
  },
  {
    type: "uint32",
    name: "A number",
    value: "1337",
  },
])
 
const handleSignTypeData = async () => {
  const result = await signTypedData(TYPE_DATA_TEST, 'eth_signTypedData');
};
 
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}

| Sign Typed Modal                                                                                                                                             | Detailed Data                                                                                                                                                        |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![Sign Typed Data - Modal](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fsign-typed.ac999179.png\&w=828\&q=75) | ![Sign Typed Data - Detail](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fsign-typed-detail.81558858.png\&w=828\&q=75) |
| {% endtab %}                                                                                                                                                 |                                                                                                                                                                      |
| {% endtabs %}                                                                                                                                                |                                                                                                                                                                      |

## Sign Typed Data V3

{% tabs %}
{% tab title="Code Example" %}
{% code title="sign-typed-v3.tsx" %}

```jsx
  import { useRamperService } from '@ramper-v2/native-core';
 
  const { signTypedData } = useRamperService();
 
  const TYPE_DATA_TEST =  JSON.stringify({
  types: {
    EIP712Domain: [
      { name: "name", type: "string" },
      { name: "version", type: "string" },
      { name: "chainId", type: "uint256" },
      { name: "verifyingContract", type: "address" },
    ],
    Person: [
      { name: "name", type: "string" },
      { name: "wallet", type: "address" },
    ],
    Mail: [
      { name: "from", type: "Person" },
      { name: "to", type: "Person" },
      { name: "contents", type: "string" },
    ],
  },
  primaryType: "Mail",
  domain: {
    name: "Ether Mail",
    version: "1",
    chainId: 88,
    verifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
  },
  message: {
    from: {
      name: "Cow",
      wallet: "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
    },
    to: { name: "Bob", wallet: "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB" },
    contents: "Hello, Bob!",
  },
})
 
const handleSignTypeDataV3 = async () => {
  const result = await signTypedData(TYPE_DATA_TEST, 'eth_signTypedData_v3');
};
 
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}

| Sign Typed Modal                                                                                                                                                | Detailed Data                                                                                                                                                             |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![Sign Typed Data V3 - Modal](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fsign-typed.ac999179.png\&w=828\&q=75) | ![Sign Typed Data V3 - Detail](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fsign-typed-detailv3.ec639e1b.png\&w=828\&q=75) |
| {% endtab %}                                                                                                                                                    |                                                                                                                                                                           |
| {% endtabs %}                                                                                                                                                   |                                                                                                                                                                           |

## Sign Typed Data V4

{% tabs %}
{% tab title="Code Example" %}
{% code title="sign-typed-v4.tsx" %}

```jsx
import { useRamperService } from '@ramper-v2/native-core';
const { signTypedData } = useRamperService();
 
const TYPE_DATA_TEST = JSON.stringify({
  domain: {
    chainId: "88",
    name: "Ether Mail",
    verifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
    version: "1",
  },
  message: {
    contents: "Hello, Bob!",
    from: {
      name: "Cow",
      wallets: [
        "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
        "0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF",
      ],
    },
    to: [
      {
        name: "Bob",
        wallets: [
          "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
          "0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57",
          "0xB0B0b0b0b0b0B000000000000000000000000000",
        ],
      },
    ],
    attachment: "0x",
  },
  primaryType: "Mail",
  types: {
    EIP712Domain: [
      { name: "name", type: "string" },
      { name: "version", type: "string" },
      { name: "chainId", type: "uint256" },
      { name: "verifyingContract", type: "address" },
    ],
    Group: [
      { name: "name", type: "string" },
      { name: "members", type: "Person[]" },
    ],
    Mail: [
      { name: "from", type: "Person" },
      { name: "to", type: "Person[]" },
      { name: "contents", type: "string" },
      { name: "attachment", type: "bytes" },
    ],
    Person: [
      { name: "name", type: "string" },
      { name: "wallets", type: "address[]" },
    ],
  },
})
 
const handleSignTypeV4 = async () => {
  const result = await signTypedData(TYPE_DATA_TEST, 'eth_signTypedData_v4');
};
 
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}

| Sign Typed Modal                                                                                                                                                | Detailed Data                                                                                                                                                             |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![Sign Typed Data V4 - Modal](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fsign-typed.ac999179.png\&w=828\&q=75) | ![Sign Typed Data V4 - Detail](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fsign-typed-detailv4.abf45777.png\&w=828\&q=75) |
| {% endtab %}                                                                                                                                                    |                                                                                                                                                                           |
| {% endtabs %}                                                                                                                                                   |                                                                                                                                                                           |


# Approve

## Approve params

| Param | Type                      | Description                          |
| ----- | ------------------------- | ------------------------------------ |
| data  | string                    | the approve data                     |
| to    | string                    | the spender address                  |
| type  | token, nft, nftCollection | the supported type of approve action |

## Approve Token

{% tabs %}
{% tab title="Code Example" %}
{% code title="container.tsx" %}

```jsx
import Web3 from 'web3';
import { useRamperService } from '@ramper-v2/native-core';
 
const { approve, network } = useRamperService();
function onApproveToken() {
  const client = new Web3(
    new Web3.providers.HttpProvider(network?.rpcURL),
  );
    const contract = new client.eth.Contract(
      ERC20ABI as any,
      approveTokenContactAddress,
    );
 
    // Main Token decimal
    const decimal = 18;
 
    // Please convert amount to wei unit
    const amount = '100000000';
    const rawData = contract.methods.approve(approveTokenSpender, amount);
    const value = {
      data: rawData.encodeABI(),
      to: approveTokenContactAddress,
      type: 'token',
    };
    try {
      const result = await approve(value);
    } catch (error) {
      // Error Handler
    }
  };
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}
![Approve Token](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fapprove-token.e4e2d3df.png\&w=828\&q=75)
{% endtab %}
{% endtabs %}

## Approve NFT

{% tabs %}
{% tab title="Code Example" %}
{% code title="approve-nft.tsx" %}

```jsx
import { useRamperService } from '@ramper-v2/native-core';
import Web3 from "web3";
 
const { approve, network } = useRamperService();
 
const handleApproveNFT = async () => {
  try {
    const client = new Web3(
      new Web3.providers.HttpProvider(network?.rpcURL),
    );
  const contract = new client.eth.Contract(
    ERC721FullABI,
    approveNFTContactAddress,
  );
 
  const rawData = contract.methods.approve(
    approveNFTSpender,
    approveNFTTokenId,
  );
    const value = {
      data: rawData.encodeABI(),
      to: approveNFTContactAddress,
      type: 'nft',
    };
    const result = await approve(value);
  } catch (error) {
    // Error Handler
  }
};
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}
![Approve Single NFT](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fapprove-nft.5656d1b3.png\&w=828\&q=75)
{% endtab %}
{% endtabs %}

## Approve NFT Collection

{% tabs %}
{% tab title="Code Example" %}
{% code title="approve-nft-collection.tsx" %}

```jsx
import { useRamperService } from '@ramper-v2/native-core';
import Web3 from "web3";
 
const { approve, network } = useRamperService();
 
const handleApproveNFTCollection = async () => {
  try {
    const client = new Web3(
      new Web3.providers.HttpProvider(network?.rpcURL),
    );
    const contract = new client.eth.Contract(
      ERC721FullABI,
      approveNFTContactAddress,
    );
 
    const rawData = contract.methods.setApprovalForAll(approveNFTSpender, true);
    const value = {
      data: rawData.encodeABI(),
      to: approveNFTContactAddress,
      type: 'nftCollection',
    };
    const result = await approve(value);
  } catch (error) {
    // Error Handler
  }
};
```

{% endcode %}
{% endtab %}

{% tab title="Demo UI" %}
![Approve NFT Collection](https://ramper-v2-docs-test.teleport.coin98.dev/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fapprove-nft-collection.3f1df157.png\&w=828\&q=75)
{% endtab %}
{% endtabs %}


# Terms & Conditions

**RAMPER SERVICES - TERMS AND CONDITIONS**

**Date Last Revised: 3 January 2024**

These Terms and Conditions (“**Terms**”) apply to any partner (“**Partner**”, “**you**”, or **“your”**) who uses Ramper Services (as defined below) provided by **Ramper Labs, LLC (**“**Ramper**”, “**our**”, “**we**”, or “**us**”).

These Terms form a legally binding contract between you and Ramper in relation to your use of Ramper Services.

In order to use Ramper Services, you must first agree to these Terms. You shall not use Ramper Services if you do not accept these Terms. By clicking to accept these Terms and/or using Ramper Services, you expressly acknowledge and agree that you are entering into a legal agreement with Ramper and have understood and agree to comply with and be legally bound by these Terms. You shall not use Ramper Services and may not accept these Terms if you are a person barred from receiving Ramper Services under the laws of any applicable jurisdictions, including the country in which you are resident or from which you use Ramper Services. If you are agreeing to be bound by these Terms on behalf of your employer or other entity, you represent and warrant that you have the full legal authority to bind your employer or such entity to these Terms. If you do not have the requisite authority, you shall not accept these Terms or use Ramper Services on behalf of your employer or other entity. You hereby waive any rights to require an original (non-electronic) signature or delivery or retention of non-electronic records, to the extent not prohibited under applicable law. If you do not agree to be bound by these Terms please do not use the Ramper Services.

1. **Definitions** &#x20;
   1. “**Affiliate**” is an entity controlled by, controlling, or under common control of a party, only so long as such control exists; for such purposes, the term “control” (including the terms “controlling”, “controlled by” and “under common control with”) shall mean the possession, direct or indirect, of the power to direct or cause the direction of the management and policies of a person, whether through the ownership of voting securities, by contract or otherwise.
   2. “**Partner Parties**” include the Partner, its Affiliates and their employees, agents, contractors, consultants, advisors, and other similarly situated third parties.
   3. “**End User(s)**” is end users and consumers of the Partner’s Dapps, products, and services using Ramper Services provided by Partner or made available by Partner.
   4. “**Intellectual Property Right**” means trade secrets, patents, inventions, trademarks, service marks, logos, design rights (whether registerable or otherwise), applications for any of the foregoing, copyright, database rights, domain names, trade or business names, moral rights and other similar rights or obligations whether registrable or not in any country (including but not limited to the United States) and the right to sue for infringement.
   5. “**Ramper SDK**” is a non-custodial wallet & web3 login solution, allowing anyone to log into decentralised applications (“**Dapps**”) instantly without having to download wallets, use browser extensions, or store seed phrases.
   6. “**Ramper Platform**” means any associated media form, media channel, printed materials, and "online" or electronic documentation, mobile website, or mobile application related, linked, or otherwise connected thereto which is controlled and/or assigned by Ramper as well as our web application hosted on the domain <https://www.ramper.xyz>.
   7. “**Ramper Services**” means either Ramper SDK, Ramper Platform, or both collectively.
   8. “**Sanction**” means any (a) economic or financial sanctions or trade embargoes imposed, administered or enforced from time to time by (i) the U.S. government and administered by OFAC, (ii) the United Nations Security Council, (iii) the European Union, (iv) any European Union Member state or (v) Her Majesty's Treasury of the United Kingdom; (b) economic or financial sanctions imposed, administered or enforced from time to time by the U.S. State Department, the U.S. Department of Commerce or the U.S. Department of the Treasury’s Office of Foreign Assets Control; and (c) economic or financial sanctions or trade embargoes imposed, administered or enforced from time to time by or any other relevant sanctions authority.
2. **Use of Ramper Services by You**
   1. You agree to use Ramper Services and write your Dapps, products, and services only for purposes that are permitted by (a) these Terms and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
   2. You agree that if you use Ramper Services to develop Dapps, products and services for general public End Users, you will protect the privacy and legal rights of those End Users. If the End Users provide you with user names, passwords, or other login information or personal information, you must make the End Users aware that the information will be available to your Dapps, products and services, and you must provide legally adequate privacy notice and protection for those End Users. If your Dapps, products and services store personal or sensitive information provided by End Users, it must do so securely, and for the limited purposes for which, the End Users has given you permission to do so. You will maintain and process all End User data in accordance with your privacy policy and all applicable laws and regulations in any countries in which your Dapps, products and services are distributed or used. Ramper may collect certain data through Ramper Services, including, but not limited to, advertising identifiers, associated IP addresses, geolocation (if made available by you), version number of Ramper Services, and information on which tools and/or services in Ramper Services are being used and how they are being used. This information will be collected and used in accordance with Ramper’s Privacy Policy, which can be accessed at \<link of Privacy Policy>.
   3. You agree that you will not engage in any activity with Ramper Services, including the development or distribution of a Dapp, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Ramper and its Affiliates.
   4. You agree that you are solely responsible for (and that Ramper has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through your Dapps, products and services, and for the consequences of your actions (including any loss or damage which Ramper may suffer) by doing so.
   5. You agree that you are solely responsible for (and that Ramper has no responsibility to you or to any third party for) any breach of your obligations under these Terms, any applicable third party contract or terms of service, or any applicable law or regulation, and for the consequences (including any loss or damage which Ramper or any third party may suffer) of any such breach.
3. **Fees**
   1. You acknowledge and agree that the use of Ramper Services may be subject to transaction fees. Ramper may, at any time, be entitled to collect the transaction fees arising from transactions via your Dapps, products and services using Ramper Services.
   2. Transaction fees will be calculated as a percentage of each transaction conducted through your Dapps, products and services using Ramper Services.
   3. You acknowledge and agree that transaction fees associated with the use of Ramper Services will be deducted directly from each transaction conducted through your Dapps, products and services. You hereby authorize Ramper to deduct the applicable transaction fees automatically from the transaction amount before any funds are settled to you.
4. **Intellectual Property Rights**
   1. All rights, titles and interests in and to (a) Ramper Services, and (b) all works, inventions, and other subject matter incorporating, based on, or derived from Ramper Services, including all customizations, enhancements, improvements, and other modifications thereof (collectively, "**Derivatives**"), in each case by whomever made and including all Intellectual Property Rights therein, are and will remain, as appropriate, with Ramper. Partner has no right or license with respect to Ramper Services or Derivatives except as expressly licensed under Section 5. All other rights in and to Ramper Services and Derivatives are expressly reserved by Ramper and the respective third-party licensors.
   2. For avoidance of doubt, Ramper agrees that it obtains no right, title or interest from you (or your licensors) under these Terms in or to any Dapps, products and services that you develop using Ramper Services, including any Intellectual Property Rights that subsist in those Dapps, products and services.
   3. The: (i) content on Ramper Services, including without limitation, the text, information, documents, descriptions, products, software, graphics, photos, sounds, videos, interactive features, and services (the "**Materials**"), the (ii) trademarks, service marks and logos contained therein ("**Marks**", and together with the Materials, the "**Content**"), is the property of Ramper and/or its licensors and may be protected by applicable copyright or other intellectual property laws and treaties. "Ramper" and its logo are Marks of Ramper and its affiliates. All other Marks used on Ramper Services are the trademarks, service marks or logos of their respective owners. Nothing in these Terms gives you a right to use any of Ramper’s trade names, trademarks, service marks, logos, domain names or other distinctive brand features. You agree that you will not adopt, use or attempt to register, whether as a corporate name, domain name, product name, trademark, service mark or other indication of origin, any trademark of Ramper or any mark that is confusingly similar to or will dilute the distinctive nature of the Ramper trademarks. You also agree that you will not include the term “Ramper” as part of the name for any Dapps, products and services that you develop using Ramper Services.&#x20;
5. **Licenses**
   1. Partner License. Subject to and conditioned upon your compliance with and performance of all other terms and conditions of these Terms, Ramper hereby grants to you a fully paid-up and royalty-free, revokable, non-transferable, non-sublicensable license, worldwide to install, operate, and use Ramper Services, solely for Partner's own lawful business purposes, in accordance the terms and conditions of these Terms.&#x20;
   2. License Restrictions. You and your Affiliates shall not, except as these Terms expressly permits:
      1. copy, modify, or create derivative works or improvements of Ramper Services;
      2. rent, lease, lend, sell, sublicense, assign, distribute, publish, transfer, or otherwise make available Ramper Services to any other person, including through or in connection with any time-sharing, service bureau, software as a service, cloud, or other technology or service;
      3. reverse engineer, disassemble, decompile, decode, or otherwise attempt to derive or gain access to the source code of Ramper Services, or any part thereof;
      4. remove, delete, alter, or obscure any trademarks or any copyright, trademark, patent, or other intellectual property or proprietary rights notices from Ramper Services, including any copy thereof;
      5. use Ramper Services in a manner or for any purpose that infringes, misappropriates, or otherwise violates any law or Intellectual Property Right;&#x20;
      6. use Ramper Services for purposes of competitive analysis of Ramper Services, the development of a competing software product or service, or any other purpose that is to Ramper's commercial disadvantage; or
      7. use Ramper Services in, or in association with, the design, construction, maintenance, or operation of any hazardous environments, systems, or applications;
      8. use Ramper Services in a manner that is unlawful, harmful, irresponsible, or inappropriate purpose, or in any manner that breaches these Terms;
      9. otherwise use Ramper Services beyond the scope of the license granted under this Section.
6. **Third Party Applications**

If you use Ramper Services to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Ramper is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Ramper is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.

You should be aware the data, content, and resources presented to you through such a third party application may be protected by Intellectual Property Rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.

You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, these Terms do not affect your legal relationship with these third parties. RAMPER DISCLAIMS ANY RESPONSIBILITY FOR ANY DISCLOSURE OF INFORMATION OR ANY OTHER PRACTICES OF ANY THIRD PARTY. RAMPER EXPRESSLY DISCLAIMS ANY WARRANTY REGARDING WHETHER YOUR PERSONAL INFORMATION IS CAPTURED BY ANY THIRD-PARTY PROVIDER OF CONTENT OR SERVICES OR THE USE TO WHICH SUCH PERSONAL INFORMATION MAY BE PUT BY SUCH THIRD PARTY.

1. **Termination**
   1. Term. These Terms will continue to apply until terminated by either you or Ramper as set out below.
   2. Termination. In addition to any other express termination right set forth elsewhere in these Terms:
      1. Ramper may terminate these Terms, without any written notice to you, and shall not be liable to you or any third party for any of the foregoing (i) if the Partner Parties breaches any of its obligations, covenants, representations and warranties as set forth in these Terms; or (ii) if the Partner Parties (or any of its shareholders or directors) becomes subject to any Sanction; or (iii) if, Ramper has reasons to believe that performance of these Terms would (in the reasonable opinion of Ramper) expose Ramper or any of its Affiliates to any Sanction; or (iv) if the Partner Parties infringe any third party rights, in particular but not limited to Intellectual Property Rights; or (v) the Partner becomes insolvent or is generally unable to pay, or fails to pay, its debts as they become due; or (vi) Ramper decides to no longer provide Ramper Services or certain parts of Ramper Services to End Users in the country in which you are resident or from which you use the service, or the provision of Ramper Services or certain SDK services to you by Ramper is, in Ramper's sole discretion, no longer commercially viable; or (vii) Ramper is required to do so by law.
      2. If due to the promulgation of or any change in the interpretation by any court, tribunal or regulatory authority or any applicable law or regulation (including any action taken by a taxing authority), Ramper determines in its sole discretion and at any time that you, or there is a reasonable likelihood that you will, become illegal or create legal, business or reputational risk for Ramper, Ramper will be entitled to terminate these Terms immediately without written notice without prejudice of Ramper being entitled to claims damages it would be entitled to as the case may be and shall not be liable to you or any third party for any of the foregoing.
   3. We reserve the right, at any time, to: (i) discontinue or modify any aspect of Ramper Services; and/or (ii) terminate these Terms and your use of Ramper Services without cause, and shall not be liable to you or any third party for any of the foregoing. If you object to any term or condition of these Terms or any subsequent modifications thereto, or become dissatisfied with Ramper Services in any way, your only recourse is to immediately discontinue use of Ramper Services.
   4. Effect of Expiration or Termination. Upon any expiration or termination of these Terms, all licenses granted by Ramper to you will also expire or terminate, except to the extent that any license has an express term that continues for a longer period or is perpetual.
   5. Surviving Terms. The provisions and any other right or obligation in these Terms that, by its nature, should survive termination or expiration of these Terms, including but not limited to Sections 1, 4, 6 , 7.3, 7.4, 8, 9, 10, 11 and 12, will survive any expiration or termination of these Terms.
2. **Disclaimer**

YOU EXPRESSLY UNDERSTAND AND AGREE THAT ALL DELIVERABLES, SOFTWARE, SERVICES, AND Ramper Services ARE PROVIDED "AS IS" AND "AS AVAILABLE" BASIS AND RAMPER HEREBY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, AND RAMPER SPECIFICALLY DISCLAIMS ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, AND ALL WARRANTIES ARISING FROM COURSE OF DEALING, USAGE, OR TRADE PRACTICE. WITHOUT LIMITING THE FOREGOING, RAMPER MAKES NO WARRANTY OF ANY KIND THAT Ramper Services, OR ANY PRODUCTS OR RESULTS OF THE USE THEREOF, WILL MEET YOUR OR ANY OTHER PERSON'S REQUIREMENTS, OPERATE WITHOUT INTERRUPTION, ACHIEVE ANY INTENDED RESULT, BE COMPATIBLE OR WORK WITH ANY SOFTWARE, SYSTEM, OR OTHER SERVICES, OR BE SECURE, ACCURATE, COMPLETE, FREE OF HARMFUL CODE, OR ERROR-FREE.

USAGE OF THE Ramper Services, AND THE RELATED TRANSFER OF VALUE SHALL BE SUBJECT TO RAMPER’S TERMS AND CONDITIONS. END USERS ARE REQUIRED TO AGREE TO ALL RELEVANT TERMS AND CONDITIONS BEFORE BEING PERMITTED TO ACCESS OR USE Ramper Services. NOTHING IN THESE TERMS ESTABLISHES ANY OBLIGATIONS ON THE PART OF RAMPER TOWARDS END USERS, FOR ANY REASON WHATSOEVER.

RAMPER PROVIDES Ramper Services WITHOUT EXERCISING ANY CONTROL OVER THE INTEGRATION OF Ramper Services TO YOUR PRODUCTS AND SERVICES. RAMPER WILL NOT MONITOR OR VERIFY ANY INTERACTION BETWEEN YOU AND END USERS. AS A RESULT, RAMPER DOES NOT ENDORSE, WARRANT, GUARANTEE OR ASSUME RESPONSIBILITY FOR YOUR PRODUCTS AND SERVICES. YOU SHALL DEFEND, INDEMNIFY, AND HOLD RAMPER HARMLESS, WITHOUT LIMITATION WHATSOEVER, AGAINST ANY LOSS, DAMAGE, OR COSTS (INCLUDING ATTORNEYS’ FEES) INCURRED IN CONNECTION WITH CLAIMS, DEMANDS, SUITS OR PROCEEDINGS MADE OR BROUGHT AGAINST RAMPER BY A THIRD PARTY OR AN END USER THAT ARISES FROM THE USE OF YOUR PRODUCTS AND SERVICES. RAMPER SHALL NOT BE LIABLE FOR ANY FRAUDULENT USE OF SUCH PRODUCTS AND SERVICES BY END USERS.

NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM RAMPER SHALL BE DEEMED TO ALTER THIS DISCLAIMER OF WARRANTY, OR TO CREATE ANY WARRANTY.

Applicable law may not allow the exclusion of certain warranties, so to that extent such exclusions will not apply.

1. **Limitation of Liability**

YOU EXPRESSLY UNDERSTAND AND AGREE THAT RAMPER, ITS AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, REVENUE, BUSINESS OR REPUTATION, THAT ARISES UNDER OR IN CONNECTION WITH THESE TERMS, OR THAT RESULTS FROM THE USE OF, OR THE INABILITY TO USE, THE RAMPER SERVICES, WHETHER OR NOT RAMPER OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING. SOME JURISDICTIONS MAY NOT ALLOW THE EXCLUSION OF OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO TO THAT EXTENT SUCH EXCLUSIONS MAY NOT APPLY.

IN NO EVENT WILL THE COLLECTIVE AGGREGATE LIABILITY OF RAMPER AND ITS LICENSORS, AFFILIATES, RAMPERS AND SUPPLIERS UNDER OR IN CONNECTION WITH THESE TERMS OR ITS SUBJECT MATTER, UNDER ANY LEGAL OR EQUITABLE THEORY, INCLUDING BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY, AND OTHERWISE, EXCEED 100 U.S.  THE FOREGOING LIMITATION APPLIES NOTWITHSTANDING THE FAILURE OF ANY AGREED OR OTHER REMEDY OF ITS ESSENTIAL PURPOSE.

1. **Indemnification**

You (as "**Indemnifying Party**") shall indemnify, hold harmless, and defend Ramper, if Affiliates and their managers, officers, directors, employees, agents, affiliates, successors, and permitted assigns (collectively, "**Indemnified Party**") against any and all losses, damages, liabilities, deficiencies, claims, actions, judgments, settlements, interest, awards, penalties, fines, costs, or expenses of whatever kind, including professional fees and reasonable attorneys' fees, that are incurred by Indemnified Party (collectively, "**Losses**"), arising out of or accruing from:

* * 1. your use of, or inability to use Ramper Services;
    2. any Dapps, products and services you develop on Ramper Services that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy;
    3. any non-compliance by you with these Terms and any applicable laws;
    4. any bodily injury, death of any person, or damage to real or tangible personal property caused by your negligent or more culpable acts or omissions (including any reckless or willful misconduct);
    5. any action by a third party, including your End User, developer, or participant, that is based on your operation, use, or deployment of Ramper Services.

Without derogating from or excusing your obligations under this section, we reserve the right (at your own expense), but are not under any obligation, to assume the exclusive defense and control of any matter which is subject to an indemnification by you if you choose not to defend or settle it.

1. **Governing Law and Resolving Disputes**

These Terms and any claim arising out of or in connection with it or its subject matter or formation (including non-contractual disputes or claims) shall be governed by the laws of Singapore, without giving effect to its principles or rules of conflict of laws, to the extent such principles or rules are not mandatorily applicable by statute and would permit or require the application of the Laws of another jurisdiction.\
Any dispute arising out of or in connection with these Terms, including any question regarding its existence, validity or termination, shall be referred to and finally resolved by arbitration administered by the Singapore International Arbitration Centre (“**SIAC**”) in accordance with the Arbitration Rules of the Singapore International Arbitration Centre (“**SIAC Rules**”) in force at the date of applying for the arbitration, which rules are deemed to be incorporated by reference in this Section. The Tribunal shall consist of three (3) arbitrators. The language of the arbitration shall be English. The arbitration hearing shall be conducted virtually.&#x20;

1. **General Terms**
   1. Ability to Accept these Terms. Ramper Services available only to entities and/or persons who have reached the age of legal majority and are competent to enter into a legal binding agreement under applicable laws.
   2. We reserve the right to change, modify, or remove Ramper Services at any time or for any reason at our sole discretion without notice to you. We also reserve the right to modify or discontinue all or part of Ramper Services without notice at any time. We will not be liable to you or any third party for any modification, change, suspension, or discontinuance of Ramper Services.
   3. We reserve the right to change, modify, or remove any terms and conditions of these Terms at any time or for any reason at our sole discretion without a notice to you. Your continued use of Ramper Services thereafter means that you accept those changes.
   4. If any provision or any part of any provision of these Terms is or becomes or is found by a court or other competent authority to be illegal, invalid or unenforceable, in whole or in part, under any law, such provision or part will be read down or interpreted and enforced to the extent permissible, or if this is not possible, such provision or part will be deemed not to form part of these Terms, and the legality, validity and enforceability of the remainder of these Terms will not be affected or impaired.
   5. No failure to exercise or delay in exercising any right or remedy provided under these Terms or by law constitutes a waiver of such right or remedy or will prevent any future exercise in whole or in part thereof.
   6. These Terms constitute the complete agreement between you and Ramper and governs your use of Ramper Services (excluding any services which Ramper may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Ramper in relation to Ramper Services. YOU AGREE THAT ANY CAUSE OF ACTION THAT YOU MAY HAVE ARISING OUT OF OR RELATED TO RAMPER SERVICES MUST COMMENCE WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES. OTHERWISE, SUCH CAUSE OF ACTION IS PERMANENTLY BARRED
   7. You acknowledge and agree that each Affiliate of Ramper shall be third party beneficiaries to these Terms and that such Affiliate shall be entitled to directly enforce, and rely upon, any provision of these Terms that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to these Terms.


# Privacy Policy

**Date Last Revised: 3 January 2024**

Ramper Labs, LLC ("**Ramper**”, "**we**"**,** "**our**", and "**us**") provides this Privacy Policy to explain how we collect, use, process, disclose, share, and transfer information. This Privacy Policy covers Ramper’s handling of information we receive from our partners about end users (“**End Users**”) of third-party Services (“**Apps**”) that use our Ramper SDK (as defined in the Terms and Conditions), and Ramper Platform (as defined in the Terms and Conditions) (collectively, “**Services**”).

This Privacy Policy (together with our Terms and Conditions and any other documents referred to herein) sets out the basis on which any personal data we collect from you, or that you provide to us, will be processed, used and/or disclosed by us. Please read the following carefully to understand our practices in processing your personal data, as well as your rights regarding your personal data and how we will treat it.

By using our Services and/or submitting data to us, you are accepting and consenting to the collection, use, disclosure and processing of your personal data as described in this Privacy Policy. Please refrain from accessing the Services and do not provide any personal data to us if you disagree with the terms of this Privacy Policy.

We may change or amend this Privacy Policy from time to time without notice to you, in compliance with applicable laws or as we update our data usage and handling processes. Any changes we may make to this Privacy Policy in the future will be made available on Ramper website and any such changes will become effective upon posting of the revised Privacy Policy. The updated Privacy Policy will supersede earlier versions and will apply to personal data provided to us previously. Please check back frequently to see any updates or changes to our Privacy Policy.

For the avoidance of doubt, this Privacy Policy forms a part of the terms and conditions governing your relationship with us. This Privacy Policy supplements but does not supersede or replace any other consents you may have provided to us, or any other agreements or arrangements that you may have with us, in respect of your personal data.

For any questions or feedback in relation to this Privacy Policy or your personal data, or if you wish to make a complaint to us, please submit your requests, feedback or complaint to <hi@ramper.xyz>.

When you contact us, we may require that you submit certain forms or provide certain information, including verification of your identity, before we are able to respond.

1. **Your Personal Data**

“**Personal data**” is data that can be used to identify a natural person. Examples of personal data include name, transactional information based on your activities on our Services, and any other information of a personal nature.

We may collect and process personal data provided directly by you. We also process, insofar as necessary, personal data provided to us by third parties, including publicly accessible data, personal data legitimately provided by other group companies, personal data collected through your use of our (or our service provider’s) digital technologies and services, and personal data provided by other trusted third parties (including our service providers).

You are responsible for ensuring that all personal data that you provide to us is true, accurate and complete. You are responsible for informing us of any changes to your data in writing, so that we may take all reasonable measures to keep our records of your personal data correct and up to date.

When our collection is based on consent, you have the choice, at any time, not to provide your personal data to us or to withdraw your consent previously provided to us. However, do note that if you do so, we may be unable to fulfill the purposes for which we require the personal data, continue to provide Services to you (e.g. processing your transactions), and/or fulfill any contractual relationship which may be in place between us.

Our Services are not intended to be accessed or used by children, minors or persons who are not of legal age. If you are a parent or guardian and you have reason to believe your child or ward has provided us with their personal data without your consent, please contact us.

In certain circumstances, you may also provide us with personal data of persons other than yourself (such as your officers, employees, agents, customers, family members and next-of-kin). If you do so, you represent and warrant that you have brought this Privacy Policy to his/her attention, informed him/her of the purposes for which we are collecting his/her personal data and that he/she has consented to your disclosure of his/her personal data to us for those purposes and accepts this Privacy Policy. You agree to indemnify and hold us harmless from and against any and all claims by such individuals relating to our collection, use and disclosure of such personal data in accordance with the terms of this Privacy Policy.

1.1. Personal Data you give us

You may voluntarily give us your personal data by filling in forms on the Services or by corresponding with us by phone, e-mail or otherwise. This includes personal data you provide when you register or use our Services or the services provided by our service providers, or when you report a problem with the Services. See Clause 1.4 for more information on how we collect your personal data.

Examples of personal data you may provide to us include (depending on the nature of your interaction with us) your name, email address, and any other information relating to any individuals which you have provided to us in any forms submitted to us, or via other forms of interaction with you. See Clause 1.2 for more information on the types of personal data we may collect from you.

1.2. Personal data and/or information we collect about you&#x20;

With regard to each of your visits to or use of our Services, we may collect the following information and/or personal data that are relevant to our relationship with you, as well as copies of documents verifying such information:

(a) your financial information, including but not limited to, your transaction history , your investment details, and any other information or documents in order to comply with domestic and international industry standards, government rules and regulations, particularly Anti-Money Laundering (AML) regulations, Know Your Customer (KYC) rules, and Counter-Terrorist Financing (CTF) regulations;

(b) technical information, including but not limited to the Internet protocol (IP) address used to connect your computer to the Internet, your login information, browser type and version, time zone setting, browser plug-in types and versions, and information relating to your operating system and platform;

(c) information about your visit and use of our Services, including but not limited to the full Uniform Resource Locators (URL) clickstream to, through and from our Services (including date and time), download errors, length of visits to certain pages, page interaction information (such as scrolling, clicks, and mouse-overs), and methods used to browse away from the page; and

You hereby agree that we are entitled to collect and use the above-listed personal data and/or information you have provided on our Services or generated through your use or access of our Services for the purposes listed in Clause 2 of this Privacy Policy.

Apart from personal data, we may collect other types of information which are not related to an individual and which are anonymous. For example, the number of website visitors and the number of website users using a particular service.

1.3. How we collect your personal data

We may collect your personal data directly or indirectly through various channels, such as:

(a) when you register an account or Wallet with us through our Services;

(b) when you log in, visit, use, access or download our Services;

(c) when you authorize us to obtain your personal data from a third party;

(d) when you enter into agreements with us;

(e) when you transact with us, contact us or request that we contact you through various communication channels, for example, through social media platforms, messenger platforms, face-to-face meetings, emails and letters;

(f) when you attend events or functions organized by us;

(g) we seek information about you and receive your personal data in connection with your relationship with us;

(h) when you submit your personal data to us for any other reason;

(i) when you voluntarily complete any user survey or provide feedback to us via emails or any other electronic channels;

(j) through automated data collection technologies upon visiting our Services; and

(k) in other situations where we may collect your information as may be described in this Privacy Policy or in our terms and conditions.

1.4. Personal Data we receive from other sources and third parties

Depending on your relationship with us, we may also collect and receive your personal data from third party sources, for example, from:

(a) public databases, public agencies, other public sources, credit bureaus, blockchain data;

(b) third parties whom you have authorized us to obtain your personal data from;

(c) our business partners such as third parties providing services to us (including but not limited to, our ID verification partners, marketing partners, advertising partners, our sub-contractors in technical, payment and delivery services, advertising networks, analytics providers, search information providers and credit reference agencies); and/or

(d) your family members or friends who provide your personal data to us on your behalf.

We may also receive personal data about you if you use any of the other websites or platforms we operate (or operated by our affiliate or related companies), or other services we (or our affiliate or related companies) provide.

2. **Processing your personal data**

2.1. General Purposes

We collect, use, disclose and process your personal data, including data provided by you, data we collect about you and data provided by third parties, in the following ways and upon the following grounds:

(a) for the fulfillment of contractual obligations and/or transactions entered into between you and us, and to provide you with the information, or Services that you request from us;

(b) facilitating the use of our Services, including verifying, authenticating and/or establishing your identity;

(c) facilitating business asset transactions;

(d) to notify you about changes to our Services;

(e) to comply with any legal or regulatory obligations, applicable laws, regulations, codes of practices, guidelines, industry standards (domestic or global), government requests, or rules (including but not limited to Anti-Money Laundering (AML) regulations, Know Your Customer (KYC) rules, and Counter-Terrorist Financing (CTF) regulations), or to assist in law enforcement and investigations conducted by any governmental and/or regulatory authority;

(f) where it is strictly necessary (i.e. to protect the vital interests of the users or other natural persons, to fulfill the purpose of public interest, or to pursue our reasonable interests);

(g) security purposes, e.g. to monitor and detect suspicious activities, to protect users from fraudulent activities, to protect our Services, users' accounts, and archives from unauthorized access or usage, to prevent damage to our Services and systems, and to protect against automated abuse such as spam, and phishing;

(h) communicating with you (through messages, emails, live chats or otherwise) and assisting you with your queries, requests, applications, complaints and feedback;

(i) resolving any disputes or legal claims, investigating any complaint, claim or dispute or any actual or suspected illegal or unlawful conduct;

(j) administrative purposes, including finance, IT and HR purposes, quality assurance and staff training, and compliance with internal policies and procedures, including audit, accounting, risk management and record keeping;

(k) carrying out research and statistical analysis, including development of new products and services or evaluation, and improvement of our existing Services (including but not limited to, gaining better understanding of users' needs and behaviors, diagnosing any problems with our server, and quality assurance);

(l) performing data analytics and related technologies on data, to enable us to deliver relevant content and information to you, and to improve our websites and digital platforms (e.g. ensuring that content from our Services are presented in the most effective manner for you and for your computer);

(m) managing and engaging third parties, data processors or subcontractors that provide services to us, e.g. IT services, technological services, delivery services, and other professional services (e.g. accountants, lawyers and auditors);

(n) such purposes that may be informed to you when your personal data is collected; and/or

(o) any other reasonable purposes related to the aforesaid.

Subject to the terms of this Privacy Policy, we shall not use or process your personal data for purposes other than the purposes stipulated in this Privacy Policy without your prior consent. Where your personal data is used for a new purpose and where required under applicable law, we shall obtain your consent. We may collect, use, disclose and process your personal data for other purposes, without your knowledge or consent, only where this is required or permitted by law.

We may, if necessary or required by law, provide your personal data to law enforcement agencies, regulatory organizations, courts or other public authorities. Where appropriate, we will attempt to notify our customers about legal demands for their personal data. You agree that we may not be able to do so if such notification is prohibited by law or court order, when the request is an emergency, or when the burden or expense of notifying the customers would be unreasonable to us. We may dispute such demands when we believe that the requests are disproportionate, vague or lack proper authority, but we do not promise or undertake to challenge every demand.

2.2. Marketing purposes

In order for us, or for authorized third parties permitted by us, to market or advertise products, events, and/or services that are of specific interest and relevance to you, we may analyze, use, process and/or rely on your personal data provided to us, or data collected from your interactions with us. However, no marketing or advertising, using your personal data in non-aggregated and/or identifiable form would be carried out unless you have provided us with your consent to use your personal data for such marketing or advertising purposes. If you do not want us to use or process your personal data for the purposes of marketing or advertising, you can withdraw your consent at any time by contacting us. You can exercise your right to prevent such use or processing by checking certain boxes on the forms we use to collect your personal data. If you are an existing customer, we will only contact you by electronic means (e-mail or SMS or other means) with information about goods and services similar to those which were the subject of a previous sale or negotiations of a sale to you, subject to your consent. If you are a new customer, and where we permit selected third parties to use your data for marketing or advertising purposes, we (or they) will contact you by electronic means only, subject to your consent.

2.3. Legitimate business interests

We may also collect, use, disclose and process your personal data for the following purposes to safeguard, support and/or carry out our company’s legitimate business interests such as:

(a) processing of personal data for the purposes of our daily operations including billing and debt collecting;

(b) managing our business and relationship with you (e.g. accurately carrying out and confirming your instructions, or for the purposes of providing you with rebates and other benefits), and providing services to our customers;

(c) assistance of carrying out corporate restructuring plans;

(d) protecting our rights and interests, and those of our customers (e.g. processing of your data for the protection of the company’s legal position in the event of legal proceedings);

(e) processing for the purpose of reporting possible criminal acts (e.g. fraud) or threats to public security to competent authorities;

(f) enforcing our terms and conditions, and obligations owed to us, or protecting ourselves from legal liability;

(g) managing our investor and shareholder relations;

(h) complying with internal policies, procedures, and operations, including troubleshooting, data analysis, testing, research, statistical and survey purposes; and/or

(i) process or share your personal data to facilitate acquisitions, mergers, or transfers of our business.

3. **Storing of data**

3.1. Where we store your personal data

The security of your personal data is our top priority. We shall take care in implementing and maintaining the security of our services and Services, as well as that of your personal data. We employ procedures and policies that incorporate industry best practices to ensure the integrity of your personal data and to prevent instances of unauthorized use.

Please note that it is impossible to fully guarantee the security of your personal data. While we take reasonable steps to safeguard your personal data in our possession or under our control, you agree not to hold us liable or responsible for any loss or damage resulting from any unauthorized or unintended access that is beyond our control (e.g. hacking or cybercrimes), or abuse of your information. We recommend that you take independent safety precautions to protect your personal data, particularly your credential information such as your username and password. You hereby agree that we shall not be liable for any information leakage and other losses not caused intentionally or otherwise by our gross negligence, including, but not limited to, hacker attacks, power interruptions, or unavoidable technical failures. For the avoidance of doubt, we do not make any warranty, guarantee, or representation that your use of our systems or Services is safe and protected from malware, and other vulnerabilities. We also do not guarantee the security of data that you choose to send us electronically. Sending such data is entirely at your own risk.

3.2. For how long will your data be stored?

We will process and store your personal data for as long as it is necessary in order to fulfill the purposes we collected it for, and to satisfy our business, contractual, legal, regulatory and/or statutory obligations (including audit, accounting or reporting purposes). We may thus be required to retain certain information, including personal data or information of users, users' profiles, identification verification materials, information relevant to AML/KYC/CTF procedures, account information, account agreements, and other agreements between us and third parties, account statements, and other records, for an extended period of time.

We will assess and respond to requests to delete personal data and we shall accordingly delete personal data provided that the personal data is no longer required in order to fulfill our business, contractual, legal, regulatory and/or statutory obligations, or the fulfillment of any obligations to preserve records according to applicable laws and regulations.

In general, how long we keep your personal data depends on the nature of the data, e.g. we keep personal data for at least the duration of the limitation period for bringing claims if the personal data may be required to commence or defend legal proceedings. Some information may also be retained for longer e.g. where we are required to do so by law.

3.3. Anonymized data

In some circumstances, we may anonymize and/or aggregate your personal data so that it can no longer be associated with you, in which case we are entitled to retain and use such data without restriction.

4. **Disclosure of your personal data**&#x20;

Your personal data may be made available, disclosed or shared to our related parties and/or within our group of companies in order to provide our Services to you, for management and compliance purposes, and to utilize shared group IT functions.

We may share, transfer, disclose, or allow access to your personal data to third parties in connection with the purposes described in Clause 2, including without limitation the purposes described below:

(a) to administer or process a transaction, or services you have authorized or requested, or in the context of facilitating the execution of a transaction;

(b) to facilitate or otherwise enable the sale of tokens (or other products) or any other activity on the Services which you choose to participate in, including the provision of your personal data to the third party entities to comply with applicable legal, regulatory, compliance or statutory requirements (e.g. AML/KYC/CTF procedures);

(c) to carry out or aid in certain functions during the account opening, updating and/or maintenance process, such as, but not limited to, account processing, surveillance, reconciliation, execution, document retention requirements, and document dissemination;

(d) to process payments which you have authorized (e.g. disclosure to financial institutions that we have partnered with);

(e) to operate and/or improve our Services;

(f) if we are discussing selling or transferring part or all of our business, to a purchaser of our business. The information may be transferred to prospective purchasers under suitable terms as to confidentiality;

(g) if we are reorganised or sold, information may be transferred to a buyer who can continue to provide the Services and related services to you;

(h) to facilitate account closing where you have a deficient balance, or upon excessive instances where you do not have sufficient funds in your account;

(i) to third parties that provide services to us, such as, but not limited to, data providers, technology providers, consulting, sales, client support operations, payment processing, authentication services, professional services (including accountants, lawyers and auditors), and technical support or services;

(j) to third parties in order to fulfil such third party products and/or services as may be requested or directed by you;

(k) if we are defending a legal claim your information may be transferred as required in connection with defending such claim;

(l) to law enforcement agencies, authorities, public agencies and government officials, or other third parties when we are compelled to do so by a subpoena, court order, or similar legal procedure, or when we believe in good faith that the disclosure of personal data is necessary to prevent physical harm or financial loss, to report suspected illegal activity or to investigate violations of any of our terms and conditions, or any other applicable policies; and

(m) other circumstances under which we may disclose your personal data such as:

i. to comply, as necessary, with applicable laws and regulatory requirements;

ii. respond to mandatory legal or governmental requests or demands for information;

iii. meet national security requirements;

iv. enforce our agreements, policies, procedures and/or Terms and Conditions;

v. protect ourselves, our affiliates, our users, our counterparties or the general public from illegal activities; and

vi. to respond to an emergency that requires disclosure of your personal data.

You may freely opt-out of having your personal data shared with third parties (or for any of the above listed purposes), or from allowing us to use your personal data for any purpose that is incompatible with the purposes for which we originally collected or subsequently obtained your authorization as stipulated in this Privacy Policy. Please contact us if you wish to opt-out.

We will ensure that all companies and/or third parties to whom we disclose your personal data will only process it in accordance with our instructions and on our behalf. We will, where appropriate and permissible, enter into contracts with these third parties to protect your personal data in a manner that is consistent with all applicable laws. All such companies and third parties will be required by us to meet the requirements of applicable data protection legislation and our strict privacy and retention policies to keep your personal data secure at all times.

5. **Transfer of Personal Data to other countries**

You agree and acknowledge that we may transfer your personal data to different jurisdictions in connection with the purposes described in this Privacy Policy:

(a) from the jurisdiction where it is collected (or where you are located) to any other jurisdictions that we operate in; and

(b) to third parties in other jurisdictions.

When we transfer your personal data internationally and where required by applicable law, we will put in place appropriate safeguards. You may obtain details of these safeguards by contacting us.

6. **Third-Party Collection of Personal Information**

Our Services may contain links to other websites or platforms that are not owned or maintained by us. These links are provided only for your convenience. You may also be accessing our Services through third party websites and/or platforms. This Privacy Policy only applies to our Services. When visiting third party websites or using their platforms, their privacy policies apply to their collection, use or disclosure of the personal data you disclose to them. For each token project listed on the Services, the privacy policy of the respective third party behind each token project will apply. You must confirm that you are agreeable to the privacy policy of the relevant third party before proceeding further with any token project.

You hereby acknowledge that we shall not be responsible for the products, services, or descriptions of products or services that you receive from these third-party websites or platforms, token projects listed on the Services or to the content or privacy practices of those websites, platforms or token projects. This Privacy Policy shall not be applied to any such third-party products and services that you access through our Services. You knowingly and voluntarily assume all risks of using such third-party websites or platforms to purchase products and services, and you agree that we shall have no liability whatsoever concerning such third-party websites or platforms and your usage of them.

7. **Your rights**

Depending on the jurisdiction that you are in or where we operate, you may enjoy certain rights under applicable law in relation to our collection, use, disclosure and processing of your personal data. Such rights may include:

**(a) Access**: you may ask us if we hold your personal data and, if we are, you can request access to your personal data free of charge. This enables you to receive a copy of and information on the personal data we hold about you;

**(b) Correction**: you may request for the rectification or correction of your personal data that is incomplete or inaccurate;

**(c) Restriction**: you may withdraw consent for our use or process of your personal data, or ask us to suspend the process of your personal data (e.g. if you want us to establish its accuracy);

**(d) Objection**: where we are processing your personal data based on a legitimate interest (or those of a third party), you may object to processing on this ground;

**(e) Portability**: you may request for the transfer of your personal data to another party under certain circumstances; and

**(f) Erasure**: you may request the erasure, deletion or removal of your personal data that we hold about you in certain circumstances.

If you wish to exercise any of your rights, you may contact us at <hi@ramper.xyz>. We may require that you submit certain forms or provide certain information to process your request. Where permitted by law, we may also charge you a fee to process your request.

We may be permitted under applicable laws to refuse a request, for example, we may refuse (a) a request for erasure where the personal data is required for in connection with claims; or (b) an objection request and continue processing your personal data based on compelling legitimate grounds for the processing.


# About Ramper Wallet

⭐ Ramper Wallet is currently available on both the web extension (Chrome) and mobile app (iOS/Android). 🔥 Coming soon: Ramper Wallet for Firefox, and Microsoft Edge

## What is Ramper Wallet?

Ramper stands as the go-to digital channel for transitioning from Web2 to Web3.&#x20;

Initially developed by a high-profile team with backgrounds from Tesla, Facebook, Uber, Apple, and Google, Ramper was constructed and continues to be built for its speed, security, and reliability.

As "empower progress" is at the heart of Ramper's mission, we offer DeFi infrastructure and loyalty solutions, empowering businesses and communities to not just access but thrive in the open economy. With a forward-thinking vision, Ramper embraces the power of Web3 utilities to fuel the growth of value within communities, encouraging bold and borderless creativity in humans.

## Why Ramper Wallet?

### ⚡ Fast & Keyless Onboarding&#x20;

Say goodbye to the complexities of seed phrases and private keys. With Ramper Wallet, you can effortlessly access all your digital assets using your preferred social accounts and gain instant access to your crypto holdings and NFTs within seconds. It's as simple as logging in, and voila, completely keyless!

Plus, no existing wallet? No problem! Ramper welcomes everyone with open arms.

### 🔗 Multi-chain Accessible&#x20;

Ramper supports a wide range of blockchain networks, giving you the freedom to manage various cryptocurrencies all in one place.&#x20;

<figure><img src="/files/vLVT4jkagPXcuOCOHkrG" alt=""><figcaption><p>Supported Networks</p></figcaption></figure>

Plus, we're continuously expanding our supported chains, providing you access to an even broader spectrum of digital assets.

### 💫  Easy To Use&#x20;

Ramper Wallet is designed to simplify your digital life. With Ramper's intuitive interface and user-friendly functionalities, navigating and managing your digital assets has never been simpler.&#x20;

<figure><img src="/files/c0Q3soTFngCnQWTT8t5r" alt=""><figcaption><p>Intuitive Interface</p></figcaption></figure>

Whether you're a seasoned pro or new to the crypto world, Ramper provides a hassle-free experience for everyone.

### 🛡️ Robust Security&#x20;

Ensuring security is our top priority when it comes to managing your assets.

With our state-of-the-art Restorative Performant Multi-encryption System (RPMS), you can rest easy knowing that your treasures are safeguarded.&#x20;

<figure><img src="/files/HWu988MtQ4VC00dNy593" alt=""><figcaption><p>Restorative Performant Multi-encryption System (RPMS)</p></figcaption></figure>

Ramper employs the latest advancements in encryption technology, ensuring that only you have control over your assets and providing peace of mind in an increasingly digital world.

### ✨ Versatile Compatibility&#x20;

Ramper provides comprehensive support across multiple platforms including iOS, Android, and Chrome, ensuring a seamless experience. Soon, Ramper Wallet will also be available for Firefox and Microsoft Edge.

Access your digital assets and explore Web3 with ease as Ramper empowers your digital economy journey, regardless of your device or OS.

## Get Ramper Wallet now

Experience the convenience, security, and growth potential of Ramper Wallet as you simplify your digital life and embrace the future of finance.

📱 **iOS**: <https://ramper.link/download-ios>

📱 **Android**: <https://ramper.link/download-android>

💻 **Chrome** **Extension**: <https://ramper.link/download-chrome><br>


# User Guides


# Authentication

This article will guide you on:

* [How to Setup Password?](#id-ug-authentication-howtosetuppassword)
* [How to Lock wallet?](#id-ug-authentication-howtolockwallet)
* [How to Unlock wallet?](#id-ug-authentication-howtounlockwallet)

## How to Setup Password? <a href="#id-ug-authentication-howtosetuppassword" id="id-ug-authentication-howtosetuppassword"></a>

To ensure the security and privacy of your account. When installing the Ramper wallet and launching it for the first time you need to set up a password.

**Step 1: Install** Ramper wallet and **launch** it for the first time

**Step 2:** On the "Get Started" screen, choose a theme to begin using the app.

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

Click **Continue** → You will be redirected to the setup password process

**Step 3:** Enter your desired password in the "Password" and "Confirm Password" fields.\
**Step 4**: Tick the checkbox to confirm that you have read, understood, and agree to abide by Ramper's Terms of Service and Privacy Policy.\
**Step 5:** Click **Create Password** to generate your password and proceed to the chosen process.

<figure><img src="/files/yKoIPy0DeDyzKbs8gH61" alt="" width="375"><figcaption><p>Set up password</p></figcaption></figure>

## How to Lock wallet? <a href="#id-ug-authentication-howtolockwallet" id="id-ug-authentication-howtolockwallet"></a>

For added security, you can lock the wallet when it's not in use or if it remains inactive for a while, it will be automatically locked.\
**Step 1:** Access the Ramper wallet successfully.\
**Step 2:** On the home screen, click the lock icon. Alternatively, the wallet will lock automatically after 15 minutes of inactivity.

<figure><img src="/files/V6fHD0JcfmmqZ3xD1NYC" alt="" width="375"><figcaption><p>Lock wallet</p></figcaption></figure>

→ Once the wallet is locked, you'll be redirected to the **Unlock Wallet** screen.

## How to Unlock wallet? <a href="#id-ug-authentication-howtounlockwallet" id="id-ug-authentication-howtounlockwallet"></a>

When the Ramper wallet is locked, you'll need to unlock it to gain access.\
Pre-condition: The wallet is locked.\
**Step 1:** Successfully create a wallet and open it.\
**Step 2:** Enter your password.

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

**Step 3:** Click **Unlock Wallet** to access your wallet.


# How to send NFTs

Here's how you can send an NFT:

**Step 1:** From the home screen, click on the **NFTs** tab.

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

**Step 2:** Select the NFT you want to send to view its details, then click the **Send** option to initiate the transaction.

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

**Step 3:** Input the recipient's address using one of these methods:

* Manually enter the recipient's address.
* Click on the contact icon to select a wallet available in Ramper (only wallets other than the sending wallet will be displayed).
* Click the "Paste" button to paste an address copied to your clipboard.

After inputting the recipient's address, click "Review."

{% hint style="info" %}
**Notes:** Ensure that you have enough tokens to cover the [gas fee](/ramper-wallet/user-faqs/what-is-gas-fee).
{% endhint %}

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

**Step 4:** Click **Confirm** to authorize the NFT transaction.

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

Once the transaction is confirmed, you will be redirected to a page displaying transaction details.


# How to sign in to a new account

## How to sign in to a new account? <a href="#how-to-sign-in-to-a-new-account-in-my-wallet" id="how-to-sign-in-to-a-new-account-in-my-wallet"></a>

Before you get started, please ensure you have an active social media account (e.g., Facebook, Google, Apple) that you intend to use for logging in.

**Step 1: Accessing the Login Page**

* Open the application on your device.
* On the login page, locate and select the "Login" option.

<figure><img src="/files/CMZ2bDfdsMi3RyDUlQRx" alt="" width="375"><figcaption><p>Login page</p></figcaption></figure>

**Step 2: Choosing the Social Account**

* On the login page, you'll find various options for signing in.
* Choose the social media platform you prefer for authentication (e.g., Facebook, Google, Apple).

**Step 3: Authorizing Access**

* You will be redirected to the login page of the selected social media platform.
* If you're not already logged into your social media account, you'll be asked to enter your social media credentials (username and password).
* After entering your credentials, review the permissions requested by the Ramper wallet. These typically involve accessing your profile information and email address. Make sure you're comfortable with these permissions.
* Click or tap the "Sign In" button on the social media platform's page to grant access to your social account.

<figure><img src="/files/WFzZ2c3IITSNlYAL8CcW" alt="" width="375"><figcaption><p>Home screen</p></figcaption></figure>

## How to switch wallets? <a href="#id-ug-signinnewaccountintowallet-howtoswitchwallets" id="id-ug-signinnewaccountintowallet-howtoswitchwallets"></a>

Ramper Wallet supports multiple wallets, allowing users to switch between them with ease. Follow these simple steps:

**Step 1: Accessing the Wallet Section**

* On the home screen of Ramper Wallet, click on the "Wallet" section located at the top left corner.

**Step 2: Selecting the Desired Wallet**

* Within the "My Wallets" page, choose the wallet you wish to switch to.

<figure><img src="/files/X6uBoK0uVmU4IRceWivb" alt=""><figcaption><p>Switch wallets</p></figcaption></figure>


# Wallet settings

We have introduced the "Wallet Settings" feature to empower users with the ability to back up their passphrases, manage connections, or sign out of their wallets.

## How to Backup Passphrase? <a href="#id-ug-walletsettings-howtobackuppassphrase" id="id-ug-walletsettings-howtobackuppassphrase"></a>

**The passphrase** must be saved in a safe place when users create wallets on Ramper Wallet.

The passphrase should always be kept in a secure location when users create wallets on Ramper Wallet. However, if users can't recall their passphrase, it can be retrieved by following these steps:

**Step 1:** From the home screen, select the **Wallet** section located at the top left corner.

**Step 2:** On the right corner of the wallet you want to access, click on the "Settings" icon.

**Step 3:** Choose **Backup Passphrase**.

**Step 4:** Click **Backup** to reveal the passphrase of the wallet.

## How to Revoke Connection? <a href="#id-ug-walletsettings-howtorevokeconnection" id="id-ug-walletsettings-howtorevokeconnection"></a>

**How to Revoke Connection:** We've implemented the "Revoke Connection" feature to ensure that connected websites or Dapps no longer retain access to your wallet address. Follow these steps:

**Step 1:** From the home screen, select the **Wallet** section at the top left corner.

**Step 2:** On the right corner of the wallet you want to manage, click on the "Settings" icon.

**Step 3:** Opt for **Manage Connections** and then select a specific connection. Click the "✖️" icon to revoke that specific connection. Alternatively, choose **Revoke all connections** to revoke all of them.

**Step 4:** Click **Revoke** to complete the process.

## How to Signout Wallet? <a href="#id-ug-walletsettings-howtosignoutwallet" id="id-ug-walletsettings-howtosignoutwallet"></a>

**Step 1:** Accessing the Sign-Out Option

* To log out of your wallet, go to the wallet settings within the application, typically located in the upper-left corner of the screen.
* Look for the **Sign Out** option and click or tap it.

**Step 2:** Confirming Sign-Out

* A confirmation message will appear, asking for confirmation of your decision to sign out.
* Confirm your choice.

You have now successfully signed out of your wallet. For security purposes, it is advisable to log out whenever you finish using the wallet, especially when using shared or public devices.

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


# How to Send & Receive tokens

## How to Receive tokens? <a href="#szn1hsynb0b7" id="szn1hsynb0b7"></a>

Receiving tokens is straightforward and can be done by displaying or copying the receiving address. Follow these steps:

**Step 1:** On the home screen, click **Receive**.

**Step 2:** Choose the specific token for which you want to receive funds.

**Step 3:** You have two options:

* Click **Copy Address** to copy the wallet address to your clipboard.
* Scan the QR code to obtain the wallet address.

![](/files/7E4I4HeWgsmwqdKdFTQm)

## How to Send tokens? <a href="#id-4gpsurwo5p79" id="id-4gpsurwo5p79"></a>

We provide users with the ability to send a chosen amount of tokens to a specific wallet address through the Ramper wallet. Here's how:

**Step 1:** Access the Ramper wallet.

**Step 2:** Click **Send**, then choose a specific token from the options available.

![](/files/UBSqSn6EMT23KuAsFHfw) ![](/files/QTZflREMKfKWdMTZVuBF)

**Step 3:** Input the desired token amount, then click **Next**.

<img src="/files/EKJxDCzAhx90rCZS8X28" alt="" width="375">

{% hint style="info" %}
**Note:** Please ensure you have enough tokens to cover the [gas fee](/ramper-wallet/user-faqs/what-is-gas-fee).
{% endhint %}

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

If your account balance is insufficient or if the recipient's address is incorrect, you will receive an error message stating **"Insufficient balance."**

<img src="/files/nakwJ3Q94rNf6BDNNhPx" alt="" width="375">

**Step 4:** Input the recipient's address using one of the following methods:

* Manually enter the recipient's address (ensure it's a valid address).
* Click on the contact icon to select a wallet available in Ramper (only wallets other than the sending wallet will be shown).
* Click the **Paste** button to insert an address copied to your clipboard.\
  After completing this step, click **Review**.

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

* **Step 5:** Click **Confirm** to authorize the transaction.

<img src="/files/1eHYrj5MjrIGHhvNV9hz" alt="" width="375">

* Once the transaction is confirmed, you will be redirected to a page displaying transaction details.

<img src="/files/Savr0HDpcGuxI4thhkys" alt="" width="375">


# How to add custom tokens

## How to add a custom token? <a href="#id-ug-addcustomtoken-howtoaddcustomtoken" id="id-ug-addcustomtoken-howtoaddcustomtoken"></a>

We have introduced the "Add Custom Token" feature, allowing users to input new tokens for interaction. Here's how you can do it:

**Step 1:** From the home screen, click on "Add Custom Token."

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

**Step 2:** Input the necessary information in the following fields:

* **Contract Address:**
  * Enter the contract address of the token you want to add.
* **Name:**
  * If the token data is available in the system, this field may be auto-filled with the token name. If not, you can manually input the token name.
* **Symbol:**
  * Similar to the name, if the token data is available, the symbol field may be auto-filled. If not, enter the token symbol manually.
* **Decimals:**
  * Enter the number of decimals for this token.
* **Icon URL (optional):**
  * If available, you can provide the URL for the token's icon.

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

\
**Step 3:** **Step 3:** After entering the required information, click the "Add" button.

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

Congratulations! The custom token has now been successfully added. You can check your wallet to view the newly added tokens. The system will take you to the home screen where you can see and interact with your tokens.


# Manage Tokens

## How to hide/show a token? <a href="#id-ug-managetokens-howtohide-showtokens" id="id-ug-managetokens-howtohide-showtokens"></a>

The "Manage Tokens" feature empowers users to customize their wallets by hiding or showing tokens. Here's how:

**Step 1:** Navigate to the home screen and locate the custom icon.

<figure><img src="/files/ScT9LVlYnHk2TmArdYgb" alt="" width="362"><figcaption></figcaption></figure>

**Step 2:** Use the toggle switch to either hide or show a particular token.

* Turn the toggle on to hide the token.
* Turn the toggle off to show the token.
* You can also click "Hide All" to hide all tokens at once, or "Show All" to display all tokens.<br>

<figure><img src="/files/4k7mWxU8UH3uXY8U59vJ" alt="" width="375"><figcaption><p>Manaanage Token</p></figcaption></figure>

Once a token is hidden, it will no longer be visible in the Token tab.

## How to remove a token? <a href="#id-ug-managetokens-howtoremovetoken" id="id-ug-managetokens-howtoremovetoken"></a>

This feature specifically allows for the removal of custom tokens.&#x20;

On the **Manage Tokens** screen, click the delete icon next to the specific token you wish to remove.

<figure><img src="/files/hPsAD0eq17i5ClAcl4vO" alt="" width="377"><figcaption></figcaption></figure>

After removing the custom token, it will no longer appear in the Token tab, effectively removing it from your wallet's view.


# General settings

We've developed a 'General Settings' feature that empowers users to personalize their wallet experience. Within this feature, users can choose to hide small balances, switch themes, update passwords, and adjust network settings as needed.

## How to change themes? <a href="#id-ug-generalsettings-howtochangethemes" id="id-ug-generalsettings-howtochangethemes"></a>

Ramper Wallet offers users the flexibility to change themes, allowing for both dark and light modes. Here's how you can switch between themes:

**Step 1:** On the home screen, click the **Discover tab**

<figure><img src="/files/4ju6cw0KXTddCPcMdSdT" alt="" width="241"><figcaption></figcaption></figure>

**Step 2:** Navigate to **General** and then toggle the **Dark Mode** switch to enable the dark theme or disable it to switch to the light theme.

<figure><img src="/files/LosATw4wTeSIo6qo1b32" alt=""><figcaption><p>Setting Theme</p></figcaption></figure>

## How to change your password? <a href="#id-ug-generalsettings-howtochangepassword" id="id-ug-generalsettings-howtochangepassword"></a>

Ramper Wallet allows users to change their password for added security. Here are the steps:

**Step 1:** On the home screen, access the **Discover** tab.

<figure><img src="/files/lamkZxKWCnDxdCOIZ5C3" alt="" width="362"><figcaption></figcaption></figure>

**Step 2:** Select **Security & Privacy** and then click on **Change Password**.

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

**Step 3**: Input your current password and click **Next**

*Note: Entering the wrong password 10 times will result in the system signing you out of all Ramper wallets for security reasons.*

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

**Step 4:** Enter your new password and confirm it, then click "Confirm" to finalize the password change.

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

## How to change network? <a href="#id-ug-generalsettings-howtochangenetwork" id="id-ug-generalsettings-howtochangenetwork"></a>

You can also change the network settings in Ramper Wallet to suit your preferences. Here's how:

**Method 1:**

**Step 1:** From the home screen, click on the network icon located in the top-right corner of the page.

**Step 2:** Select **Network**.

<div><figure><img src="/files/9mzyeEILe6DhrVNn9oha" alt="" width="563"><figcaption></figcaption></figure> <figure><img src="/files/b6PP8txdZ5HAkE201l53" alt="" width="563"><figcaption></figcaption></figure></div>

\
**Method 2:**

**Step 1:** Access the "Discover" tab on the home screen.

**Step 2:** Click on "Network," then choose a specific network to switch to.

<div><figure><img src="/files/zScBtuC1Wt4SgyErl69E" alt=""><figcaption></figcaption></figure> <figure><img src="/files/b6PP8txdZ5HAkE201l53" alt=""><figcaption></figcaption></figure></div>


# How to send assets via email

## 1. Tokens

### How to send tokens to existing emails

**Step 1:** Access Ramper Wallet.

**Step 2:** Click **Send**, then choose a specific token from the options available.

**Step 3:** Input the desired token amount, then click **Next.**

<div><figure><img src="/files/IIT1867cyJ5l4EWwS4uE" alt="" width="375"><figcaption><p>Home screen</p></figcaption></figure> <figure><img src="/files/Bbn61PXHoj3MNvgXF2xB" alt="" width="375"><figcaption><p>"Send" section</p></figcaption></figure> <figure><img src="/files/nyFBCypVVEb8VZNff0kn" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="info" %}
**Note: Please ensure you have enough tokens to cover the gas fee.**\
If your account balance is insufficient or if the recipient's address is incorrect, you will receive an error message stating ***"Insufficient balance"***.
{% endhint %}

**Step 4:** Input the recipient's email using one of the following methods (recipient emails that have been logged in Ramper Wallet)

* Manually enter the recipient's email address.
* Click on the contact icon to select a wallet available in Ramper (only wallets other than the sending wallet will be shown).
* Click the Paste button to insert an address copied to your clipboard.

<figure><img src="/files/ltDyaWPjUu0Yb3dERlem" alt="" width="188"><figcaption></figcaption></figure>

* If the email account is **not** a protected account, the system will **show the address** under the account
* If the email account is a protected account then the system will not show the address under the account and indicate that it is a **Protected Account**

<div><figure><img src="/files/v0vceW1Rvqk01kwEXflG" alt="" width="375"><figcaption><p>Not a Protected account</p></figcaption></figure> <figure><img src="/files/cQFqEVdklBrW8LhKAmJN" alt="" width="375"><figcaption><p>Protected account</p></figcaption></figure></div>

{% hint style="info" %}
The protected account's address is hidden from others. You can turn it on by going to the Settings section and then toggling the **Protected Account** option. [More details](/ramper-wallet/user-faqs/what-is-a-protected-account)
{% endhint %}

**Step 5:** Click **Confirm** to authorize the transaction.

Once the transaction is confirmed, you will be redirected to a page displaying transaction details.

<div><figure><img src="/files/IVkbsgGvVZFXp6bsvnEj" alt=""><figcaption></figcaption></figure> <figure><img src="/files/3WjsswKf13PekJ8ymNro" alt=""><figcaption></figcaption></figure></div>

### How to send tokens to new emails (unregistered emails) <a href="#id-ug-sendtokenviaemail-howtosendtokenstonewemails-unregisteredemails" id="id-ug-sendtokenviaemail-howtosendtokenstonewemails-unregisteredemails"></a>

**Step 1:** Input the recipient's email **(recipient emails that have not been logged in Ramper Wallet)**

* If the email is not logged in Ramper before, the system will show that this is an Unregistered Email
* The system will show the text “Unregistered Email” in red if:
  * The sender sends tokens that are not C98 or VIC.
  * The transaction is over 100$.
* **Step 2:** Click the **Review** button and then the **Confirm** button to complete the transaction.

{% hint style="info" %}
Currently, Ramper Wallet supports sending **only C98 and VIC on Viction** to unregistered emails with a maximum value of $100 per transaction.
{% endhint %}

<div><figure><img src="/files/hGuOTy6wDlF7HKJmqx3S" alt=""><figcaption></figcaption></figure> <figure><img src="/files/gn9vy8m2spAN9pqISCcU" alt=""><figcaption></figcaption></figure> <figure><img src="/files/iphXZhGYbbZQqZE4zNjt" alt=""><figcaption></figcaption></figure></div>

## 2. NFTs

### How to send NFT to existing emails

**Step 1:** From the Home screen, switch to the **NFT** tab then choose a specific NFT from the list.

**Step 2:** Click **Send**

<div><figure><img src="/files/DTP52EWKBlfnO7xEEkjo" alt=""><figcaption></figcaption></figure> <figure><img src="/files/4XOjrrbTZ0zdwSBLyNqa" alt=""><figcaption></figcaption></figure></div>

**Step 3:** Input an existing email in the **Send To** field

**Step 4:** Click "Confirm" to authorize the transaction.&#x20;

Once the transaction is confirmed, you will be redirected to a page displaying transaction details.

<div><figure><img src="/files/Rk8islTpflxLAefdMgkg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/UJhISdCLUnfYLKrU5zkQ" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Icuuvbgbvo1OBWlcAaMF" alt=""><figcaption></figcaption></figure></div>


# How to use Vault

This guide will walk you through the process of claiming tokens and how to switch wallets or networks in the Vault feature.

{% hint style="info" %}
Ramper's Vault currently supports the Viction network.&#x20;

More networks to come in the upcoming updates.&#x20;
{% endhint %}

### **How to Claim Tokens**

To claim tokens from Vault on the Viction Network, follow these steps:

**Step 1:** Log into your account on Ramper

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

**Step 2:** Navigate to the **Vault** section and locate the wallet that you want to claim.

<figure><img src="/files/cNiYsqaTPalIDyzALUym" alt="" width="188"><figcaption></figcaption></figure>

**Step 3:** Claim Tokens&#x20;

Select the schedule you wish to claim. Click on the **"Claim"** button. Follow the instructions on the screen to complete the claiming process.

<div><figure><img src="/files/DUNzhboMWp1jr6lcLZWy" alt="" width="375"><figcaption><p>Claim</p></figcaption></figure> <figure><img src="/files/BbgCNTvMKM1nMjW75Zil" alt="" width="375"><figcaption><p>Claimed successfully</p></figcaption></figure></div>

### How to switch wallets/networks?

In this Vault section, you can easily switch between wallets, and switch from one network to another.

Simply click on the top section where your wallet address is displayed, and choose the wallet/network you want to switch to from the available options.&#x20;

<div><figure><img src="/files/VYTw9u1fPW0AjGpGT2tf" alt="" width="328"><figcaption></figcaption></figure> <figure><img src="/files/juLXV1xx20gphivVOur4" alt="" width="375"><figcaption></figcaption></figure></div>


# How to send assets via OneID

**Step 1:** Access the Ramper wallet.

**Step 2:** Click **Send**, then choose a specific token or NFT from the options available.

<figure><img src="/files/3N2E6IhsYg2TIJWXzIie" alt="" width="188"><figcaption></figcaption></figure>

{% hint style="info" %}
**Note: Please ensure you have enough tokens to cover the gas fee.**

If your account balance is insufficient or if the recipient's address is incorrect, you will receive an error message stating "Insufficient balance."
{% endhint %}

<figure><img src="/files/g27TuAdhpd7a8WmMHVCh" alt="" width="188"><figcaption></figcaption></figure>

**Step 3:** Input the recipient's OneID using one of the following methods:

* Manually enter the recipient's OneID address.
* Click the **Paste** button to insert an address copied to your clipboard.

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

**Step 5:** Click **"Confirm"** to authorize the transaction.

Once the transaction is confirmed, you will be redirected to a page displaying transaction details.

<div><figure><img src="/files/kD3IzfUyBJMifg7xKtxk" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="/files/5EECzxppJ2vv0JwfkVOS" alt="" width="375"><figcaption></figcaption></figure></div>


# How to migrate accounts from Old version to New version

{% hint style="info" %}
Ramper Mobile Wallet has upgraded to the key management system V2 since **Version 2.0.0**. For users with existing accounts in the Old version (V1 system), migration to the New version (V2 system) before **December 31, 2024** is a must.

About Ramper V2 - Embedded Multi-Party Computation (EMPC), read more [HERE](https://ramper.link/ramper-v2-embedded-multi-party-computation-empc).
{% endhint %}

## How to migrate accounts

**Step 1:** Make sure your Ramper Wallet application is from **Version 2.0.0 or higher**

**Step 2:** Log out the account in **Old version**

* Click the card representing your account from Wallet home screen
* Click **Log out this account**

<figure><img src="https://github.com/user-attachments/assets/88273e72-a398-46e3-9e7d-748e5b222b65" alt="" width="563"><figcaption></figcaption></figure>

**Step 3:** Re-log in the same account

* Click the wallet icon at top right corner of home screen
* Click **Add wallet**
* Input the Email or choose Gmail/Facebook/Apple account as desired. Then authenticate to migrate -> All done!

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

* From **Wallet management** session or from the card at home screen, if your account is **without the label "Old version"**, this means you have successfully migrated your account to **New version**.

<figure><img src="https://github.com/user-attachments/assets/1cbc25e2-944d-4f51-b854-fb10759c7ef5" alt="" width="563"><figcaption></figcaption></figure>

**Step 4:** Operate with accounts in **New version** from now on.

{% hint style="warning" %}
For users who have initially logged in to Ramper SDK V1's clients (Cosmo, Paras, MusicFeast, etc), **with the same account, their NEAR wallet addresses in New version (V2 system) and in Old version (V1 system) will be different.**

Therefore, when logging in to Ramper Wallet:

* Firstly, they need to migrate their accounts by logging in choosing **New version**.
* Secondly, they **need to transfer their funds (if any) from Old-version Near wallet address to New-version one**. Ramper cannot transfer funds on behalf of users as we don't have access to their accounts or funds.
  {% endhint %}

<figure><img src="/files/BG1vUjebkG2cQ4hFMsL3" alt=""><figcaption><p>Log in choosing <strong>New version</strong> to migrate accounts</p></figcaption></figure>

<figure><img src="/files/1oFE00H0NKO6gNezR3a3" alt=""><figcaption><p>Send assets in Old-version NEAR wallet address to New-version one</p></figcaption></figure>


# User FAQs


# Which networks are supported on Ramper?

Ramper supports multiple blockchain networks.&#x20;

Currently, the following blockchains are supported on Ramper:

* TomoChain
* Ethereum
* Polygon
* BNB Smart Chain
* Solana
* Sei&#x20;

There will be more to come in the future. We believe it will align with your needs so feel free to let us know your desire, we definitely will include it in our consideration.&#x20;

<br>


# What social accounts can I use to log in to Ramper?

Ramper provides a convenient and secure way to access your crypto wallet. It designed the login system with ease of use, ensuring you can quickly and efficiently manage your cryptocurrencies without unnecessary complexity.&#x20;

Easily, you can choose the login method that best suits your preferences and simplifies the process of accessing your crypto wallet. For now, you can log in using well-known social platforms, such as:

* Google
* Facebook
* Apple
* Email accounts

[See how to log in to accounts](/ramper-wallet/user-guides/how-to-sign-in-to-a-new-account)


# What is the difference between a Password and a Passphrase?

In Ramper Wallet, the key distinctions between a Password and a Passphrase are:

**Password:** Your Password is primarily used as the key to unlock the application and access the wallet's user interface and features, functioning much like a digital key to open the front door of your wallet. Its main feature is to unlock the app and ensure the security and privacy of your account.

If you forgot your app's password, you can reset and set up a new password after installing the application.

**Passphrase:** is a sequence of 12 to 24 randomly generated, readable English words that serve to control access, enhance security, and enable wallet recovery when your main wallet access is compromised, primarily used for restoring your wallet.

This passphrase cannot be changed or regranted if it's lost. Your wallet will be managed by Passphrase, anyone who has your passphrase can access your wallet. Please save it in a safe place and do not share it with anyone.

<br>


# Zero-gas transactions

In Ramper Wallet, users can enjoy sending **VRC25 tokens** on the **Viction network** without worrying about gas fees.

It means that when sending a VRC25 token, users don't need to have VIC in their wallet to pay for the network fee.&#x20;


# Does Ramper hold my funds?

No! Ramper does not hold your funds.

Ramper offers users a friendly platform, where you can send/receive the tokens/NFTs on the same blockchain network. Ramper has absolutely no control over your assets, however, you do have full ownership over your private keys and assets.

Please carefully save your wallet’s key and your social media account's credentials to avoid risks, such as your phone being tapped, stolen, or losing private keys.<br>


# Can I import my wallet from Ramper to another Web3 wallet?

Ramper now supports exporting Passphrase, so you can import your wallet to other Web3 wallets like Coin98, Metamask, etc. by using Passphrase.&#x20;

You can export Passphrase on Ramper by following the steps below:

**Step 1:** From the home screen, select the **Wallet** section located at the top left corner.

**Step 2:** On the right corner of the wallet you want to access, click on the **Settings** icon.

**Step 3:** Choose **Backup Passphrase**.

**Step 4:** Click **Backup** to reveal the passphrase of the wallet.

<br>


# Can I import my wallet to Ramper?

Ramper does not support the import feature at the moment. You can create a new wallet on Ramper with a social account and transfer your assets to this wallet.


# Why can't I see my assets?

Your assets can be displayed on Ramper only if the following conditions are met:

* You're using the correct wallet linked to your social media account,
* Ramper supports your token/NFT.

If your tokens still are not visible, this is most likely due to one of the reasons below:

1. **Bad internet connection:** We recommend you check the wifi or cellular connection.
2. **Not using the latest version:** Please update to the latest version
3. **Unstable RPC:** Please wait for the RPC to become more stable
4. **Hidden token:** kindly check the hidden token section to see if your token is hidden
5. **Unsupported token:** if you accidentally send a non-supported token to your wallet on Ramper, your tokens may not be visible within Ramper. You can try adding the token using the Custom Token feature.&#x20;
6. **Inactive blockchain:** check if the corresponding blockchain is activated on Ramper
7. **Bug issue:** Please wait for the dev team to update/ fix the problem or report the issue to us for support.

{% hint style="info" %}
Check all the possibilities but your balance is still not displayed properly? --> Contact us for support and beware of scammers!
{% endhint %}


# What is gas fee?

## What is gas fee?

Gas Fee is a type of transaction fee that you have to pay for the network to execute a transaction.

If you want to run 10km, you need to fill 0.5 liters of gasoline costing 9000 VND. Similarly, in blockchain and crypto, if you want to transfer 1000 ETH to another wallet on the Ethereum network, you need gas to conduct the transaction ⇒ This gas will be converted into ETH for you to pay.

## **Gas Fees on Blockchains**

You will pay the Gas Fee with the coins of the blockchain you are transacting on. This means that depending on different blockchain platforms, Gas fees are also calculated in different units.&#x20;

For example:

* BNB for transactions on BNB Smart Chain,
* SOL for transactions on Solana,
* MATIC for transactions on Polygon, etc.

{% hint style="info" %}
This fee is charged by the blockchains, not Ramper. Ramper does not control gas fees nor profit from them.
{% endhint %}


# Can I get my assets back if I send them to the wrong addresses?

Unfortunately, crypto transactions are irreversible. Once the transactions are initiated, they cannot be canceled or reversed, due to the nature of crypto.&#x20;

Therefore, please be cautious when making transactions on blockchains. It is very important to double-check all the information including the receiving wallet address to prevent unwanted outcomes.&#x20;

If you sent funds to the wrong address, please try to reach out to the receiving platform and ask for their support in returning the funds if they can help.&#x20;

<br>


# I forgot the password of my social accounts. How can I access my funds on Ramper?

If you forgot your social account's password (such as your Facebook password, email password, etc.) and are unable to access your funds, you can refer to the following options:

* Recover your Ramper account through your linked social media account. Follow the guide steps of the corresponding platform to recover your account or reset the password when prompted.
* Use the passphrase to import into another wallet.


# What happens if my social account is compromised?

If your Google account, Facebook account, Email account, or Apple account is compromised, securing your social account first is the most important thing.&#x20;

Your assets are tied to your wallet, not your social accounts so if you still keep the wallet's passphrase, you can always restore your wallet on other crypto wallets like Coin98, Metamask, TrustWallet etc by using passphrase. Following this, you can transfer your assets to the new wallet to ensure the safety of your assets.

Ramper offers assistance in disconnecting your social account from the wallet, preventing hackers from accessing your wallet through your social account. However, to proceed with this process, you must provide evidence to confirm your ownership of the social account.

{% hint style="info" %}
*How to contact Ramper for assistance? Check out* [*this article*](/ramper-wallet/user-faqs/i-cant-find-the-answer-to-my-question.-how-can-i-get-support)*.*
{% endhint %}


# Can I recover my wallet if I lose my social account?

Normally, a digital asset on the Defi platform can only be stored in an address (wallet) on the corresponding blockchain, which is created and managed by a passphrase. You need to back up the Passphrase in a safe place and not share it with anyone. Anyone who has the Passphrase will be able to access your wallet as well as the assets inside it.

Likewise, every wallet on Ramper is also created and managed by Passphrase. Moreover, to simplify management, Ramper allows you to access all your digital assets by using your preferred social accounts as wallets on Ramper will be linked to social accounts or emails. So you just need to log in with the account associated with the wallet you want to access without having to enter a passphrase.&#x20;

In case you lose your social account or you can't log in with your social account anymore, it does not mean that you will not be able to access your assets. As long as you keep the wallet's Passphrase, you can always restore your wallet on other crypto wallets like Coin98, Metamask, TrustWallet, etc by using a passphrase. Please note that the social account associated with your wallet is used only for logging in, not for recovering your wallet. In this situation, you also need to contact Ramper Support immediately to request deleting your account in Ramper to ensure the safety of your asset, so no one else can access your wallet via that account.

<br>


# Can I change the email that is associated with my wallet address?

Ramper does not support changing the emails associated with your wallets.&#x20;

In case you log in to Ramper using **social media accounts**: the email associated with your wallet is typically linked to your social media account. To change it, you'll need to update the email on your social media account.&#x20;

In any case, you may consider creating a new wallet with the new email and then transferring your assets from the current wallet to this new wallet.

<br>


# I can't find the answer to my question. How can I get support?

If you have any questions or problems that you can't find the answer to here, please reach out to the Ramper team to get further help:&#x20;

Email: <hi@ramper.xyz>

[Discord](https://discord.com/invite/FmxCnJwfca)

[Telegram](https://t.me/+i_14OfPmpQo1MjEx)

Facebook

<br>


# What is a Protected Account?

In Ramper Wallet, you can hide your wallet address from everyone by enabling the Protected Account feature.&#x20;

Simply go to Settings, then toggle the Protected Account option. After this, when someone inputs your email to send assets, your wallet address will be hidden from them, and the app will indicate that it is a protected account.

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


# I forgot the PIN code to log in to Ramper Wallet. How can I access my funds?

For security reasons, if you enter the wrong password 10 times a row, the system will sign you out of all wallets.

Given this information, if you forget your PIN code, you can enter the incorrect PIN 10 times, and then log in to Ramper Wallet again with your social accounts.&#x20;

Another approach would be deleting the Ramper app and then reinstalling it, then logging in again with your social accounts.


# Which email domains are blocked?

These following email domains are blocked from signing in and sending token to:

* Domains listed in [this Github](https://github.com/FGRibreau/mailchecker/blob/master/platform/clojure/mailchecker.clj)

<figure><img src="/files/50z52A2DaaiB4QHYt9Dg" alt=""><figcaption></figcaption></figure>

* And these specific domains

| <ul><li>tadipexs.com</li><li>minimail.gq</li><li>freeml.net</li><li>1655mail.com</li><li>iperfectmail.com</li><li>inboxkitten.com</li><li>altpano.com</li><li>anlubi.com</li><li>catdogmail.live</li><li>tadipexs.com</li><li>teml.net</li><li>drmail.in</li><li>revdex.ga</li><li>btzyud.tk</li><li>wifaide.ml</li><li>tagjus.cf</li><li>donymails.com</li><li>ofanda.com</li><li>odeask.com</li><li>woopros.com</li></ul> | <ul><li>ewebrus.com</li><li>googlemail.com</li><li>spymail.one</li><li>flymail.tk</li><li>mail1s.edu.vn</li><li>emailfree.cyou</li><li>emailao.cyou</li><li>email10p.cyou</li><li>tempmail1s.cyou</li><li>tempmail1s.icu</li><li>mail1s.icu</li><li>mail1s.cyou</li><li>coina.cyou</li><li>mail1s.top</li><li>mail10p.cyou</li><li>1smail.ga</li><li>1smail.cf</li><li>1smail.tk</li><li>conca.cf</li><li>conca.ga</li></ul> | <ul><li>cuoly.cf</li><li>cuoly.tk</li><li>ersteme.ml</li><li>ersteme.tk</li><li>googlevn.ga</li><li>googlevn.gq</li><li>hotemail.gq</li><li>sayohze.ga</li><li>sayohze.ml</li><li>skyoi.cf</li><li>skyoi.ml</li><li>skyoi.tk</li><li>tikktok.tk</li><li>tikktok.ga</li><li>yeuinta.ga</li><li>lovemark.ga</li><li>picachu.ga</li><li>sayohze.ga</li><li>skyoi.ga</li><li>hotmail.com</li></ul> |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


# Ramper Wallet (Extension) Integration


# EVM Dapp Integration

Integration

Welcome to Ramper Wallet Extension Developer Guide. This documentation contains guides for developers to get started developing Ramper Wallet on EVM networks

## Connect <a href="#connect" id="connect"></a>

### The easiest way to connect to Ramper Wallet <a href="#the-easiest-way-to-connect-to-ramper-wallet" id="the-easiest-way-to-connect-to-ramper-wallet"></a>

Check if the provider is `window.ramper2`, if not, please replace it with the exclusive Ramper Wallet provider `window.ramper2`.

For example, see below:

```
function getProvider() {
  const provider = window.ramper2;
  if (!provider) {
    return window.open('https://https://chrome.google.com/webstore/detail/ramper-wallet/nbdhibgjnjpnkajaghbffjbkcgljfgdi?hl=vi');
  }
  return provider;
}
```

**ChainID:**

| Hex  | Decimal | Network                   |
| ---- | ------- | ------------------------- |
| 0x1  | 1       | Ethereum (Mainnet)        |
| 0x58 | 88      | TomoChain (Mainnet)       |
| 0x38 | 56      | BNB Smart Chain (Mainnet) |
| 0x89 | 137     | Polygon (Mainnet)         |

Use `eth_chainId` or `net_version` to return the current network/chain ID

### To detect Ramper Wallet Extension <a href="#to-detect-ramper-wallet-extension" id="to-detect-ramper-wallet-extension"></a>

&#x20;

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

### To connect Ramper Wallet Extension <a href="#to-connect-ramper-wallet-extension" id="to-connect-ramper-wallet-extension"></a>

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

***

#### Access a user's accounts <a href="#access-a-users-accounts" id="access-a-users-accounts"></a>

We recommend providing a button to allow users to connect Ramper Wallet to your dapp. Selecting this button should call `eth_requestAccounts` to access the user's accounts.

```
//Alias for connection
window.ramper2.provider.request({method: 'eth_requestAccounts'});​
```

#### Handle accounts[​](https://docs.metamask.io/wallet/how-to/connect/access-accounts/#handle-accounts) <a href="#handle-accounts" id="handle-accounts"></a>

Use the `eth_accounts` RPC method to handle user accounts. Listen to the `accountsChanged` provider event to be notified when the user changes accounts.

```
// Connect & get accounts
window.ramper2.provider.request({method: 'eth_accounts'});
```

#### Switch chain <a href="#switch-chain" id="switch-chain"></a>

Requests that the Ramper Extension switches its active Ethereum chain.

```
window.ramper2.provider.request({
  "method": "wallet_switchEthereumChain",
  "params": [
    {
      "chainId": "0x58"
    }
  ]
});
```

&#x20;

### To disconnect Ramper Wallet Extension  <a href="#to-disconnect-ramper-wallet-extension" id="to-disconnect-ramper-wallet-extension"></a>

To disconnect Ramper Extension, please use:

```
window.ramper2.provider.disconnect()
```

## To experience functions <a href="#to-experience-functions" id="to-experience-functions"></a>

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

### Account <a href="#account" id="account"></a>

#### How to get Current Account <a href="#how-to-get-current-account" id="how-to-get-current-account"></a>

return `Promise<Array[String]>`

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

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

### Sign Transaction <a href="#sign-transaction" id="sign-transaction"></a>

{% hint style="info" %}
**Important**

`eth_signTypedData_v1`, and `eth_signTypedData_v3` are deprecated. We highly recommend users use `eth_signTypedData_v4` or `personal_sign`.
{% endhint %}

#### Personal\_sign <a href="#personal_sign" id="personal_sign"></a>

`personal_sign` provides a simple means to request signatures that are human-readable and don't require efficient processing on-chain. It's commonly used for signature challenges authenticated on a web server.

Ramper Wallet implements both `personal_sign` and `eth_sign`. You might need to check what method your supported signers use for a given implementation.

```
method: 'personal_sign', params: [msg, from],
```

#### eth\_signTypedData\_v4 <a href="#eth_signtypeddata_v4" id="eth_signtypeddata_v4"></a>

`eth_signTypedData_v4` offers highly legible signatures that can be processed efficiently on-chain. Adheres to the [EIP-712 ](https://eips.ethereum.org/EIPS/eip-712)standard, enabling users to sign typed structured data that can be confirmed on-chain.

```
const msgParams = JSON.stringify({
    domain: {
      chainId: 0x,
      name: 'Ether Mail',
      verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
      version: '1',
    },

    message: {
      contents: 'Hello, Bob!',
      attachedMoneyInEth: 4.2,
      from: {
        name: 'Cow',
        wallets: [
          '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
          '0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF',
        ],
      },
      to: [
        {
          name: 'Bob',
          wallets: [
            '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
            '0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57',
            '0xB0B0b0b0b0b0B000000000000000000000000000',
          ],
        },
      ],
    },
    
    primaryType: 'Mail',
    types: {
      EIP712Domain: [
        { name: 'name', type: 'string' },
        { name: 'version', type: 'string' },
        { name: 'chainId', type: 'uint256' },
        { name: 'verifyingContract', type: 'address' },
      ],
      Group: [
        { name: 'name', type: 'string' },
        { name: 'members', type: 'Person[]' },
      ],
      Mail: [
        { name: 'from', type: 'Person' },
        { name: 'to', type: 'Person[]' },
        { name: 'contents', type: 'string' },
      ],
      Person: [
        { name: 'name', type: 'string' },
        { name: 'wallets', type: 'address[]' },
      ],
    },
  ;

```

**Note:**

`Gas limit​` : is an optional parameter, since Ramper Wallet automatically calculates a reasonable gas price.

`chainid`: The chain ID is derived from the user's current selected network at `window.ramper2.provider.net_version`.

#### personal\_ecRecover <a href="#personal_ecrecover" id="personal_ecrecover"></a>

`personal_ecRecover` returns the address associated with the private key that was used to calculate a signature.

`method: 'personal_ecRecover', params: [message, signature],`

&#x20;

### Transfer <a href="#transfer" id="transfer"></a>

This method requires that the user has granted permission to interact with their account first, so please make sure to call `eth_requestAccounts` or `wallet_requestPermissions` first.

#### eth\_sendTransaction <a href="#eth_sendtransaction" id="eth_sendtransaction"></a>

return `Promise<hash>`

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

### Decrypt & Encrypt <a href="#decrypt-and-encrypt" id="decrypt-and-encrypt"></a>

#### eth\_decrypt <a href="#eth_decrypt" id="eth_decrypt"></a>

Requests that Ramper Wallet decrypt the specified encrypted message.

* The message must have been encrypted using the public encryption key of the specified Ethereum address.

return `Promise<string>`

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

#### eth\_getEncryptionPublicKey <a href="#eth_getencryptionpublickey" id="eth_getencryptionpublickey"></a>

Requests that the user share their public encryption key. Returns a public encryption key, or rejects if the user denies the request.

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

```
let encryptionPublicKey
window.ramper2.provider.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 <a href="#encrypt" id="encrypt"></a>

```
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'
  )
);
```

#### List of events <a href="#list-of-events" id="list-of-events"></a>

Currently, we only support some action events from the wallet extension

```
window.ethereum.on('event_name', callback);

​//Example

window.ramper2.provider.on('close', () => window.location.reload());

window.ramper2.provider.on('accountsChanged', () => window.location.reload());
```

| Events          | Trigger                                          |
| --------------- | ------------------------------------------------ |
| accountsChanged | Receive when active account changed in Extension |
| chainChanged    | Receive when active chain changed in Extension   |

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

<br>


# Sei Dapp Integration

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

### To detect Ramper Wallet Extension with Cosmos Base Chain <a href="#to-detect-ramper-wallet-extension-with-cosmos-base-chain" id="to-detect-ramper-wallet-extension-with-cosmos-base-chain"></a>

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

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

### To connect Ramper Wallet Extension <a href="#to-connect-ramper-wallet-extension" id="to-connect-ramper-wallet-extension"></a>

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

```
// Connect only
window.ramper2.cosmos.enable(chainId: string);
// Connect & get accounts
window.ramper2.cosmos.getKey(chainId: string);
```

Currently, chains support: \['`atlantic-2`','`pacific-1`']

### To disconnect the Ramper Wallet Extension <a href="#to-disconnect-the-ramper-wallet-extension" id="to-disconnect-the-ramper-wallet-extension"></a>

To disconnect Ramper Extension, please use:

```
window.ramper2.cosmos.disconnect();
```

### To experience functions <a href="#to-experience-functions" id="to-experience-functions"></a>

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

#### Get Current Account <a href="#get-current-account" id="get-current-account"></a>

If the webpage has permission and Ramper wallet is unlocked, this function will return the address and public key in the following format:

```
interface Key {
  name: string;
  algo: string;
  pubKey: Uint8Array;
  address: Uint8Array;
  bech32Address: string;
  isNanoLedger: boolean;
}

window.ramper2.cosmos.getKey(chainId: string): Promise<Key>
```

&#x20;

### Sign Amino: <a href="#sign-amino" id="sign-amino"></a>

Like `signAmino` method of CosmJS OfflineDirectSigner, however, Ramper’s `signAmino` function takes the chain-id as a required parameter. Signs Proto-encoded StdSignDoc.

```
interface SignOptions {
 // If set to true the wallet will not override fees specified in the signDoc.
  preferNoSetFee: boolean
}  

window.ramper2.cosmos.signAmino(chainId: string, signer: string, signDoc: StdSignDoc, signOptions?: SignOptions)
```

&#x20;

### Sign Direct: <a href="#sign-direct" id="sign-direct"></a>

Like `signDirect` method of CosmJS OfflineDirectSigner, however, Ramper’s `signDirect` function takes the chain-id as a required parameter. Signs Proto-encoded StdSignDoc.

```
interface SignDoc {
  bodyBytes?: Uint8Array | null;
  authInfoBytes?: Uint8Array | null;
  chainId?: string | null;
  accountNumber?: Long | null;
} 

window.ramper2.cosmos.signDirect(chainId: string, signer: string, signDoc: SignDoc)
```

&#x20;

### Sign Arbitrary: <a href="#sign-arbitrary" id="sign-arbitrary"></a>

```
signArbitrary(
    chainId: string,
    signerAddress: string,
    data: string | Uint8Array
): Promise<StdSignature>;

 window.ramper2.cosmos.signArbitrary(chainId: string, signer: string, data: string)
```

&#x20;

### Delegate Transaction broadcasting: <a href="#delegate-transaction-broadcasting" id="delegate-transaction-broadcasting"></a>

```
enum BroadcastMode {
  Sync = 'sync',
  Async = 'async',
  Block = 'block'
}

 window.ramper2.cosmos.sendTx(chainId: string, tx: Uint8Array, mode: BroadcastMode)
```

### To handle events <a href="#to-handle-events" id="to-handle-events"></a>

#### List of events <a href="#list-of-events" id="list-of-events"></a>

Currently, we only support some action events from the wallet extension

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

| Events          | Trigger                                          |
| --------------- | ------------------------------------------------ |
| accountsChanged | Receive when active account changed in Extension |
| cosmosChanged   | Receive when active chain changed in Extension   |

| Method | Description |
| ------ | ----------- |

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


# Privacy Policy

Date Last Revised: January 1, 2024

This Privacy Policy describes the policies and procedures of Ramper Labs, LLC ("**Ramper Wallet**”, "**we**"**,** "**our**", and "**us**") pertaining to the collection, use, process, and disclosure of your information or data when you:

1. access or use Ramper Wallet website <<https://www.ramper.xyz/>> and related mobile applications and products we offer (including mobile and web-based applications) (collectively, “**Applications**”) provided on or in connection with Services, as described in our [Terms of Service](https://docs.ramper.xyz/ramper-nft-checkout-sdk/terms-of-service) (collectively, the “**Services**”); and
2. provide us with your personal data.

This Privacy Policy (together with our Terms of Service and any other documents referred to herein) sets out the basis on which any personal data we collect from you, or that you provide to us, will be processed, used and/or disclosed by us. Please read the following carefully to understand our practices in processing your personal data, as well as your rights regarding your personal data and how we will treat it.

By visiting our Applications and/or submitting data to us, you are accepting and consenting to the collection, use, disclosure and processing of your personal data as described in this Privacy Policy. Please refrain from accessing the Applications and do not provide any personal data to us if you disagree with the terms of this Privacy Policy.

We may change or amend this Privacy Policy from time to time without notice to you, in compliance with applicable laws or as we update our data usage and handling processes. Any changes we may make to this Privacy Policy in the future will be made available on our Applications and any such changes will become effective upon posting of the revised Privacy Policy. The updated Privacy Policy will supersede earlier versions and will apply to personal data provided to us previously. Please check back frequently to see any updates or changes to our Privacy Policy.

For the avoidance of doubt, this Privacy Policy forms a part of the terms and conditions governing your relationship with us. This Privacy Policy supplements but does not supersede or replace any other consents you may have provided to us, or any other agreements or arrangements that you may have with us, in respect of your personal data.

For any questions or feedback in relation to this Privacy Policy or your personal data, or if you wish to make a complaint to us, please submit your requests, feedback or complaint to <hi@ramper.xyz>.

When you contact us, we may require that you submit certain forms or provide certain information, including verification of your identity, before we are able to respond.

**1. What personal data do we collect from our users?**

We do our best to minimize the amount of personal data that we collect from Ramper Wallet users. Your personal data may be collected when you use our Services (i.e. signing up, creating and using a Wallet through our Applications), or you communicate with us for support, or if you report a bug or other error related to Ramper Wallet. See Clause 1.1 for more information on how we collect your personal data. The table below describes the personal data that we may collect from you for each relevant purpose:

| **Category of** **personal information**                                                    | **Type of personal information**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | **Purpose**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Identifiers.                                                                                | Email, profile user name of social media account                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Signing up, creating and using a Wallet through our Applications                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Personal details, contact details, and identifiers.                                         | Name and contact details (such as e-mail, phone numbers when you voluntarily have shared this information with us in order to be contacted)                                                                                                                                                                                                                                                                                                                                                                              | Facilitating communication with you for customer support purposes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| System and application access data and internet and electronic network activity information | <p>The Internet protocol (IP) address used to connect your computer or mobile device to the Internet, your login information, browser type and version, time zone setting, browser plug-in types and versions, and information relating to your operating system and platform.</p><p>Uniform Resource Locators (URL) clickstream to, through and from our Applications (including date and time), occurrences of technical errors, your interactions with Service features and content and your setting preferences.</p> | <p>To analyse performance, fix errors, and improve the usability and effectiveness of Ramper Wallet services.</p><p>Necessary for the compliance of domestic and international industry standards, government rules and regulations, particularly Anti-Money Laundering (AML) regulations, Know Your Customer (KYC) rules, and Counter-Terrorist Financing (CTF) regulations (such as restricting users in certain jurisdictions where the provision of Services is unlawful or jurisdictions with weak measures to combat money laundering and terrorist financing (AML/CFT)).</p> |
| Contractual agreements                                                                      | Records of any contractual agreements between yourself and Ramper Wallet                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Necessary for the performance of a contract to which you are a party.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Note: See Clause 2 for more information on the purposes of the data collection.             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |

When our collection is based on consent, you have the choice, at any time, not to provide your personal data to us or to withdraw your consent previously provided to us. However, do note that if you do so, we may be unable to fulfill the purposes for which we require the personal data, continue to provide Services to you , and/or fulfill any contractual relationship which may be in place between us.

Our Applications and/or Services are not intended to be accessed or used by children, minors or persons who are not of legal age. If you are a parent or guardian and you have reason to believe your child or ward has provided us with their personal data without your consent, please contact us.

In certain circumstances, you may also provide us with personal data of persons other than yourself (such as your officers, employees, agents, customers, family members and next-of-kin). If you do so, you represent and warrant that you have brought this Privacy Policy to his/her attention, informed him/her of the purposes for which we are collecting his/her personal data and that he/she has consented to your disclosure of his/her personal data to us for those purposes and accepts this Privacy Policy. You agree to indemnify and hold us harmless from and against any and all claims by such individuals relating to our collection, use and disclosure of such personal data in accordance with the terms of this Privacy Policy.

1.1. How we collect your personal data

We may collect your personal data directly or indirectly through various channels, such as:

1. when you register an account or Wallet with us through our Applications;
2. when you log in, visit, use, access or download our Applications and Services;
3. when you authorize us to obtain your personal data from a third party;
4. when you enter into agreements with us;
5. when you transact with us, contact us or request that we contact you through various communication channels, for example, through social media platforms, messenger platforms, face-to-face meetings, emails and letters;
6. when you attend events or functions organized by us;
7. we seek information about you and receive your personal data in connection with your relationship with us;
8. when you submit your personal data to us for any other reason;
9. when you voluntarily complete any user survey or provide feedback to us via emails or any other electronic channels;
10. through automated data collection technologies upon visiting our Applications; and
11. in other situations where we may collect your information as may be described in this Privacy Policy or in our terms and conditions.

1.2. Personal Data we receive from other sources and third parties

Depending on your relationship with us, we may also collect and receive your personal data from third party sources, for example, from:

* * * * 1. public databases, public agencies, other public sources, credit bureaus, blockchain data;
        2. third parties whom you have authorised us to obtain your personal data from;
        3. our business partners such as third parties providing services to us (including but not limited to, our ID verification partners, marketing partners, advertising partners, our sub-contractors in technical, payment and delivery services, advertising networks, analytics providers, search information providers and credit reference agencies); and/or
        4. your family members or friends who provide your personal data to us on your behalf.

We may also receive personal data about you if you use any of the other websites or platforms we operate (or operated by our affiliate or related companies), or other services we (or our affiliate or related companies) provide.

**2. Processing your personal data**

2.1. General purposes

We collect, use, disclose and process your personal data, including data provided by you, data we collect about you and data provided by third parties, in the following ways and upon the following grounds:

1. for the fulfilment of contractual obligations and/or transactions entered into between you and us, and to provide you with the information, or Services that you request from us;
2. facilitating the use of our Applications, including verifying, authenticating and/or establishing your identity;
3. to notify you about changes to our Services;
4. to comply with any legal or regulatory obligations, applicable laws, regulations, codes of practices, guidelines, industry standards (domestic or global), government requests, or rules (including but not limited to Anti-Money Laundering (AML) regulations, Know Your Customer (KYC) rules, and Counter-Terrorist Financing (CTF) regulations), or to assist in law enforcement and investigations conducted by any governmental and/or regulatory authority;
5. security purposes, e.g. to monitor and detect suspicious activities, to protect users from fraudulent activities, to protect our Applications, users' accounts, and archives from unauthorised access or usage, to prevent damage to our Applications and systems, and to protect against automated abuse such as spam, and phishing;
6. communicating with you (through messages, emails, live chats or otherwise) and assisting you with your queries, requests, applications, complaints and feedback;
7. resolving any disputes or legal claims, investigating any complaint, claim or dispute or any actual or suspected illegal or unlawful conduct;
8. carrying out research and statistical analysis, including development of new products and services or evaluation, and improvement of our existing Services (including but not limited to, gaining better understanding of users' needs and behaviors, diagnosing any problems with our server, and quality assurance);
9. performing data analytics and related technologies on data, to enable us to deliver relevant content and information to you, and to improve our websites and digital platforms (e.g. ensuring that content from our Applications are presented in the most effective manner for you and for your computer);
10. managing and engaging third parties, data processors or subcontractors that provide services to us, e.g. IT services, technological services, delivery services, and other professional services (e.g. accountants, lawyers and auditors).

Subject to the terms of this Privacy Policy, we shall not use or process your personal data for purposes other than the purposes stipulated in this Privacy Policy without your prior consent. Where your personal data is used for a new purpose and where required under applicable law, we shall obtain your consent. We may collect, use, disclose and process your personal data for other purposes, without your knowledge or consent, only where this is required or permitted by law.

We may, if necessary or required by law, provide your personal data to law enforcement agencies, regulatory organisations, courts or other public authorities. Where appropriate, we will attempt to notify our customers about legal demands for their personal data. You agree that we may not be able to do so if such notification is prohibited by law or court order, when the request is an emergency, or when the burden or expense of notifying the customers would be unreasonable to us. We may dispute such demands when we believe that the requests are disproportionate, vague or lack proper authority, but we do not promise or undertake to challenge every demand.

2.2. Marketing purposes

In order for us, or for authorized third parties permitted by us, to market or advertise products, events, and/or services that are of specific interest and relevance to you, we may analyze, use, process and/or rely on your personal data provided to us, or data collected from your interactions with us. However, no marketing or advertising, using your personal data in non-aggregated and/or identifiable form would be carried out unless you have provided us with your consent to use your personal data for such marketing or advertising purposes. If you do not want us to use or process your personal data for the purposes of marketing or advertising, you can withdraw your consent at any time by contacting us. You can exercise your right to prevent such use or processing by checking certain boxes on the forms we use to collect your personal data. If you are an existing customer, we will only contact you by electronic means (e-mail or other means) with information about goods and services similar to those which were the subject of a previous sale or negotiations of a sale to you, subject to your consent. If you are a new customer, and where we permit selected third parties to use your data for marketing or advertising purposes, we (or they) will contact you by electronic means only, subject to your consent.

2.3. Legitimate business interests

We may also collect, use, disclose and process your personal data for the following purposes to safeguard, support and/or carry out our company’s legitimate business interests such as:

1. managing our business and relationship with you (e.g. accurately carrying out and confirming your instructions, or for the purposes of providing you with rebates and other benefits), and providing services to our customers;
2. protecting our rights and interests, and those of our customers (e.g. processing of your data for the protection of the company’s legal position in the event of legal proceedings);
3. processing for the purpose of reporting possible criminal acts (e.g. fraud) or threats to public security to competent authorities;
4. enforcing our terms and conditions, and obligations owed to us, or protecting ourselves from legal liability;
5. complying with internal policies, procedures, and operations, including troubleshooting, data analysis, testing, research, statistical and survey purposes; and/or
6. process or share your personal data to facilitate acquisitions, mergers, or transfers of our business.

**3. Storing of data**

3.1. Where we store your personal data?

The security of your personal data is our top priority. We shall take care in implementing and maintaining the security of our services and Applications, as well as that of your personal data. We employ procedures and policies that incorporate industry best practices to ensure the integrity of your personal data and to prevent instances of unauthorized use.

Please note that it is impossible to fully guarantee the security of your personal data. While we take reasonable steps to safeguard your personal data in our possession or under our control, you agree not to hold us liable or responsible for any loss or damage resulting from any unauthorized or unintended access that is beyond our control (e.g. hacking or cybercrimes), or abuse of your information. We recommend that you take independent safety precautions to protect your personal data, particularly your credential information such as your username and password. You hereby agree that we shall not be liable for any information leakage and other losses not caused intentionally or otherwise by our gross negligence, including, but not limited to, hacker attacks, power interruptions, or unavoidable technical failures. For the avoidance of doubt, we do not make any warranty, guarantee, or representation that your use of our systems or applications is safe and protected from malware, and other vulnerabilities. We also do not guarantee the security of data that you choose to send us electronically. Sending such data is entirely at your own risk.

3.2. For how long will your data be stored?

We will process and store your personal data for as long as it is necessary in order to fulfill the purposes we collected it for, and to satisfy our business, contractual, legal, regulatory and/or statutory obligations.

Please note that even If you delete your Wallet or addresses from the Applications, uninstall the Applications from your device, or request that your information be deleted, we still may retain some information that you have provided to us to maintain the Applications or to comply with the laws and regulations to which Ramper Wallet is subject.

We will assess and respond to requests to delete personal data and we shall accordingly delete personal data provided that the personal data is no longer required in order to fulfill our business, contractual, legal, regulatory and/or statutory obligations, or the fulfillment of any obligations to preserve records according to applicable laws and regulations.

In general, how long we keep your personal data depends on the nature of the data, e.g. we keep personal data for at least the duration of the limitation period for bringing claims if the personal data may be required to commence or defend legal proceedings. Some information may also be retained for longer e.g. where we are required to do so by law.

3.3. Anonymized data

In some circumstances we may anonymize and/or aggregate your personal data so that it can no longer be associated with you, in which case we are entitled to retain and use such data without restriction.

**4. Disclosure of your personal data**&#x20;

Your personal data may be made available, disclosed or shared to our service providers or third parties in connection with our operation of business, and/or within our group of companies (“**Third Party Services**”) in order to provide our Services or Applications to you, for management and compliance purposes, and to utilize shared group IT functions. We will ensure that the Third Party Services to whom we disclose your personal data will only process it in accordance with our instructions and on our behalf. We will, where appropriate and permissible, enter into contracts with these Third Party Services to protect your personal data in a manner that is consistent with all applicable laws. All such Third Party Services will be required by us to meet the requirements of applicable data protection legislation and our strict privacy and retention policies to keep your personal data secure at all times.

**5. Transfer of personal data to other countries**

You agree and acknowledge that we may transfer your personal data to different jurisdictions in connection with the purposes described in this Privacy Policy:

* * * * 1. from the jurisdiction where it is collected (or where you are located) to any other jurisdictions that we operate in; and
        2. to third parties in other jurisdictions.

When we transfer your personal data internationally and where required by applicable law, we will put in place appropriate safeguards. You may obtain details of these safeguards by contacting us.

**6. Third-party collection of personal information**

Our Applications may contain links to other websites or platforms that are not owned or maintained by us. These links are provided only for your convenience. You may also be accessing our Applications through third party websites and/or platforms. This Privacy Policy only applies to our Applications. When visiting third party websites or using their platforms, their privacy policies apply to their collection, use or disclosure of the personal data you disclose to them.

You hereby acknowledge that we shall not be responsible for the products, services, or descriptions of products or services that you receive from these third-party websites or platforms. This Privacy Policy shall not be applied to any such third-party products and services that you access through our Applications. You knowingly and voluntarily assume all risks of using such third-party websites or platforms to purchase products and services, and you agree that we shall have no liability whatsoever concerning such third-party websites or platforms and your usage of them.

**7. Your rights**

Depending on the jurisdiction that you are in or where we operate, you may enjoy certain rights under applicable law in relation to our collection, use, disclosure and processing of your personal data. Such rights may include:

1. **Access**: you may ask us if we hold your personal data and, if we are, you can request access to your personal data free of charge. This enables you to receive a copy of and information on the personal data we hold about you;
2. **Correction**: you may request for the rectification or correction of your personal data that is incomplete or inaccurate;
3. **Restriction**: you may withdraw consent for our use or process of your personal data, or ask us to suspend the process of your personal data (e.g. if you want us to establish its accuracy);
4. **Objection**: where we are processing your personal data based on a legitimate interest (or those of a third party), you may object to processing on this ground;
5. **Portability**: you may request for the transfer of your personal data to another party under certain circumstances; and
6. **Erasure**: you may request the erasure, deletion or removal of your personal data that we hold about you in certain circumstances.

If you wish to exercise any of your rights, you may contact us at <hi@ramper.xyz>. We may require that you submit certain forms or provide certain information to process your request. Where permitted by law, we may also charge you a fee to process your request.

We may be permitted under applicable laws to refuse a request, for example, we may refuse (a) a request for erasure where the personal data is required for in connection with claims; or (b) an objection request and continue processing your personal data based on compelling legitimate grounds for the processing.


# Terms of Service (240101)

Date Last Revised: January 1, 2024

1. **Introduction**

These Terms of Service (“**Terms**”), which can be viewed as an agreement between an individual or entity user or authorized representative of such user (“**you**”, “**user**”) and Ramper Wallet (“Ramper Wallet”, “we”, “us”, “our”), govern your access and use of all versions of the App and the Services. The App makes certain software services accessible to user via an unhosted mobile device application and browser extension. The App also encompass the websites, apps, software, programming interfaces, tools, features, and functionality accessed or used via <https://www.ramper.xyz/> and related mobile applications and products marketed, advertised, or marked by us with the name “**Ramper Wallet**” from time to time (the “**App**”).

**By accessing the App and/or using any or all of the Services, you accept and agree to be legally bound by these Terms and all of the terms incorporated herein by reference.**

Ramper Wallet reserves the right to modify or replace any of these Terms in its sole discretion from time to time. The “**Date Last Revised**” specified on these Terms indicates the date on which the Terms were last modified. Please check these Terms periodically to ensure that you are aware of and in compliance with the most current version of these Terms. Any revision to the Terms shall take effect immediately upon such revised Terms being made accessible via the Services. Such revised Terms shall be binding on you, and by your continued access and/or use of the App for purposes of participating in the Services, you shall be deemed to agree to and accept the Terms as revised.

**THE APP IS DEVELOPED AND PROVIDED ON AN “AS-IS” AND “AS AVAILABLE” BASIS BY RAMPER WALLET AND/OR ITS AFFILIATES, AND RAMPER WALLET AND ITS AFFILIATES (SAVE TO THE EXTENT PROHIBITED BY APPLICABLE LAWS) EXPRESSLY DISCLAIM ANY AND ALL REPRESENTATIONS, WARRANTIES AND/OR CONDITIONS OF ANY KIND IN RESPECT THEREOF. IF YOU ARE IN ANY DOUBT AS TO THE ACTION YOU SHOULD TAKE, YOU SHOULD CONSULT YOUR LEGAL, FINANCIAL, TAX AND/OR OTHER PROFESSIONAL ADVISOR(S). IF YOU DO NOT AGREE TO THESE TERMS, PLEASE DO NOT ACCEPT THESE TERMS, OR PARTICIPATE IN THE SERVICES, AND MUST CANCEL YOUR ACCESS IMMEDIATELY.**

1. **In these Terms, the following words, and expressions, whenever used in this Agreement shall have the respective meanings indicated below:**

“**Blockchain Network**” refers to any blockchain network supported by Ramper Wallet.

“**Digital Asset**” means any digital asset (including a virtual currency,virtual commodity and and NFTs) which is a digital representation of value based on (or built on top of) a cryptographic protocol of a computer network.

**“Law”** means the laws, statutes, ordinances, rules, regulations, judgments, injunctions, orders and decrees of any governmental authority.

“**Wallet**” means a digital storage component provided by the App, encompassing both the native wallets generated by the App and third-party wallets that can be imported and accessed within the App, for storing, managing, and facilitating transactions involving your Digital Assets stored on the blockchain(s) supported by the App.

1. **Acknowledgement of Risk: As with any asset, the value of Digital Assets can increase or decrease and there can be a substantial risk that you lose money buying, selling, holding, or investing in Digital Assets. You should consult your financial advisor, legal or tax professional regarding your specific situation and financial condition and carefully consider whether trading or holding Digital Assets is suitable for you.** &#x20;

**Ramper Wallet is not registered with the U.S. Securities and Exchange Commission and does not offer securities services in the United States or to U.S. persons.  You acknowledge that Digital Assets are not subject to protections or insurance provided by the Federal Deposit Insurance Corporation or the Securities Investor Protection Corporation.**

1. **NOT FINANCIAL ADVICE: WE DO NOT PROVIDE INVESTMENT OR FINANCIAL ADVICE OR CONSULTING SERVICES. WE ARE SOLELY THE PROVIDER OF RAMPER WALLET AND WE DO NOT ADVISE OR MAKE RECOMMENDATIONS ABOUT ENGAGING IN DIGITAL ASSET TRANSACTIONS OR OPERATIONS. DECISIONS TO ENGAGE IN TRANSACTIONS OR PERFORM OPERATIONS INVOLVING DIGITAL ASSETS SHOULD BE TAKEN ON YOUR OWN ACCORD.**
2. **Wallet Registration and Security**
3. **Wallet registration**

You shall create a Wallet using your social login (such as Facebook, Twitter, Google, and Apple) or email (“**Social Login**”) to use Ramper Wallet. When creating a Wallet, passphrase will be created, you could choose to view this passphrase at any time. You are encouraged to backup passphrase for the Wallet. Ramper Wallet uses your Social Login to create an account linked to your Wallet. You shall not provide us with another person’s Social Login. You agree to immediately notify us of any unauthorized use of your password or any other breach of security of your Wallet. Notwithstanding the foregoing, you acknowledge and agree that you shall assume all risks related to the use of the Services and you shall be solely responsible for maintaining the confidentiality and security of your private key. When you create a Wallet, you are strongly advised to take precautions in order to avoid loss of access to and/or control over your Wallet. Suggested measures include, but are not limited to, the following: (a) creating a strong unique password that you do not use for any other purpose (i.e. different to your phone password or any other passwords you use for websites, online services, etc.) and leveraging biometric authentication if available; (b) do not store the password, passphrase in plain text online or in an unsecured physical location; (c) limiting access to your devices and your Wallet; (d) taking all necessary precautions against malware on your devices and networks; and (e) promptly notifying us if you discover or otherwise suspect any security breaches related to your Wallet. Notwithstanding anything to the contrary herein, we shall have no liability whatsoever in connection with activities that occur on your Wallet with or without your authorization.

1. **Payment and Fees**

We may charge fees for some or part of the Services we make available to you. We reserve the right to change those fees at our discretion. Fees applicable to the Services or any component of the Services, if any, shall be set forth at <https://www.ramper.xyz/> and/or the Ramper Wallet mobile application.

You may incur charges from third parties for use of linked services. For example, you may be charged fees via the DApps and/or DEXs that you may access via the App.

1. **Transaction Fees**

There may be transaction fees (e.g. mining fees) associated with your virtual currency transactions that are required by respective blockchain network with which the Services are compatible. You must ensure that you have an adequate balance in your Wallet and/or “gas” to complete transactions before initiating a transaction. You acknowledge and agree that we will not be liable for any failed transactions or losses you incur due to incorrectly set transaction fees (i.e. too low or too high) or due to insufficient funds or gas associated with your Wallet address. You further acknowledge and agree that we do not have access to your or anyone else’s transactions.

1. **Taxes**

It is your responsibility to determine what, if any, taxes apply to the transactions that you have submitted transaction details for via the Services, and it is your responsibility to report and remit the correct tax to the appropriate tax authority. You agree that we are not responsible for determining whether taxes apply to your transactions or for collecting, reporting, withholding, or remitting any taxes arising from any Digital Asset-related transactions.

1. **Ownership and Control**

You own and control Digital Assets held in your Wallet. As the sole owner of digital assets in your Wallet, you shall bear all risk of loss of such digital assets. Ramper Wallet shall have no liability for digital asset fluctuations or loss associated with your use of the App. At any time, subject to outages, downtime, and other applicable policies, you may withdraw your Digital Assets by sending it to a different blockchain address.

1. **Authority/Terms of Service**

Ramper Wallet retains all authority over the issuing, maintenance, and closing of the Services. The decision of Ramper Wallet’s management, concerning any use of the Services, or dispute resolution, is final and shall not be open to review or appeal.

1. **Services**\
   Ramper Wallet is a non-custodial wallet software, for Digital Assets, meaning you are solely in control of and responsible for your Digital Assets and passphrase, and accordingly you can authorize transactions from your wallet address. You expressly acknowledge and agree that as Ramper Wallet is a non-custodial wallet software, you are solely responsible for your activity and any risk of loss at all times.
2. **Our Services.** The App allows you to:
3. generate Wallet addresses that you may use to send and receive Digital Assets;
4. browse and access third party decentralized application(s) (“**DApp**(s)”) and third party decentralized exchanges (“**DEX**”) through the mobile application’s web browser;
5. swap/trade Digital Assets through DApp functionality made available by third party service provider(s) (this service may be determined to be offered from time to time);
6. view addresses and information that are part of Digital Asset networks and broadcast transactions;
7. view Digital Asset price information made available by third party service provider(s); and
8. broadcast Digital Asset transaction data to Blockchain without requiring you to download or install the associated blockchain-based software to your local device;
9. additional functionality as Ramper Wallet may add to the App from time to time.

To use the Ramper Wallet’s Services, you will need to be logged in by the Social Login or using the passphrase you generated when you created your Wallet. Once you are logged in, you may initiate a transaction using Ramper Wallet’s Services any time that you want as long as you have a valid login session. Ramper Wallet is entitled to rely on the transaction you make and has no duty to inquire into or investigate the validity or accuracy of any transaction, though it may, at its sole discretion, inquire into or investigate such transaction.

We are not your brokers, intermediaries, agents, advisors, or custodians, and we do not have a fiduciary relationship or obligation to you regarding any other decisions or activities that you effect when using your Wallet or our Services. We are not responsible for any activities that you engage in when using your Wallet, and you should understand the risks associated with Digital Assests described more fully in these Terms.

1. **Account Password and Security**

An encrypted backup of certain information associated with your Wallet can be stored on eligible devices. The Social Login and/or passphrase is associated with the Wallet address and, together, they can be used to authorize the transfer of Digital Assets to and from that Wallet address. You are solely responsible for the retention and security of your Social Login, passphrase and any mnemonic phrase (“**Secret Phrase**”) associated with your Wallet. Your Secret Phrase is the only way to access the Digital Assets associated with your Wallet. Anyone that has access to your Secret Phrase can access your Digital Assets. You must keep your Wallet address, and Secret Phrase access information secure. It is very important that you backup your backup passphrases. Failure to do so may result in the loss of control of Digital Assets associated with your Wallet. You acknowledge and agree that we do not receive or store your Wallet password, encrypted private key, unencrypted private key, or Secret Phrase associated with your Wallet. We cannot generate a new passphrase for your Wallet if you fail to remember your original passphrase. If you have not safely stored a backup of any Wallet address and passphrase pairs maintained in your Wallet, you accept and acknowledge that any Digital Assets you have associated with such Wallet address will become inaccessible. You agree that Ramper Wallet and its affiliates shall have no responsibility or liability whatsoever in the event you are unable to access your Wallet for any reason including without limitation your failure to keep your Wallet address, and Secret Phrase information secure.

1. **Use of Third Party Materials**

If you access or use DApps or DEX, including, without limitation, DApp functionality embedded within the Services such as the trade/swap Digital Assets function (**“Third Party Materials”**), you acknowledge and agree that:

1. Ramper Wallet makes no warranties or representations, express or implied, about such linked Third Party Materials, the third parties they are owned and operated by, the information contained on them, the suitability of their products or services, or the assets they make accessible;
2. Ramper Wallet is not responsible for your access or use of Third Party Materials and shall have no liability whatsoever in connection with your use of Third Party Materials, including, without limitation, any transactions you dispute;
3. the limits of amounts that you may exchange via Third Party Materials per day shall be subject to any requirements of the third-party developed smart contracts;
4. blockchain operations are irrevocable meaning when you conduct any transactions via Third Party Materials, you shall be solely responsible for the consequences of any issues associated with such transactions, including, without limitation, your transfer to an incorrect address or problems associated with the node servers selected by you;
5. when you use Third Party Materials, third-party developed smart contracts may charge you handling fees and/or service fees and any information displayed on Ramper Wallet relating to such fees are for your reference only as Ramper Wallet cannot and does not guarantee its accuracy, applicability, reliability, integrity or appropriateness, nor shall Ramper Wallet be liable for any loss or damage that may be caused directly or indirectly by your use of these contents; and
6. Ramper Wallet may, in its discretion, charge such fees at any time in the future. Any updated fees will apply to any transaction that occurs following the effective date of the updated fees.
7. **Digital Asset Transactions**

In order for all proposed Digital Asset transactions to be completed, they must be confirmed and recorded in Blockchain Networkor Digital Asset’s associated public blockchain. Such networks are decentralized, peer-to-peer networks supported by independent third parties, which we do not own, control, or operate. We have no control over the blockchain networks and, therefore, cannot and do not ensure that any transaction details that you submit via our Services will be confirmed and processed. By using the App, you acknowledge and agree that: (i) we do not have the ability to cancel or otherwise modify your transaction; (ii) the transaction details you submit may not be completed, or may be substantially delayed, by the applicable blockchain networks; (iii) we do not store, send, or receive Digital Assets; and (iv) any transfer that occurs in relation to any Digital Asset occurs on the relevant blockchain network and not on a network owned by us and therefore we do not guarantee the transfer of title or right in any Digital Asset.

1. **Accuracy of Information Provided by User**

You represent and warrant that any information you provide via the Services is accurate and complete. You accept and acknowledge that we are not responsible for any errors or omissions that you make in connection with any Digital Asset transaction initiated via the Services. We strongly encourage you to review your transaction details carefully before attempting to transfer a Digital Asset.

1. **You accept and acknowledge**
2. The prices and liquidity of cryptocurrency assets are extremely volatile. Fluctuations in the price of other digital assets could materially and adversely affect the Digital Assets made available through the Services, which may also be subject to significant price volatility. We cannot guarantee that you will not lose money and have no responsibility to you for any such loss.
3. There are risks associated with using an internet-based currency, including but not limited to, the risk 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 Wallet. You accept and acknowledge that Ramper Wallet will not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Services for transactions, however caused.
4. The regulatory regime governing blockchain technologies, cryptocurrencies, and digital assets is uncertain, and new regulations or policies may materially adversely affect the development of the Services.
5. The Services may rely on third-party apps to perform transactions with respect to any digital assets. If we are unable to maintain a good relationship with such app providers; if the terms and conditions or pricing of such app providers change; if we violate or cannot comply with the terms and conditions of such apps; or if any of such apps loses market share or falls out of favor or is unavailable for a prolonged period of time, access to and use of the Services will suffer.
6. You further acknowledge and accept the risk that your Digital Assets, or any Digital Assets you acquire, including through a third-party exchange may lose some or all of their value and you may suffer loss due to the fluctuation of prices of Digital Assets and/or significant price slippage and cost. You understand that anyone can create a Digital Asset, including fake versions of existing Digital Assets and Digital Asset that falsely claim to represent projects, and acknowledge and accept the risk that you may mistakenly trade those or other Digital Asset. You further acknowledge that we are not responsible for any of these variables or risks and that we cannot be held liable for any resulting losses that you experience while accessing or using the Services.
7. **Contracting Party and Eligibility to access to and use the Services**
8. The party that is legally bound by these Terms (and that is identified in these Terms as ‘you’) is either the individual who accepted these Terms (the “Signatory”); or the individual or entity, if any, that legally authorized the Signatory to accept these Terms on its behalf (the “Principal”).

If the Signatory asserts that there is a Principal but the individual or entity identified as the Principal (i) does not fully satisfy the Eligibility Conditions under Section 6(b) below or (ii) is for any reason not legally bound to these Terms, then the Signatory will be bound to these Terms in his or her personal capacity.

1. To be eligible to access and/or use the Services, you must satisfy each of the following conditions (the “Eligibility Conditions”):

***If you are an individual:***

1. you must be at least 18 years old or above the minimum age in your jurisdiction to have the legal capacity to enter into contracts and to use the Services;
2. you are not a citizen or permanent resident of, you do not have a primary residence in, and you are not physically located in any country (A) where participation in the Services is prohibited, restricted or unauthorized in any form and/or manner whether in full or in part under the laws, regulatory requirements, or rules in such jurisdiction or (B) where it is likely that the Digital Asset transactions would be construed as the transactions of a security (howsoever named), financial services or investment products under the laws, regulatory requirements, or rules of such jurisdiction; and
3. You are not a Specially Designated National as identified by the Office of Foreign Assets Control of the U.S. Treasury Department; or on the Consolidated List of Targets maintained by the U.K. Office of Financial Sanctions Implementation of HM Treasury; or on the consolidated list of persons, groups, and entities subject to financial sanctions maintained by the European Union; or on an equivalent or similar list maintained by the United Nations Security Council, or any other jurisdiction

***If you are an entity:***

1. you are duly organized and validly existing under the applicable laws of the jurisdiction of your organization;
2. you have authorized your Signatory to accept these Terms on your behalf;
3. you are not a resident for tax purposes of, you do not have a domicile in, and you are not physically located in any country or jurisdiction (A) where participation in the Services is prohibited, restricted or unauthorized in any form and/or manner whether in full or in part under the Laws, regulatory requirements, or rules in such jurisdiction or (B) where it is likely that the Digital Asset transactions would be construed as the transactions of a security (howsoever named), financial services or investment products under the laws, regulatory requirements, or rules of such jurisdiction; and
4. You are not a Specially Designated National as identified by the Office of Foreign Assets Control of the U.S. Treasury Department; or on the Consolidated List of Targets maintained by the U.K. Office of Financial Sanctions Implementation of HM Treasury; or on the consolidated list of persons, groups, and entities subject to financial sanctions maintained by the European Union; or on an equivalent or similar list maintained by the United Nations Security Council, or any other jurisdiction.

You can only use our Services if permitted under the Laws of your jurisdiction. For the avoidance of doubt, you may not use our Services if you are located in, or a citizen or resident of any state, country, territory or other jurisdiction where your use of our Services would be illegal or otherwise violate any applicable laws. Please make sure that your accessing, using the Services are not prohibited, restricted, or regulated by any law or regulation applicable to you. You are solely responsible (i) to determine if there are any such laws or regulations (including foreign exchange restrictions) applicable to you and to comply with them and (ii) to determine if there are any governmental or other consents or approvals which you need to obtain, and to obtain and maintain them.

You are accessing and/or using the Services as principal and for your own account, and not as nominee or agent for, or for the account of, any other person.

1. If you do not fully satisfy each of the Eligibility Conditions at all times from the time that you accept these Terms, then you may not, and you agree not to, access to and/or use the Services. If you access to and/or use the Services notwithstanding that you do not meet each of the Eligibility Conditions, you acknowledge that (a) your access to and/or use the Services is a breach of these Terms, and (b) you access to and/or use the Services at your own risk. You acknowledge and agree that Ramper Wallet will not be liable to you or any other party arising from or in connection with your access to and/or use the Services if you do not meet each of the Eligibility Conditions.
2. Ramper Wallet may require you to provide certain information to confirm your satisfaction of the Eligibility Conditions and to complete the transactions related to the Services. If you do not provide the required information, then you may be unable to use the Services. Ramper Wallet’s request for, and your provision of, any information from you, and any actions or decisions Ramper Wallet may take based on that information, do not affect your obligations under this Section 6.
3. **Intellectual Property**
4. **Proprietary property of Ramper Wallet**

The Services, including its “look and feel” (e.g., text, graphics, images, logos, page headers, button icons, and scripts), proprietary content, information and other materials, and all content and other materials contained therein, including, without limitation, the Ramper Wallet logo and all designs, layouts, displayed, technical information, text, graphics, pictures, data, software, sound files, other files, and the selection and arrangement thereof are the proprietary property of Ramper Wallet or our affiliates, licensors, or users, as applicable, and you agree not to take any action(s) inconsistent with such ownership interests. We and our affiliates, licensors, and users, as applicable, reserve all rights in connection with the Services and its content, including, without limitation, the exclusive right to create derivative works.

“Ramper Wallet” name, logo, trademarks, and any Ramper Wallet product or Services names, designs, logos, and slogans are the intellectual property of Ramper Wallet or our affiliates or licensors and may not be copied, imitated, or used, in whole or in part, without our prior written permission in each instance. You may not use any metatags or other “hidden text” utilizing “Ramper Wallet” or any other name, trademark, or product or Services name of Ramper Wallet or our affiliates or licensors without our prior written permission. In addition, the “look and feel” of the Services constitutes the Services mark, trademark, or trade dress of Ramper Wallet and may not be copied, imitated, or used, in whole or in part, without our prior written permission.

All other third-party trademarks, registered trademarks, and product names mentioned on the Services or displayed on the Services are the property of their respective owners and may not be copied, imitated, or used, in whole or in part, without the permission of the applicable intellectual property rights holder. 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 Ramper Wallet.

1. **License**

As long as you agree to and comply with the present Terms, we grant you a non-exclusive, non-sublicensable and non-transferable license to use the App for your personal use or internal business use only. Except as otherwise expressly permitted in these Terms, you will not: (a) reproduce, modify, adapt or create derivative works of any part of the App; (b) rent, lease, distribute, sell, sublicense, transfer, or provide access to the App; (c) use the App for the benefit of any third party; (d) incorporate the App into a product or service you provide to a third party without our prior written consent; (d) circumvent mechanisms in the App intended to limit your use; (f) reverse engineer, disassemble, decompile, translate, or otherwise seek to obtain or derive the source code, including images and texts, underlying ideas, algorithms, file formats or non-public APIs to the App, except to the extent expressly permitted by applicable law (and then only upon advance notice to us); (g) remove or obscure any proprietary or other notices contained in the App (h) use the App for competitive analysis, as part of any other software or project of any kind or to build competitive products.

1. **License to NFT Content**

You may be able to store non-fungible tokens (“NFTs”) on your Wallet. You hereby represent and warrant that you own all legal right, title in and interest to, including all intellectual property rights to the content associated with the NFT (“NFT Content”), or you are legally authorized by the owner of the intellectual property in the NFT Content to store the NFTs on your Wallet. You retain all rights to the NFT Content except for rights expressly granted herein. By using the App, you grant us a license to access, use, host, cache, store, copy, reproduce, transmit, display, publish, distribute, adapt and modify (for technical purposes, e.g., making sure content is viewable on smartphones as well as computers and other devices) the NFT Content in any and all media or distribution methods (now know or later developed) solely as required to be able to operate and provide services of Ramper Wallet. We do not monitor the NFTs and NFT Content stored on your Wallet for any infringement of a third party’s intellectual property rights. Accordingly, we assume no liability for any action regarding any content provided by you. You further acknowledge and agree it is your sole responsibility to carry out all necessary due diligence for all your activities relating to NFTs, and you represent and warrant that you have not and are not relying on, and shall have no remedies, in respect of any statement or representation made by us in relation to any transfer or interaction otherwise with any NFTs. If you have a dispute in relation to the NFTs and/or NFT Content, you release us from claims, demands, and damages of every kind and nature, known and unknown, arising out of or in any way connected with such disputes. In entering into this release, you expressly waive any protections (whether statutory or otherwise) that would otherwise limit the coverage of this release to include those claims which you may know or suspect to exist in your favor at the time of agreeing to this release.

1. **Your responsibilities**

You agree not to do any of the following:

1. Impersonate someone or use or attempt to use another user’s Wallet without authorization or use our Services in any manner that could interfere, disrupt, negatively affect, or inhibit other users from fully enjoying it;
2. Take any action that may impose an unreasonable or disproportionately large load on our or any of our third party providers’ infrastructure;
3. Access or use the Services to copy, modify, or create derivative works of the Services or any related software or code, or reverse engineer, disassemble, decompile, decode, adapt, or do anything that might discover source code or bypass or circumvent measures employed to prevent or limit access to the Services, or otherwise attempt to derive or gain access to any software component of the Services, including those of third parties.
4. Collect or store any personally identifiable information from the Services from other users of the Services without their express permission.
5. Impersonate or misrepresent your affiliation with any person or entity.
6. Engage or assist in any activity that violates any law, statute, ordinance, regulation, or sanctions program, or that involves proceeds of any criminal or fraudulent activity (including but not limited to money laundering, terrorist financing or deliberately engaging in activities designed to adversely affect the performance of the Services).
7. Use the Services in any manner that could interfere with, disrupt, negatively affect, or inhibit other users from fully enjoying the Services.
8. Violate, misappropriate or infringe the rights of Ramper Wallet, our users, or others, including privacy, publicity, intellectual property, or other proprietary rights.&#x20;
9. Facilitate or assist another person to do any of the above acts.
10. **Your representations, warranties and covenants**

By using the Services, you further represent, warrant and covenant that:

1. Any Digital Assets you transfer via the Services have been legally obtained by, and belong to, you;
2. You will not provide any false, inaccurate or misleading information while using the Services, or engage in any activity that operates to defraud Ramper Wallet, other users of the Services, or any other person or entity;
3. You will not use the Services to transmit or exchange Digital Assets that are the direct or indirect proceeds of any criminal or fraudulent activity, including, without limitation, terrorism or tax evasion;
4. Any Digital Assets you use in connection with the Services are either owned by you or you are validly authorized to carry out actions using such assets;
5. You will pay all fees necessary for interacting with Blockchain Network with which the Services are compatible, including "gas" costs, as well as all fees charged by us for your use of the Services; and
6. You agree to comply with all applicable U.S. and non-U.S. export control and trade sanctions laws ("Export Laws"). Without limiting the foregoing, you may not download the App or use the Services if (i) you are in, under the control of, or a national or resident of Cuba, Iran, North Korea, Sudan, or Syria or any other country subject to United States embargo, UN Security Council Resolutions, HM Treasury's financial sanctions regime, or if you are on the U.S. Treasury Department's Specially Designated Nationals List or the U.S. Commerce Department's Denied Persons List, Unverified List, Entity List HM Treasury's financial sanctions regime; or (ii) you intend to supply any Services to Cuba, Iran, North Korea, Sudan or Syria or any other country subject to United States embargo or HM Treasury's financial sanctions regime (or a national or resident of one of these countries), or to a person on the Specially Designated Nationals List, Denied Persons List, Unverified List, Entity List, or HM Treasury's financial sanctions regime.
7. **Indemnity**

To the fullest extent permitted by applicable law, you will indemnify, defend and hold harmless Ramper Wallet, and our affiliates, officers, directors, agents, partners and employees (individually and collectively, the “Ramper Wallet Parties”) from and against all actual or alleged claims, damages, awards, judgments, losses, liabilities, obligations, taxes, penalties, interest, fees, expenses (including, without limitation, attorneys’ fees and expenses), and costs (including, without limitation, court costs, costs of settlement, and costs of pursuing indemnification and insurance), of every kind and nature whatsoever, whether known or unknown, foreseen or unforeseen, matured or unmatured, or suspected or unsuspected, in law or equity, whether in tort, contract, or otherwise (collectively, “Claims”) arising out of or related to (a) your use of misuse of the Services, (b) your violation, misappropriation or infringement of any rights of another (including intellectual property rights or privacy rights), (c) your violation or breach of any term of these Terms or applicable law, (d) your violation of the rights of or obligations to a third party, including another user or third-party, and (e) your negligence or willful misconduct. You agree to promptly notify Ramper Wallet Parties of any third-party Claims, cooperate with Ramper Wallet Parties in defending such Claims and pay all fees, costs and expenses associated with defending such Claims (including attorneys’ fees). You also agree that the Ramper Wallet Parties will have control of the defense or settlement, at Ramper Wallet’ sole option, of any third-party Claims. This indemnity is in addition to, and not in lieu of, any other indemnities set forth in a written agreement between you and Ramper Wallet.

If Ramper Wallet is obligated to respond to a subpoena or other compulsory legal or court order or process relating to subject matter that is within the scope of your indemnity under this Section 10, you agree to reimburse Ramper Wallet its legal fees, as well as its employees’ and contractors’ time and materials spent responding to the subpoena or other compulsory legal or court order or process at reasonable hourly rates.

1. **Warranty Disclaimers**

THE SERVICES LISTED THEREIN ARE PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. RAMPER WALLET EXPRESSLY DISCLAIMS ALL WARRANTIES ARISING FROM COURSE OF DEALING, USAGE, OR TRADE PRACTICE. RAMPER WALLET MAKES NO WARRANTY OF ANY KIND THAT THE SERVICES, OR ANY PRODUCTS OR RESULTS OF THE USE THEREOF, WILL MEET USERS’ OR ANY OTHER PERSON’S REQUIREMENTS, OPERATE WITHOUT INTERRUPTION, BE AVAILABLE AT ANY TIME OR IN ANY GEOGRAPHIC LOCATION, ACHIEVE ANY INTENDED RESULT, BE COMPATIBLE OR WORK WITH ANY SOFTWARE, SYSTEM, OR OTHER SERVICES, OR BE SECURE, ACCURATE, COMPLETE, FREE OF HARMFUL CODE, OR ERROR FREE. RAMPER WALLET MAKES NO WARRANTY OR REPRESENTATION THAT THE SERVICES DOES NOT INFRINGE UPON THE INTELLECTUAL PROPERTY RIGHTS OF OTHERS, THAT THE SERVICES WILL NOT INCIDENTALLY INFRINGE UPON THE INTELLECTUAL PROPERTY RIGHTS OF OTHERS BY NATURE OF ITS OPERATION. RAMPER WALLET CANNOT GUARANTEE THE SECURITY OF ANY DATA THAT USERS DISCLOSE ONLINE. NO ADVICE OR INFORMATION, WHETHER ORAL OR OBTAINED FROM THE SERVICE, WILL CREATE ANY WARRANTY OR REPRESENTATION NOT EXPRESSLY MADE HEREIN. YOU ACCEPT THE INHERENT SECURITY RISKS OF PROVIDING INFORMATION AND DEALING ONLINE OVER THE INTERNET AND WILL NOT HOLD RAMPER WALLET RESPONSIBLE FOR ANY BREACH OF SECURITY.

RAMPER WALLET MAKES NO REPRESENTATIONS OR WARRANTIES AS TO THE FUNCTIONALITY OF BLOCKCHAIN NETWORK, OR THAT BLOCKCHAIN NETWORK WILL OPERATE FREE FROM INTERRUPTIONS, DELAYS, DEFECTS AND/OR ERRORS THAT MAY DELAY, HINDER OR PREVENT THE TRANSMISSION OF TRANSACTIONS OR MESSAGES TO OR ON BLOCKCHAIN NETWORK, OR ANY OTHER NETWORK. THE DURATION OF ANY IMPLIED WARRANTY THAT IS NOT EFFECTIVELY DISCLAIMED WILL BE LIMITED TO THE LONGER OF (I) THIRTY (30) DAYS FROM THE DATE THAT YOU FIRST USE THE APPLICABLE SERVICE AND (II) THE SHORTEST PERIOD ALLOWED UNDER APPLICABLE LAW. SOME STATES / JURISDICTIONS DO NOT ALLOW LIMITATIONS ON HOW LONG AN IMPLIED WARRANTY LASTS, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU.

OUR SERVICES RELY ON EMERGING TECHNOLOGIES, SUCH AS BLOCKCHAIN NETWORK AND THIRD PARTY DECENTALIZED EXCHANGES. SOME SERVICES ARE SUBJECT TO INCREASED RISK THROUGH YOUR POTENTIAL MISUSE OF THINGS SUCH AS PUBLIC/PRIVATE KEY CRYPTOGRAPHY. BY USING THE SERVICES, YOU EXPLICITLY ACKNOWLEDGE AND ACCEPT THESE HEIGHTENED RISKS. RAMPER WALLET SHALL NOT BE LIABLE FOR THE FAILURE OF ANY MESSAGE TO SEND TO OR BE RECEIVED BY THE INTENDED RECIPIENT IN THE INTENDED FORM, OR FOR DIMINUTION OF VALUE OF ANY DIGITAL TOKEN OR DIGITAL ASSET ON BLOCKCHAIN NETWORK OR ANY OTHER NETWORK, AND RAMPER WALLET MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE SAME.

1. **Acknowledgment of Certain Risks; Other Disclaimers; Release of Claims**

YOU ACKNOWLEDGE AND AGREE THAT WE HAVE NO CONTROL OVER, AND NO DUTY TO TAKE ANY ACTION REGARDING: (I) FAILURES, DISRUPTIONS, ERRORS, OR DELAYS IN THE PROCESSING OF DIGITAL ASSETS THAT YOU MAY EXPERIENCE WHILE USING THE SERVICES; (II) THE RISK OF FAILURE OF HARDWARE, SOFTWARE, AND INTERNET CONNECTIONS; (III) THE RISK OF MALICIOUS SOFTWARE BEING INTRODUCED OR FOUND IN THE SOFTWARE UNDERLYING RAMPER WALLET; (IV) THE RISK THAT THIRD PARTIES MAY OBTAIN UNAUTHORIZED ACCESS TO INFORMATION STORED WITHIN YOUR WALLET, INCLUDING, BUT NOT LIMITED TO YOUR WALLET ADDRESS, PRIVATE KEY, AND SECRET PHRASE; AND (V) THE RISK OF UNKNOWN VULNERABILITIES IN OR UNANTICIPATED CHANGES TO THE APPLICABLE BLOCKCHAIN NETWORKS.

YOU UNDERSTAND THAT THE BLOCKCHAIN NETWORK (AND ALL OTHER NETWORKS WITH WHICH THE SERVICES MAY BE COMPATIBLE) REMAINS UNDER DEVELOPMENT, WHICH CREATES TECHNOLOGICAL AND SECURITY RISKS WHEN USING THE SERVICES IN ADDITION TO UNCERTAINTY RELATING TO DIGITAL ASSETS AND TRANSACTIONS THEREIN. YOU ACKNOWLEDGE THAT THE COST OF TRANSACTING ON BLOCKCHAIN NETWORK IS VARIABLE AND MAY INCREASE AT ANY TIME, THEREBY IMPACTING ANY ACTIVITIES TAKING PLACE ON BLOCKCHAIN NETWORK, WHICH MAY RESULT IN PRICE FLUCTUATIONS OR INCREASED PRICES FOR USING THE SERVICES.

USE OF THE SERVICES, IN PARTICULAR FOR TRADING DIGITAL ASSETS, MAY CARRY FINANCIAL RISK. DIGITAL ASSETS ARE, BY THEIR NATURE, HIGHLY EXPERIMENTAL, RISKY, AND VOLATILE. TRANSACTIONS ENTERED INTO IN CONNECTION WITH THE SERVICES ARE IRREVERSIBLE, FINAL AND THERE ARE NO REFUNDS. YOU ACKNOWLEDGE AND AGREE THAT YOU WILL ACCESS AND USE THE SERVICES AT YOUR OWN RISK. THE RISK OF LOSS IN TRADING DIGITAL ASSETS CAN BE SUBSTANTIAL. YOU SHOULD, THEREFORE, CAREFULLY CONSIDER WHETHER SUCH TRADING IS SUITABLE FOR YOU IN LIGHT OF YOUR CIRCUMSTANCES AND FINANCIAL RESOURCES. BY USING THE SERVICES, YOU REPRESENT AND WARRANT THAT YOU HAVE BEEN, ARE, AND WILL BE SOLELY RESPONSIBLE FOR MAKING YOUR INDEPENDENT APPRAISAL AND INVESTIGATIONS INTO THE RISKS OF A GIVEN TRANSACTION AND THE UNDERLYING DIGITAL ASSETS. YOU REPRESENT THAT YOU HAVE SUFFICIENT KNOWLEDGE, MARKET SOPHISTICATION, PROFESSIONAL ADVICE, AND EXPERIENCE TO MAKE YOUR EVALUATION OF THE MERITS AND RISKS OF ANY TRANSACTION CONDUCTED IN CONNECTION WITH THE SERVICES OR ANY DIGITAL ASSET. YOU ACCEPT ALL CONSEQUENCES OF USING THE SERVICES, INCLUDING THE RISK THAT YOU MAY LOSE ACCESS TO YOUR DIGITAL ASSETS INDEFINITELY. ALL TRANSACTION DECISIONS ARE MADE SOLELY BY YOU. NOTWITHSTANDING ANYTHING IN THESE TERMS, WE ACCEPT NO RESPONSIBILITY WHATSOEVER FOR, AND WILL IN NO CIRCUMSTANCES BE LIABLE TO YOU IN CONNECTION WITH, YOUR USE OF THE SERVICES FOR PERFORMING DIGITAL ASSET TRANSACTIONS.

THE SERVICES MAY NOT BE AVAILABLE DUE TO ANY NUMBER OF FACTORS INCLUDING, BUT NOT LIMITED TO, PERIODIC SYSTEM MAINTENANCE, SCHEDULED OR UNSCHEDULED, ACTS OF GOD, UNAUTHORIZED ACCESS, VIRUSES, DENIAL OF SERVICES OR OTHER ATTACKS, TECHNICAL FAILURE OF THE SERVICES AND/OR TELECOMMUNICATIONS INFRASTRUCTURE OR DISRUPTION, AND THEREFORE WE EXPRESSLY DISCLAIM ANY EXPRESS OR IMPLIED WARRANTY REGARDING THE USE AND/OR AVAILABILITY, ACCESSIBILITY, SECURITY OR PERFORMANCE OF THE SERVICES CAUSED BY SUCH FACTORS. WE DO NOT MAKE ANY REPRESENTATIONS OR WARRANTIES AGAINST THE POSSIBILITY OF DELETION, MISDELIVERY OR FAILURE TO STORE COMMUNICATIONS, PERSONALIZED SETTINGS, OR OTHER DATA. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF CERTAIN WARRANTIES. ACCORDINGLY, SOME OF THE ABOVE DISCLAIMERS OF WARRANTIES MAY NOT APPLY TO YOU.

TO THE MAXIMUM EXTENT PERMITTED BY ALL APPLICABLE LAWS AND REGULATIONS, YOU, FOR AND ON BEHALF OF ALL NATURAL AND LEGAL PERSONS WHO MAY CLAIM THROUGH OR UNDER YOU, ON YOUR BEHALF, OR OTHERWISE IN RESPECT OF YOU, RELEASE AND FOREVER DISCHARGE RAMPER WALLET AND ITS AFFILIATES, AND ITS AND THEIR RESPECTIVE DIRECTORS, OFFICERS, EMPLOYEES, AGENTS, REPRESENTATIVES, SUPPLIERS, ATTORNEYS, AND ADVISERS, AND ALL OF ITS AND THEIR RESPECTIVE PREDECESSORS, SUCCESSORS, AND ASSIGNS, FROM ALL CLAIMS AND CAUSES OF ACTION OF ANY KIND WHATSOEVER, WHETHER UNDER COMMON LAW, STATUTORY, CONTRACTUAL, TORTIOUS, EQUITABLE, OR OTHERWISE, AND ALL LOSSES, DAMAGES, TAXES, LIABILITIES, COSTS, AND EXPENSES, WHICH YOU HAVE, EVER HAD, MAY HAVE, OR HEREAFTER MIGHT HAVE, WHETHER KNOWN OR UNKNOWN, NOW EXISTING OR WHICH MIGHT ARISE OR ACCRUE HEREAFTER, RELATING TO OR ARISING FROM THE MATTERS LISTED IN THIS SECTION.

1. **Limitation of liability**

IN NO EVENT SHALL RAMPER WALLET BE LIABLE FOR ANY LOSSES REALIZED OR DEMANDED OF USERS RELATED TO USERS’ ACCESS TO OR USE OF THE SERVICES, INCLUDING ANY LOSSES FOR INTELLECTUAL PROPERTY INFRINGEMENT. NOTWITHSTANDING THE FOREGOING, IN NO EVENT SHALL THE MAXIMUM AGGREGATE LIABILITY OF RAMPER WALLET FOR DAMAGES EXCEED THE AMOUNTS YOU HAVE PAID OR ARE PAYABLE BY YOU TO RAMPER WALLET FOR USE OF THE SERVICES OR ONE HUNDRED U.S. DOLLARS ($100), IF YOU HAVE NOT HAD ANY PAYMENT OBLIGATIONS TO RAMPER WALLET, AS APPLICABLE.

IN NO EVENT SHALL RAMPER WALLET NOR ITS DIRECTORS, EMPLOYEES, PARTNERS, AGENTS, SUPPLIERS, OR AFFILIATES, BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING WITHOUT LIMITATION, LOSS OF PROFITS, DATA, USE, GOODWILL, OR OTHER INTANGIBLE LOSSES, RESULTING FROM: (I) YOUR ACCESS TO OR USE OF OR INABILITY TO ACCESS OR USE THE SERVICES, INCLUDING, BUT NOT LIMITED TO: ANY UNAUTHORIZED USE OF YOUR WALLET ADDRESS AND/OR PRIVATE KEY DUE TO YOUR FAILURE TO MAINTAIN THE CONFIDENTIALITY OF YOUR WALLET, ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SERVICES OR ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE THAT ARE FOUND IN RAMPER WALLET SOFTWARE OR THAT MAY BE TRANSMITTED TO OR THROUGH OUR SERVICES BY ANY THIRD PARTY (REGARDLESS OF THE SOURCE OF ORIGINATION); (II) ANY CONDUCT OR CONTENT OF ANY THIRD PARTY; AND (III) UNAUTHORIZED ACCESS, USE, OR ALTERATION OF YOUR TRANSMISSIONS OR CONTENT, WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), OR ANY OTHER LEGAL THEORY, WHETHER OR NOT WE HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGE, AND EVEN IF A REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE.

THE LIMITATIONS OF LIABILITY IN THIS SECTION PROTECT RAMPER WALLET’S AFFILIATES, AND THE DIRECTORS, OFFICERS, EMPLOYEES, AGENTS, ADVISERS, AND REPRESENTATIVES OF RAMPER WALLET AND ITS AFFILIATES, AND ALL OF THEIR RESPECTIVE PREDECESSORS, SUCCESSORS, AND ASSIGNS, TO THE SAME EXTENT THAT RAMPER WALLET IS PROTECTED.

SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF CERTAIN WARRANTIES OR THE LIMITATION OF LIABILITY FOR SOME TYPES OF DAMAGES. TO THAT END, THE EXCLUSIONS OF WARRANTIES AND THE LIMITATIONS OF LIABILITY ARE TO THE FULLEST EXTENT PERMITTED BY LAW.

YOU AGREE TO WAIVE ALL RIGHTS TO ASSERT ANY CLAIMS UNDER APPLICABLE LAWS AND REGULATIONS AND YOU AGREE THAT YOU MAY MAKE CLAIMS BASED ONLY ON THESE TERMS.

YOU ACKNOWLEDGE THAT RAMPER WALLET HAS ENTERED INTO THESE TERMS IN RELIANCE UPON THE DISCLAIMERS AND LIMITATIONS OF LIABILITY IN THESE TERMS, AND THAT THE SAME FORM AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN YOU AND RAMPER WALLE&#x54;**.**

1. **Privacy Policy**

Please refer to our Privacy Policy <<https://docs.ramper.xyz/ramper-wallet/privacy-policy>> for information about how we collect, use, and disclose information from our App users. By submitting personal data through our Services, you agree to the terms of our Privacy Policy and you expressly consent to the collection, use, and disclosure of your personal data in accordance with the Privacy Policy.

1. **Future changes to the App**

We are always working to improve the App, so our products and Services may change over time. We may suspend or discontinue any part of Ramper Wallet, or we may introduce new features or impose limitations on certain features or restrict access to part or all the App.

1. **Resolving Disputes; Binding Arbitration**

We want to address your concerns without needing a formal legal case. Before filing a claim against Ramper Wallet, you agree to contact us and attempt to resolve the claim informally by sending a written notice of your claim by email at <hi@ramper.xyz>. The notice must (a) include your name, residence address, email address, and telephone number; (b) describe the nature and basis of the claim; and (c) set forth the specific relief sought. Our notice to you will be sent to the email address associated with your online account and will contain the information described above. If we can’t resolve matters within thirty (30) days after any notice is sent, either party may initiate a formal proceeding.

Please read the following section carefully because it requires you to arbitrate certain disputes and claims with Ramper Wallet and limits the manner in which you can seek relief from us, unless you opt out of arbitration by following the instructions set forth below. No class or representative actions or arbitrations are allowed under this arbitration provision. In addition, arbitration precludes you from suing in court or having a jury trial.

1. No Representative Actions. You and Ramper Wallet agree that any dispute arising out of or related to these Terms, or our Services is personal to you and Ramper Wallet and that any dispute will be resolved solely through individual action, and will not be brought as a class arbitration, class action or any other type of representative proceeding.
2. Arbitration of Disputes. Except for claims disputes in which you or Ramper Wallet seeks injunctive or other equitable relief for the alleged infringement or misappropriation of intellectual property, you and Ramper Wallet waive your rights to a jury trial and to have any other dispute arising out of or related to these Terms or our Services, including claims related to privacy and data security, (collectively, “Disputes”) resolved in court. All Disputes shall be submitted to the Singapore International Arbitration Centre (“SIAC”) to be resolved through confidential, binding arbitration before one arbitrator. Arbitration proceedings will be held in Singapore. You and Ramper Wallet agree that Disputes will be held in accordance with the SIAC Arbitration Rules and Procedures (“SIAC Rules”). The most recent version of the SIAC Rules is incorporated into these Terms by reference. You either acknowledge and agree that you have read and understand the SIAC Rules or waive your opportunity to read the SIAC Rules and waive any claim that the SIAC Rules are unfair or should not apply for any reason.
3. The arbitration will allow for the discovery or exchange of non-privileged information relevant to the Dispute. The arbitrator, Ramper Wallet, and you will maintain the confidentiality of any arbitration proceedings, judgments, and awards, including information gathered, prepared and presented for purposes of the arbitration or related to the Dispute(s) therein. The arbitrator will have the authority to make appropriate rulings to safeguard confidentiality unless the law provides to the contrary. The duty of confidentiality doesn’t apply to the extent that disclosure is necessary to prepare for or conduct the arbitration hearing on the merits, in connection with a court application for a preliminary remedy, or in connection with a judicial challenge to an arbitration award or its enforcement, or to the extent that disclosure is otherwise required by law or judicial decision.
4. Any Dispute must be filed within one year after the relevant claim arose; otherwise, the Dispute is permanently barred, which means that you and Ramper Wallet will not have the right to assert the claim.
5. If any portion of this section is found to be unenforceable or unlawful for any reason, (1) the unenforceable or unlawful provision shall be severed from these Terms; (2) severance of the unenforceable or unlawful provision shall have no impact whatsoever on the remainder of this section or the parties’ ability to compel arbitration of any remaining claims on an individual basis pursuant to this section; and (3) to the extent that any claims must therefore proceed on a class, collective, consolidated, or representative basis, such claims must be litigated in a civil court of competent jurisdiction and not in arbitration, and the parties agree that litigation of those claims shall stay pending the outcome of any individual claims in arbitration. Further, if any part of this section is found to prohibit an individual claim seeking public injunctive relief, that provision will have no effect to the extent such relief is allowed to be sought out of arbitration, and the remainder of this section will be enforceable.
6. **Governing Law**

These Terms and your access to and use of the Services shall be governed by and construed and enforced in accordance with the laws of Saint Vincent and the Grenadines without giving effect to the conflict of laws principles thereof.

1. **Termination**

Notwithstanding the foregoing, we may suspend or terminate your access to the Services at any time in connection with any transaction as required by applicable law, any governmental authority, or if we in our sole and reasonable discretion determine you are violating these Terms or the terms of any third-party Services provider at our sole discretion, at any time and without notice to you. Such suspension or termination shall not be constituted a breach of these Terms by Ramper Wallet. In accordance with its anti-money laundering, anti-terrorism, anti-fraud, and other compliance policies and practices, we may impose reasonable limitations and controls on the ability of you or any beneficiary to utilize the Services. Such limitations may include where good cause exists, rejecting transaction requests, freezing funds, or otherwise restricting you from using the Services.

You may disconnect your Wallet at any time. You acknowledge and agree that we shall have no liability or obligation to you in such an event and that you will not be entitled to a refund of any amounts that you have already paid to us or any third party, to the fullest extent permitted by applicable law. Upon any termination, discontinuation or cancellation of the Services, the following Sections will survive: 1, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20 and 21.

1. **Severability**

If any term, clause, or provision of these Terms is held invalid or unenforceable, then that term, clause, or provision will be severable from these Terms and will not affect the validity or enforceability of any remaining part of that term, clause, or provision, or any other term, clause, or provision of these Terms.

1. **Injunctive Relief**

You agree that a breach of these Terms will cause irreparable injury to Ramper Wallet for which monetary damages would not be an adequate remedy and Ramper Wallet shall be entitled to equitable relief in addition to any remedies it may have hereunder or at law without a bond, other security, or proof of damages.

1. **Miscellaneous**

These Terms constitute the entire agreement between you and Ramper Wallet relating to your access to and use of the Service. These Terms, and any rights and licenses granted hereunder, may not be transferred or assigned by you without the prior written consent of Ramper Wallet, and Ramper Wallet’ failure to assert any right or provision under these Terms shall not constitute a waiver of such right or provision. No waiver by either party of any breach or default hereunder shall be deemed to be a waiver of any preceding or subsequent breach or default. The section headings used herein are for reference only and shall not be read to have any legal effect.

Except as otherwise provided herein, these Terms are intended solely for the benefit of the parties and are not intended to confer third-party beneficiary rights upon any other person or entity.


# Terms of Service

**Date Last Revised: September 11, 2025**

1. **Introduction**

   These Terms of Service (“**Terms**”), which can be viewed as an agreement between an individual or entity user or authorized representative of such user (“**you**”, “**user**”) and Ramper Wallet (“Ramper Wallet”, “we”, “us”, “our”), govern your access and use of all versions of the App and the Services. The App makes certain software services accessible to user via an unhosted mobile device application and browser extension. The App also encompass the websites, apps, software, programming interfaces, tools, features, and functionality accessed or used via <https://www.ramper.xyz/> and related mobile applications and products marketed, advertised, or marked by us with the name “**Ramper Wallet**” from time to time (the “**App**”). Ramper Wallet incorporates technology covered by U.S. Patent No. 12,346,893 B2, granted by the United States Patent and Trademark Office. All rights under this patent are reserved by RAMPER LABS, LLC and Patent's inventors.

   **By accessing the App and/or using any or all of the Services, you accept and agree to be legally bound by these Terms and all of the terms incorporated herein by reference.**

   Ramper Wallet reserves the right to modify or replace any of these Terms in its sole discretion from time to time. The “**Date Last Revised**” specified on these Terms indicates the date on which the Terms were last modified. Please check these Terms periodically to ensure that you are aware of and in compliance with the most current version of these Terms. Any revision to the Terms shall take effect immediately upon such revised Terms being made accessible via the Services. Such revised Terms shall be binding on you, and by your continued access and/or use of the App for purposes of participating in the Services, you shall be deemed to agree to and accept the Terms as revised.

   **THE APP IS DEVELOPED AND PROVIDED ON AN “AS-IS” AND “AS AVAILABLE” BASIS BY RAMPER WALLET AND/OR ITS AFFILIATES, AND RAMPER WALLET AND ITS AFFILIATES (SAVE TO THE EXTENT PROHIBITED BY APPLICABLE LAWS) EXPRESSLY DISCLAIM ANY AND ALL REPRESENTATIONS, WARRANTIES AND/OR CONDITIONS OF ANY KIND IN RESPECT THEREOF. IF YOU ARE IN ANY DOUBT AS TO THE ACTION YOU SHOULD TAKE, YOU SHOULD CONSULT YOUR LEGAL, FINANCIAL, TAX AND/OR OTHER PROFESSIONAL ADVISOR(S). IF YOU DO NOT AGREE TO THESE TERMS, PLEASE DO NOT ACCEPT THESE TERMS, OR PARTICIPATE IN THE SERVICES, AND MUST CANCEL YOUR ACCESS IMMEDIATELY.**

   1. **In these Terms, the following words, and expressions, whenever used in this Agreement shall have the respective meanings indicated below:**

      “**Blockchain Network**” refers to any blockchain network supported by Ramper Wallet.

      “**Digital Asset**” means any digital asset (including a virtual currency,virtual commodity and and NFTs) which is a digital representation of value based on (or built on top of) a cryptographic protocol of a computer network.

      **“Law”** means the laws, statutes, ordinances, rules, regulations, judgments, injunctions, orders and decrees of any governmental authority.

      “**Wallet**” means a digital storage component provided by the App, encompassing both the native wallets generated by the App and third-party wallets that can be imported and accessed within the App, for storing, managing, and facilitating transactions involving your Digital Assets stored on the blockchain(s) supported by the App.
   2. **Acknowledgement of Risk: As with any asset, the value of Digital Assets can increase or decrease and there can be a substantial risk that you lose money buying, selling, holding, or investing in Digital Assets. You should consult your financial advisor, legal or tax professional regarding your specific situation and financial condition and carefully consider whether trading or holding Digital Assets is suitable for you.**

      **Ramper Wallet is not registered with the U.S. Securities and Exchange Commission and does not offer securities services in the United States or to U.S. persons.  You acknowledge that Digital Assets are not subject to protections or insurance provided by the Federal Deposit Insurance Corporation or the Securities Investor Protection Corporation.**
   3. **NOT FINANCIAL ADVICE: WE DO NOT PROVIDE INVESTMENT OR FINANCIAL ADVICE OR CONSULTING SERVICES. WE ARE SOLELY THE PROVIDER OF RAMPER WALLET AND WE DO NOT ADVISE OR MAKE RECOMMENDATIONS ABOUT ENGAGING IN DIGITAL ASSET TRANSACTIONS OR OPERATIONS. DECISIONS TO ENGAGE IN TRANSACTIONS OR PERFORM OPERATIONS INVOLVING DIGITAL ASSETS SHOULD BE TAKEN ON YOUR OWN ACCORD.**
2. **Wallet Registration and Security**
   1. **Wallet registration**

      You shall create a Wallet using your social login (such as Facebook, Twitter, Google, and Apple) or email (“**Social Login**”) to use Ramper Wallet. When creating a Wallet, passphrase will be created, you could choose to view this passphrase at any time. You are encouraged to backup passphrase for the Wallet. Ramper Wallet uses your Social Login to create an account linked to your Wallet. You shall not provide us with another person’s Social Login. You agree to immediately notify us of any unauthorized use of your password or any other breach of security of your Wallet. Notwithstanding the foregoing, you acknowledge and agree that you shall assume all risks related to the use of the Services and you shall be solely responsible for maintaining the confidentiality and security of your private key. When you create a Wallet, you are strongly advised to take precautions in order to avoid loss of access to and/or control over your Wallet. Suggested measures include, but are not limited to, the following: (a) creating a strong unique password that you do not use for any other purpose (i.e. different to your phone password or any other passwords you use for websites, online services, etc.) and leveraging biometric authentication if available; (b) do not store the password, passphrase in plain text online or in an unsecured physical location; (c) limiting access to your devices and your Wallet; (d) taking all necessary precautions against malware on your devices and networks; and (e) promptly notifying us if you discover or otherwise suspect any security breaches related to your Wallet. Notwithstanding anything to the contrary herein, we shall have no liability whatsoever in connection with activities that occur on your Wallet with or without your authorization.
   2. **Payment and Fees**

      We may charge fees for some or part of the Services we make available to you. We reserve the right to change those fees at our discretion. Fees applicable to the Services or any component of the Services, if any, shall be set forth at <https://www.ramper.xyz/> and/or the Ramper Wallet mobile application.

      You may incur charges from third parties for use of linked services. For example, you may be charged fees via the DApps and/or DEXs that you may access via the App.
   3. **Transaction Fees**

      There may be transaction fees (e.g. mining fees) associated with your virtual currency transactions that are required by respective blockchain network with which the Services are compatible. You must ensure that you have an adequate balance in your Wallet and/or “gas” to complete transactions before initiating a transaction. You acknowledge and agree that we will not be liable for any failed transactions or losses you incur due to incorrectly set transaction fees (i.e. too low or too high) or due to insufficient funds or gas associated with your Wallet address. You further acknowledge and agree that we do not have access to your or anyone else’s transactions.
   4. **Taxes**

      It is your responsibility to determine what, if any, taxes apply to the transactions that you have submitted transaction details for via the Services, and it is your responsibility to report and remit the correct tax to the appropriate tax authority. You agree that we are not responsible for determining whether taxes apply to your transactions or for collecting, reporting, withholding, or remitting any taxes arising from any Digital Asset-related transactions.
   5. **Ownership and Control**

      You own and control Digital Assets held in your Wallet. As the sole owner of digital assets in your Wallet, you shall bear all risk of loss of such digital assets. Ramper Wallet shall have no liability for digital asset fluctuations or loss associated with your use of the App. At any time, subject to outages, downtime, and other applicable policies, you may withdraw your Digital Assets by sending it to a different blockchain address.
3. **Authority/Terms of Service**

   Ramper Wallet retains all authority over the issuing, maintenance, and closing of the Services. The decision of Ramper Wallet’s management, concerning any use of the Services, or dispute resolution, is final and shall not be open to review or appeal.
4. **Services**\
   Ramper Wallet is a non-custodial wallet software, for Digital Assets, meaning you are solely in control of and responsible for your Digital Assets and passphrase, and accordingly you can authorize transactions from your wallet address. You expressly acknowledge and agree that as Ramper Wallet is a non-custodial wallet software, you are solely responsible for your activity and any risk of loss at all times.
   1. **Our Services.** The App allows you to:

      1. generate Wallet addresses that you may use to send and receive Digital Assets;
      2. browse and access third party decentralized application(s) (“**DApp**(s)”) and third party decentralized exchanges (“**DEX**”) through the mobile application’s web browser;
      3. swap/trade Digital Assets through DApp functionality made available by third party service provider(s) (this service may be determined to be offered from time to time);
      4. view addresses and information that are part of Digital Asset networks and broadcast transactions;
      5. view Digital Asset price information made available by third party service provider(s); and
      6. broadcast Digital Asset transaction data to Blockchain without requiring you to download or install the associated blockchain-based software to your local device;
      7. additional functionality as Ramper Wallet may add to the App from time to time.

      To use the Ramper Wallet’s Services, you will need to be logged in by the Social Login or using the passphrase you generated when you created your Wallet. Once you are logged in, you may initiate a transaction using Ramper Wallet’s Services any time that you want as long as you have a valid login session. Ramper Wallet is entitled to rely on the transaction you make and has no duty to inquire into or investigate the validity or accuracy of any transaction, though it may, at its sole discretion, inquire into or investigate such transaction.

      We are not your brokers, intermediaries, agents, advisors, or custodians, and we do not have a fiduciary relationship or obligation to you regarding any other decisions or activities that you effect when using your Wallet or our Services. We are not responsible for any activities that you engage in when using your Wallet, and you should understand the risks associated with Digital Assests described more fully in these Terms.
   2. **Account Password and Security**

      An encrypted backup of certain information associated with your Wallet can be stored on eligible devices. The Social Login and/or passphrase is associated with the Wallet address and, together, they can be used to authorize the transfer of Digital Assets to and from that Wallet address. You are solely responsible for the retention and security of your Social Login, passphrase and any mnemonic phrase (“**Secret Phrase**”) associated with your Wallet. Your Secret Phrase is the only way to access the Digital Assets associated with your Wallet. Anyone that has access to your Secret Phrase can access your Digital Assets. You must keep your Wallet address, and Secret Phrase access information secure. It is very important that you backup your backup passphrases. Failure to do so may result in the loss of control of Digital Assets associated with your Wallet. You acknowledge and agree that we do not receive or store your Wallet password, encrypted private key, unencrypted private key, or Secret Phrase associated with your Wallet. We cannot generate a new passphrase for your Wallet if you fail to remember your original passphrase. If you have not safely stored a backup of any Wallet address and passphrase pairs maintained in your Wallet, you accept and acknowledge that any Digital Assets you have associated with such Wallet address will become inaccessible. You agree that Ramper Wallet and its affiliates shall have no responsibility or liability whatsoever in the event you are unable to access your Wallet for any reason including without limitation your failure to keep your Wallet address, and Secret Phrase information secure.
   3. **Use of Third Party Materials**

      If you access or use DApps or DEX, including, without limitation, DApp functionality embedded within the Services such as the trade/swap Digital Assets function (**“Third Party Materials”**), you acknowledge and agree that:

      1. Ramper Wallet makes no warranties or representations, express or implied, about such linked Third Party Materials, the third parties they are owned and operated by, the information contained on them, the suitability of their products or services, or the assets they make accessible;
      2. Ramper Wallet is not responsible for your access or use of Third Party Materials and shall have no liability whatsoever in connection with your use of Third Party Materials, including, without limitation, any transactions you dispute;
      3. the limits of amounts that you may exchange via Third Party Materials per day shall be subject to any requirements of the third-party developed smart contracts;
      4. blockchain operations are irrevocable meaning when you conduct any transactions via Third Party Materials, you shall be solely responsible for the consequences of any issues associated with such transactions, including, without limitation, your transfer to an incorrect address or problems associated with the node servers selected by you;
      5. when you use Third Party Materials, third-party developed smart contracts may charge you handling fees and/or service fees and any information displayed on Ramper Wallet relating to such fees are for your reference only as Ramper Wallet cannot and does not guarantee its accuracy, applicability, reliability, integrity or appropriateness, nor shall Ramper Wallet be liable for any loss or damage that may be caused directly or indirectly by your use of these contents; and
      6. Ramper Wallet may, in its discretion, charge such fees at any time in the future. Any updated fees will apply to any transaction that occurs following the effective date of the updated fees.
   4. **Digital Asset Transactions**

      In order for all proposed Digital Asset transactions to be completed, they must be confirmed and recorded in Blockchain Networkor Digital Asset’s associated public blockchain. Such networks are decentralized, peer-to-peer networks supported by independent third parties, which we do not own, control, or operate. We have no control over the blockchain networks and, therefore, cannot and do not ensure that any transaction details that you submit via our Services will be confirmed and processed. By using the App, you acknowledge and agree that: (i) we do not have the ability to cancel or otherwise modify your transaction; (ii) the transaction details you submit may not be completed, or may be substantially delayed, by the applicable blockchain networks; (iii) we do not store, send, or receive Digital Assets; and (iv) any transfer that occurs in relation to any Digital Asset occurs on the relevant blockchain network and not on a network owned by us and therefore we do not guarantee the transfer of title or right in any Digital Asset.
   5. **Accuracy of Information Provided by User**

      You represent and warrant that any information you provide via the Services is accurate and complete. You accept and acknowledge that we are not responsible for any errors or omissions that you make in connection with any Digital Asset transaction initiated via the Services. We strongly encourage you to review your transaction details carefully before attempting to transfer a Digital Asset.
5. **You accept and acknowledge**
   1. The prices and liquidity of cryptocurrency assets are extremely volatile. Fluctuations in the price of other digital assets could materially and adversely affect the Digital Assets made available through the Services, which may also be subject to significant price volatility. We cannot guarantee that you will not lose money and have no responsibility to you for any such loss.
   2. There are risks associated with using an internet-based currency, including but not limited to, the risk 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 Wallet. You accept and acknowledge that Ramper Wallet will not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Services for transactions, however caused.
   3. The regulatory regime governing blockchain technologies, cryptocurrencies, and digital assets is uncertain, and new regulations or policies may materially adversely affect the development of the Services.
   4. The Services may rely on third-party apps to perform transactions with respect to any digital assets. If we are unable to maintain a good relationship with such app providers; if the terms and conditions or pricing of such app providers change; if we violate or cannot comply with the terms and conditions of such apps; or if any of such apps loses market share or falls out of favor or is unavailable for a prolonged period of time, access to and use of the Services will suffer.
   5. You further acknowledge and accept the risk that your Digital Assets, or any Digital Assets you acquire, including through a third-party exchange may lose some or all of their value and you may suffer loss due to the fluctuation of prices of Digital Assets and/or significant price slippage and cost. You understand that anyone can create a Digital Asset, including fake versions of existing Digital Assets and Digital Asset that falsely claim to represent projects, and acknowledge and accept the risk that you may mistakenly trade those or other Digital Asset. You further acknowledge that we are not responsible for any of these variables or risks and that we cannot be held liable for any resulting losses that you experience while accessing or using the Services.
6. **Contracting Party and Eligibility to access to and use the Services**
   1. The party that is legally bound by these Terms (and that is identified in these Terms as ‘you’) is either the individual who accepted these Terms (the “Signatory”); or the individual or entity, if any, that legally authorized the Signatory to accept these Terms on its behalf (the “Principal”).

      If the Signatory asserts that there is a Principal but the individual or entity identified as the Principal (i) does not fully satisfy the Eligibility Conditions under Section 6(b) below or (ii) is for any reason not legally bound to these Terms, then the Signatory will be bound to these Terms in his or her personal capacity.
   2. To be eligible to access and/or use the Services, you must satisfy each of the following conditions (the “Eligibility Conditions”):

      ***If you are an individual:***

      1. you must be at least 18 years old or above the minimum age in your jurisdiction to have the legal capacity to enter into contracts and to use the Services;
      2. you are not a citizen or permanent resident of, you do not have a primary residence in, and you are not physically located in China, Cuba, Egypt, Hong Kong, Iran, Iraq, Democratic People’s Republic of Korea, Saudi Arabia, Syria, Ukraine, Vietnam or any country (A) where participation in the Services is prohibited, restricted or unauthorized in any form and/or manner whether in full or in part under the laws, regulatory requirements, or rules in such jurisdiction or (B) where it is likely that the Digital Asset transactions would be construed as the transactions of a security (howsoever named), financial services or investment products under the laws, regulatory requirements, or rules of such jurisdiction; and
      3. You are not a Specially Designated National as identified by the Office of Foreign Assets Control of the U.S. Treasury Department; or on the Consolidated List of Targets maintained by the U.K. Office of Financial Sanctions Implementation of HM Treasury; or on the consolidated list of persons, groups, and entities subject to financial sanctions maintained by the European Union; or on an equivalent or similar list maintained by the United Nations Security Council, or any other jurisdiction

      ***If you are an entity:***

      1. you are duly organized and validly existing under the applicable laws of the jurisdiction of your organization;
      2. you have authorized your Signatory to accept these Terms on your behalf;
      3. you are not a resident for tax purposes of, you do not have a domicile in, and you are not physically located in China, Cuba, Egypt, Hong Kong, Iran, Iraq, Democratic People’s Republic of Korea, Saudi Arabia, Syria, Ukraine, Vietnam or any country or jurisdiction (A) where participation in the Services is prohibited, restricted or unauthorized in any form and/or manner whether in full or in part under the Laws, regulatory requirements, or rules in such jurisdiction or (B) where it is likely that the Digital Asset transactions would be construed as the transactions of a security (howsoever named), financial services or investment products under the laws, regulatory requirements, or rules of such jurisdiction; and
      4. You are not a Specially Designated National as identified by the Office of Foreign Assets Control of the U.S. Treasury Department; or on the Consolidated List of Targets maintained by the U.K. Office of Financial Sanctions Implementation of HM Treasury; or on the consolidated list of persons, groups, and entities subject to financial sanctions maintained by the European Union; or on an equivalent or similar list maintained by the United Nations Security Council, or any other jurisdiction.

      You can only use our Services if permitted under the Laws of your jurisdiction. For the avoidance of doubt, you may not use our Services if you are located in, or a citizen or resident of any state, country, territory or other jurisdiction where your use of our Services would be illegal or otherwise violate any applicable laws. Please make sure that your accessing, using the Services are not prohibited, restricted, or regulated by any law or regulation applicable to you. You are solely responsible (i) to determine if there are any such laws or regulations (including foreign exchange restrictions) applicable to you and to comply with them and (ii) to determine if there are any governmental or other consents or approvals which you need to obtain, and to obtain and maintain them.

      You are accessing and/or using the Services as principal and for your own account, and not as nominee or agent for, or for the account of, any other person.
   3. If you do not fully satisfy each of the Eligibility Conditions at all times from the time that you accept these Terms, then you may not, and you agree not to, access to and/or use the Services. If you access to and/or use the Services notwithstanding that you do not meet each of the Eligibility Conditions, you acknowledge that (a) your access to and/or use the Services is a breach of these Terms, and (b) you access to and/or use the Services at your own risk. You acknowledge and agree that Ramper Wallet will not be liable to you or any other party arising from or in connection with your access to and/or use the Services if you do not meet each of the Eligibility Conditions.
   4. Ramper Wallet may require you to provide certain information to confirm your satisfaction of the Eligibility Conditions and to complete the transactions related to the Services. If you do not provide the required information, then you may be unable to use the Services. Ramper Wallet’s request for, and your provision of, any information from you, and any actions or decisions Ramper Wallet may take based on that information, do not affect your obligations under this Section 6.
7. **Intellectual Property**
   1. **Proprietary property of Ramper Wallet**

      The Services, including its “look and feel” (e.g., text, graphics, images, logos, page headers, button icons, and scripts), proprietary content, information and other materials, and all content and other materials contained therein, including, without limitation, the Ramper Wallet logo and all designs, layouts, displayed, technical information, text, graphics, pictures, data, software, sound files, other files, and the selection and arrangement thereof are the proprietary property of Ramper Wallet or our affiliates, licensors, or users, as applicable, and you agree not to take any action(s) inconsistent with such ownership interests. We and our affiliates, licensors, and users, as applicable, reserve all rights in connection with the Services and its content, including, without limitation, the exclusive right to create derivative works.

      “Ramper Wallet” name, logo, trademarks, and any Ramper Wallet product or Services names, designs, logos, and slogans are the intellectual property of Ramper Wallet or our affiliates or licensors and may not be copied, imitated, or used, in whole or in part, without our prior written permission in each instance. You may not use any metatags or other “hidden text” utilizing “Ramper Wallet” or any other name, trademark, or product or Services name of Ramper Wallet or our affiliates or licensors without our prior written permission. In addition, the “look and feel” of the Services constitutes the Services mark, trademark, or trade dress of Ramper Wallet and may not be copied, imitated, or used, in whole or in part, without our prior written permission.

      All other third-party trademarks, registered trademarks, and product names mentioned on the Services or displayed on the Services are the property of their respective owners and may not be copied, imitated, or used, in whole or in part, without the permission of the applicable intellectual property rights holder. 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 Ramper Wallet.
   2. **License**

      As long as you agree to and comply with the present Terms, we grant you a non-exclusive, non-sublicensable and non-transferable license to use the App for your personal use or internal business use only. Except as otherwise expressly permitted in these Terms, you will not: (a) reproduce, modify, adapt or create derivative works of any part of the App; (b) rent, lease, distribute, sell, sublicense, transfer, or provide access to the App; (c) use the App for the benefit of any third party; (d) incorporate the App into a product or service you provide to a third party without our prior written consent; (d) circumvent mechanisms in the App intended to limit your use; (f) reverse engineer, disassemble, decompile, translate, or otherwise seek to obtain or derive the source code, including images and texts, underlying ideas, algorithms, file formats or non-public APIs to the App, except to the extent expressly permitted by applicable law (and then only upon advance notice to us); (g) remove or obscure any proprietary or other notices contained in the App (h) use the App for competitive analysis, as part of any other software or project of any kind or to build competitive products.
   3. **License to NFT Content**

      You may be able to store non-fungible tokens (“NFTs”) on your Wallet. You hereby represent and warrant that you own all legal right, title in and interest to, including all intellectual property rights to the content associated with the NFT (“NFT Content”), or you are legally authorized by the owner of the intellectual property in the NFT Content to store the NFTs on your Wallet. You retain all rights to the NFT Content except for rights expressly granted herein. By using the App, you grant us a license to access, use, host, cache, store, copy, reproduce, transmit, display, publish, distribute, adapt and modify (for technical purposes, e.g., making sure content is viewable on smartphones as well as computers and other devices) the NFT Content in any and all media or distribution methods (now know or later developed) solely as required to be able to operate and provide services of Ramper Wallet. We do not monitor the NFTs and NFT Content stored on your Wallet for any infringement of a third party’s intellectual property rights. Accordingly, we assume no liability for any action regarding any content provided by you. You further acknowledge and agree it is your sole responsibility to carry out all necessary due diligence for all your activities relating to NFTs, and you represent and warrant that you have not and are not relying on, and shall have no remedies, in respect of any statement or representation made by us in relation to any transfer or interaction otherwise with any NFTs. If you have a dispute in relation to the NFTs and/or NFT Content, you release us from claims, demands, and damages of every kind and nature, known and unknown, arising out of or in any way connected with such disputes. In entering into this release, you expressly waive any protections (whether statutory or otherwise) that would otherwise limit the coverage of this release to include those claims which you may know or suspect to exist in your favor at the time of agreeing to this release.
8. **Your responsibilities**

   You agree not to do any of the following:

   1. Impersonate someone or use or attempt to use another user’s Wallet without authorization or use our Services in any manner that could interfere, disrupt, negatively affect, or inhibit other users from fully enjoying it;
   2. Take any action that may impose an unreasonable or disproportionately large load on our or any of our third party providers’ infrastructure;
   3. Access or use the Services to copy, modify, or create derivative works of the Services or any related software or code, or reverse engineer, disassemble, decompile, decode, adapt, or do anything that might discover source code or bypass or circumvent measures employed to prevent or limit access to the Services, or otherwise attempt to derive or gain access to any software component of the Services, including those of third parties.
   4. Collect or store any personally identifiable information from the Services from other users of the Services without their express permission.
   5. Impersonate or misrepresent your affiliation with any person or entity.
   6. Engage or assist in any activity that violates any law, statute, ordinance, regulation, or sanctions program, or that involves proceeds of any criminal or fraudulent activity (including but not limited to money laundering, terrorist financing or deliberately engaging in activities designed to adversely affect the performance of the Services).
   7. Use the Services in any manner that could interfere with, disrupt, negatively affect, or inhibit other users from fully enjoying the Services.
   8. Violate, misappropriate or infringe the rights of Ramper Wallet, our users, or others, including privacy, publicity, intellectual property, or other proprietary rights.&#x20;
   9. Facilitate or assist another person to do any of the above acts.
9. **Your representations, warranties and covenants**

   By using the Services, you further represent, warrant and covenant that:

   1. Any Digital Assets you transfer via the Services have been legally obtained by, and belong to, you;
   2. You will not provide any false, inaccurate or misleading information while using the Services, or engage in any activity that operates to defraud Ramper Wallet, other users of the Services, or any other person or entity;
   3. You will not use the Services to transmit or exchange Digital Assets that are the direct or indirect proceeds of any criminal or fraudulent activity, including, without limitation, terrorism or tax evasion;
   4. Any Digital Assets you use in connection with the Services are either owned by you or you are validly authorized to carry out actions using such assets;
   5. You will pay all fees necessary for interacting with Blockchain Network with which the Services are compatible, including "gas" costs, as well as all fees charged by us for your use of the Services; and
   6. You agree to comply with all applicable U.S. and non-U.S. export control and trade sanctions laws ("Export Laws"). Without limiting the foregoing, you may not download the App or use the Services if (i) you are in, under the control of, or a national or resident of China, Cuba, Egypt, Hong Kong, Iran, Iraq, Democratic People’s Republic of Korea, Saudi Arabia, Syria, Ukraine, Vietnam or any other country subject to United States embargo, UN Security Council Resolutions, HM Treasury's financial sanctions regime, or if you are on the U.S. Treasury Department's Specially Designated Nationals List or the U.S. Commerce Department's Denied Persons List, Unverified List, Entity List HM Treasury's financial sanctions regime; or (ii) you intend to supply any Services to China, Cuba, Egypt, Hong Kong, Iran, Iraq, Democratic People’s Republic of Korea, Saudi Arabia, Syria, Ukraine, Vietnam or any other country subject to United States embargo or HM Treasury's financial sanctions regime (or a national or resident of one of these countries), or to a person on the Specially Designated Nationals List, Denied Persons List, Unverified List, Entity List, or HM Treasury's financial sanctions regime.
10. **Indemnity**

    To the fullest extent permitted by applicable law, you will indemnify, defend and hold harmless Ramper Wallet, and our affiliates, officers, directors, agents, partners and employees (individually and collectively, the “Ramper Wallet Parties”) from and against all actual or alleged claims, damages, awards, judgments, losses, liabilities, obligations, taxes, penalties, interest, fees, expenses (including, without limitation, attorneys’ fees and expenses), and costs (including, without limitation, court costs, costs of settlement, and costs of pursuing indemnification and insurance), of every kind and nature whatsoever, whether known or unknown, foreseen or unforeseen, matured or unmatured, or suspected or unsuspected, in law or equity, whether in tort, contract, or otherwise (collectively, “Claims”) arising out of or related to (a) your use of misuse of the Services, (b) your violation, misappropriation or infringement of any rights of another (including intellectual property rights or privacy rights), (c) your violation or breach of any term of these Terms or applicable law, (d) your violation of the rights of or obligations to a third party, including another user or third-party, and (e) your negligence or willful misconduct. You agree to promptly notify Ramper Wallet Parties of any third-party Claims, cooperate with Ramper Wallet Parties in defending such Claims and pay all fees, costs and expenses associated with defending such Claims (including attorneys’ fees). You also agree that the Ramper Wallet Parties will have control of the defense or settlement, at Ramper Wallet’ sole option, of any third-party Claims. This indemnity is in addition to, and not in lieu of, any other indemnities set forth in a written agreement between you and Ramper Wallet.

    If Ramper Wallet is obligated to respond to a subpoena or other compulsory legal or court order or process relating to subject matter that is within the scope of your indemnity under this Section 10, you agree to reimburse Ramper Wallet its legal fees, as well as its employees’ and contractors’ time and materials spent responding to the subpoena or other compulsory legal or court order or process at reasonable hourly rates.
11. **Warranty Disclaimers**

    THE SERVICES LISTED THEREIN ARE PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. RAMPER WALLET EXPRESSLY DISCLAIMS ALL WARRANTIES ARISING FROM COURSE OF DEALING, USAGE, OR TRADE PRACTICE. RAMPER WALLET MAKES NO WARRANTY OF ANY KIND THAT THE SERVICES, OR ANY PRODUCTS OR RESULTS OF THE USE THEREOF, WILL MEET USERS’ OR ANY OTHER PERSON’S REQUIREMENTS, OPERATE WITHOUT INTERRUPTION, BE AVAILABLE AT ANY TIME OR IN ANY GEOGRAPHIC LOCATION, ACHIEVE ANY INTENDED RESULT, BE COMPATIBLE OR WORK WITH ANY SOFTWARE, SYSTEM, OR OTHER SERVICES, OR BE SECURE, ACCURATE, COMPLETE, FREE OF HARMFUL CODE, OR ERROR FREE. RAMPER WALLET MAKES NO WARRANTY OR REPRESENTATION THAT THE SERVICES DOES NOT INFRINGE UPON THE INTELLECTUAL PROPERTY RIGHTS OF OTHERS, THAT THE SERVICES WILL NOT INCIDENTALLY INFRINGE UPON THE INTELLECTUAL PROPERTY RIGHTS OF OTHERS BY NATURE OF ITS OPERATION. RAMPER WALLET CANNOT GUARANTEE THE SECURITY OF ANY DATA THAT USERS DISCLOSE ONLINE. NO ADVICE OR INFORMATION, WHETHER ORAL OR OBTAINED FROM THE SERVICE, WILL CREATE ANY WARRANTY OR REPRESENTATION NOT EXPRESSLY MADE HEREIN. YOU ACCEPT THE INHERENT SECURITY RISKS OF PROVIDING INFORMATION AND DEALING ONLINE OVER THE INTERNET AND WILL NOT HOLD RAMPER WALLET RESPONSIBLE FOR ANY BREACH OF SECURITY.

    RAMPER WALLET MAKES NO REPRESENTATIONS OR WARRANTIES AS TO THE FUNCTIONALITY OF BLOCKCHAIN NETWORK, OR THAT BLOCKCHAIN NETWORK WILL OPERATE FREE FROM INTERRUPTIONS, DELAYS, DEFECTS AND/OR ERRORS THAT MAY DELAY, HINDER OR PREVENT THE TRANSMISSION OF TRANSACTIONS OR MESSAGES TO OR ON BLOCKCHAIN NETWORK, OR ANY OTHER NETWORK. THE DURATION OF ANY IMPLIED WARRANTY THAT IS NOT EFFECTIVELY DISCLAIMED WILL BE LIMITED TO THE LONGER OF (I) THIRTY (30) DAYS FROM THE DATE THAT YOU FIRST USE THE APPLICABLE SERVICE AND (II) THE SHORTEST PERIOD ALLOWED UNDER APPLICABLE LAW. SOME STATES / JURISDICTIONS DO NOT ALLOW LIMITATIONS ON HOW LONG AN IMPLIED WARRANTY LASTS, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU.

    OUR SERVICES RELY ON EMERGING TECHNOLOGIES, SUCH AS BLOCKCHAIN NETWORK AND THIRD PARTY DECENTALIZED EXCHANGES. SOME SERVICES ARE SUBJECT TO INCREASED RISK THROUGH YOUR POTENTIAL MISUSE OF THINGS SUCH AS PUBLIC/PRIVATE KEY CRYPTOGRAPHY. BY USING THE SERVICES, YOU EXPLICITLY ACKNOWLEDGE AND ACCEPT THESE HEIGHTENED RISKS. RAMPER WALLET SHALL NOT BE LIABLE FOR THE FAILURE OF ANY MESSAGE TO SEND TO OR BE RECEIVED BY THE INTENDED RECIPIENT IN THE INTENDED FORM, OR FOR DIMINUTION OF VALUE OF ANY DIGITAL TOKEN OR DIGITAL ASSET ON BLOCKCHAIN NETWORK OR ANY OTHER NETWORK, AND RAMPER WALLET MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE SAME.
12. **Acknowledgment of Certain Risks; Other Disclaimers; Release of Claims**

    YOU ACKNOWLEDGE AND AGREE THAT WE HAVE NO CONTROL OVER, AND NO DUTY TO TAKE ANY ACTION REGARDING: (I) FAILURES, DISRUPTIONS, ERRORS, OR DELAYS IN THE PROCESSING OF DIGITAL ASSETS THAT YOU MAY EXPERIENCE WHILE USING THE SERVICES; (II) THE RISK OF FAILURE OF HARDWARE, SOFTWARE, AND INTERNET CONNECTIONS; (III) THE RISK OF MALICIOUS SOFTWARE BEING INTRODUCED OR FOUND IN THE SOFTWARE UNDERLYING RAMPER WALLET; (IV) THE RISK THAT THIRD PARTIES MAY OBTAIN UNAUTHORIZED ACCESS TO INFORMATION STORED WITHIN YOUR WALLET, INCLUDING, BUT NOT LIMITED TO YOUR WALLET ADDRESS, PRIVATE KEY, AND SECRET PHRASE; AND (V) THE RISK OF UNKNOWN VULNERABILITIES IN OR UNANTICIPATED CHANGES TO THE APPLICABLE BLOCKCHAIN NETWORKS.

    YOU UNDERSTAND THAT THE BLOCKCHAIN NETWORK (AND ALL OTHER NETWORKS WITH WHICH THE SERVICES MAY BE COMPATIBLE) REMAINS UNDER DEVELOPMENT, WHICH CREATES TECHNOLOGICAL AND SECURITY RISKS WHEN USING THE SERVICES IN ADDITION TO UNCERTAINTY RELATING TO DIGITAL ASSETS AND TRANSACTIONS THEREIN. YOU ACKNOWLEDGE THAT THE COST OF TRANSACTING ON BLOCKCHAIN NETWORK IS VARIABLE AND MAY INCREASE AT ANY TIME, THEREBY IMPACTING ANY ACTIVITIES TAKING PLACE ON BLOCKCHAIN NETWORK, WHICH MAY RESULT IN PRICE FLUCTUATIONS OR INCREASED PRICES FOR USING THE SERVICES.

    USE OF THE SERVICES, IN PARTICULAR FOR TRADING DIGITAL ASSETS, MAY CARRY FINANCIAL RISK. DIGITAL ASSETS ARE, BY THEIR NATURE, HIGHLY EXPERIMENTAL, RISKY, AND VOLATILE. TRANSACTIONS ENTERED INTO IN CONNECTION WITH THE SERVICES ARE IRREVERSIBLE, FINAL AND THERE ARE NO REFUNDS. YOU ACKNOWLEDGE AND AGREE THAT YOU WILL ACCESS AND USE THE SERVICES AT YOUR OWN RISK. THE RISK OF LOSS IN TRADING DIGITAL ASSETS CAN BE SUBSTANTIAL. YOU SHOULD, THEREFORE, CAREFULLY CONSIDER WHETHER SUCH TRADING IS SUITABLE FOR YOU IN LIGHT OF YOUR CIRCUMSTANCES AND FINANCIAL RESOURCES. BY USING THE SERVICES, YOU REPRESENT AND WARRANT THAT YOU HAVE BEEN, ARE, AND WILL BE SOLELY RESPONSIBLE FOR MAKING YOUR INDEPENDENT APPRAISAL AND INVESTIGATIONS INTO THE RISKS OF A GIVEN TRANSACTION AND THE UNDERLYING DIGITAL ASSETS. YOU REPRESENT THAT YOU HAVE SUFFICIENT KNOWLEDGE, MARKET SOPHISTICATION, PROFESSIONAL ADVICE, AND EXPERIENCE TO MAKE YOUR EVALUATION OF THE MERITS AND RISKS OF ANY TRANSACTION CONDUCTED IN CONNECTION WITH THE SERVICES OR ANY DIGITAL ASSET. YOU ACCEPT ALL CONSEQUENCES OF USING THE SERVICES, INCLUDING THE RISK THAT YOU MAY LOSE ACCESS TO YOUR DIGITAL ASSETS INDEFINITELY. ALL TRANSACTION DECISIONS ARE MADE SOLELY BY YOU. NOTWITHSTANDING ANYTHING IN THESE TERMS, WE ACCEPT NO RESPONSIBILITY WHATSOEVER FOR, AND WILL IN NO CIRCUMSTANCES BE LIABLE TO YOU IN CONNECTION WITH, YOUR USE OF THE SERVICES FOR PERFORMING DIGITAL ASSET TRANSACTIONS.

    THE SERVICES MAY NOT BE AVAILABLE DUE TO ANY NUMBER OF FACTORS INCLUDING, BUT NOT LIMITED TO, PERIODIC SYSTEM MAINTENANCE, SCHEDULED OR UNSCHEDULED, ACTS OF GOD, UNAUTHORIZED ACCESS, VIRUSES, DENIAL OF SERVICES OR OTHER ATTACKS, TECHNICAL FAILURE OF THE SERVICES AND/OR TELECOMMUNICATIONS INFRASTRUCTURE OR DISRUPTION, AND THEREFORE WE EXPRESSLY DISCLAIM ANY EXPRESS OR IMPLIED WARRANTY REGARDING THE USE AND/OR AVAILABILITY, ACCESSIBILITY, SECURITY OR PERFORMANCE OF THE SERVICES CAUSED BY SUCH FACTORS. WE DO NOT MAKE ANY REPRESENTATIONS OR WARRANTIES AGAINST THE POSSIBILITY OF DELETION, MISDELIVERY OR FAILURE TO STORE COMMUNICATIONS, PERSONALIZED SETTINGS, OR OTHER DATA. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF CERTAIN WARRANTIES. ACCORDINGLY, SOME OF THE ABOVE DISCLAIMERS OF WARRANTIES MAY NOT APPLY TO YOU.

    TO THE MAXIMUM EXTENT PERMITTED BY ALL APPLICABLE LAWS AND REGULATIONS, YOU, FOR AND ON BEHALF OF ALL NATURAL AND LEGAL PERSONS WHO MAY CLAIM THROUGH OR UNDER YOU, ON YOUR BEHALF, OR OTHERWISE IN RESPECT OF YOU, RELEASE AND FOREVER DISCHARGE RAMPER WALLET AND ITS AFFILIATES, AND ITS AND THEIR RESPECTIVE DIRECTORS, OFFICERS, EMPLOYEES, AGENTS, REPRESENTATIVES, SUPPLIERS, ATTORNEYS, AND ADVISERS, AND ALL OF ITS AND THEIR RESPECTIVE PREDECESSORS, SUCCESSORS, AND ASSIGNS, FROM ALL CLAIMS AND CAUSES OF ACTION OF ANY KIND WHATSOEVER, WHETHER UNDER COMMON LAW, STATUTORY, CONTRACTUAL, TORTIOUS, EQUITABLE, OR OTHERWISE, AND ALL LOSSES, DAMAGES, TAXES, LIABILITIES, COSTS, AND EXPENSES, WHICH YOU HAVE, EVER HAD, MAY HAVE, OR HEREAFTER MIGHT HAVE, WHETHER KNOWN OR UNKNOWN, NOW EXISTING OR WHICH MIGHT ARISE OR ACCRUE HEREAFTER, RELATING TO OR ARISING FROM THE MATTERS LISTED IN THIS SECTION.
13. **Limitation of liability**

    IN NO EVENT SHALL RAMPER WALLET BE LIABLE FOR ANY LOSSES REALIZED OR DEMANDED OF USERS RELATED TO USERS’ ACCESS TO OR USE OF THE SERVICES, INCLUDING ANY LOSSES FOR INTELLECTUAL PROPERTY INFRINGEMENT. NOTWITHSTANDING THE FOREGOING, IN NO EVENT SHALL THE MAXIMUM AGGREGATE LIABILITY OF RAMPER WALLET FOR DAMAGES EXCEED THE AMOUNTS YOU HAVE PAID OR ARE PAYABLE BY YOU TO RAMPER WALLET FOR USE OF THE SERVICES OR ONE HUNDRED U.S. DOLLARS ($100), IF YOU HAVE NOT HAD ANY PAYMENT OBLIGATIONS TO RAMPER WALLET, AS APPLICABLE.

    IN NO EVENT SHALL RAMPER WALLET NOR ITS DIRECTORS, EMPLOYEES, PARTNERS, AGENTS, SUPPLIERS, OR AFFILIATES, BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING WITHOUT LIMITATION, LOSS OF PROFITS, DATA, USE, GOODWILL, OR OTHER INTANGIBLE LOSSES, RESULTING FROM: (I) YOUR ACCESS TO OR USE OF OR INABILITY TO ACCESS OR USE THE SERVICES, INCLUDING, BUT NOT LIMITED TO: ANY UNAUTHORIZED USE OF YOUR WALLET ADDRESS AND/OR PRIVATE KEY DUE TO YOUR FAILURE TO MAINTAIN THE CONFIDENTIALITY OF YOUR WALLET, ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SERVICES OR ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE THAT ARE FOUND IN RAMPER WALLET SOFTWARE OR THAT MAY BE TRANSMITTED TO OR THROUGH OUR SERVICES BY ANY THIRD PARTY (REGARDLESS OF THE SOURCE OF ORIGINATION); (II) ANY CONDUCT OR CONTENT OF ANY THIRD PARTY; AND (III) UNAUTHORIZED ACCESS, USE, OR ALTERATION OF YOUR TRANSMISSIONS OR CONTENT, WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), OR ANY OTHER LEGAL THEORY, WHETHER OR NOT WE HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGE, AND EVEN IF A REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE.

    THE LIMITATIONS OF LIABILITY IN THIS SECTION PROTECT RAMPER WALLET’S AFFILIATES, AND THE DIRECTORS, OFFICERS, EMPLOYEES, AGENTS, ADVISERS, AND REPRESENTATIVES OF RAMPER WALLET AND ITS AFFILIATES, AND ALL OF THEIR RESPECTIVE PREDECESSORS, SUCCESSORS, AND ASSIGNS, TO THE SAME EXTENT THAT RAMPER WALLET IS PROTECTED.

    SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF CERTAIN WARRANTIES OR THE LIMITATION OF LIABILITY FOR SOME TYPES OF DAMAGES. TO THAT END, THE EXCLUSIONS OF WARRANTIES AND THE LIMITATIONS OF LIABILITY ARE TO THE FULLEST EXTENT PERMITTED BY LAW.

    YOU AGREE TO WAIVE ALL RIGHTS TO ASSERT ANY CLAIMS UNDER APPLICABLE LAWS AND REGULATIONS AND YOU AGREE THAT YOU MAY MAKE CLAIMS BASED ONLY ON THESE TERMS.

    YOU ACKNOWLEDGE THAT RAMPER WALLET HAS ENTERED INTO THESE TERMS IN RELIANCE UPON THE DISCLAIMERS AND LIMITATIONS OF LIABILITY IN THESE TERMS, AND THAT THE SAME FORM AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN YOU AND RAMPER WALLE&#x54;**.**
14. **Privacy Policy**

    Please refer to our [Privacy Policy](https://docs.ramper.xyz/ramper-wallet/privacy-policy) for information about how we collect, use, and disclose information from our App users. By submitting personal data through our Services, you agree to the terms of our Privacy Policy and you expressly consent to the collection, use, and disclosure of your personal data in accordance with the Privacy Policy.
15. **Future changes to the App**

    We are always working to improve the App, so our products and Services may change over time. We may suspend or discontinue any part of Ramper Wallet, or we may introduce new features or impose limitations on certain features or restrict access to part or all the App.
16. **Resolving Disputes; Binding Arbitration**

    We want to address your concerns without needing a formal legal case. Before filing a claim against Ramper Wallet, you agree to contact us and attempt to resolve the claim informally by sending a written notice of your claim by email at <hi@ramper.xyz>. The notice must (a) include your name, residence address, email address, and telephone number; (b) describe the nature and basis of the claim; and (c) set forth the specific relief sought. Our notice to you will be sent to the email address associated with your online account and will contain the information described above. If we can’t resolve matters within thirty (30) days after any notice is sent, either party may initiate a formal proceeding.

    Please read the following section carefully because it requires you to arbitrate certain disputes and claims with Ramper Wallet and limits the manner in which you can seek relief from us, unless you opt out of arbitration by following the instructions set forth below. No class or representative actions or arbitrations are allowed under this arbitration provision. In addition, arbitration precludes you from suing in court or having a jury trial.

    1. No Representative Actions. You and Ramper Wallet agree that any dispute arising out of or related to these Terms, or our Services is personal to you and Ramper Wallet and that any dispute will be resolved solely through individual action, and will not be brought as a class arbitration, class action or any other type of representative proceeding.
    2. Arbitration of Disputes. Except for claims disputes in which you or Ramper Wallet seeks injunctive or other equitable relief for the alleged infringement or misappropriation of intellectual property, you and Ramper Wallet waive your rights to a jury trial and to have any other dispute arising out of or related to these Terms or our Services, including claims related to privacy and data security, (collectively, “Disputes”) resolved in court. All Disputes shall be submitted to the Singapore International Arbitration Centre (“SIAC”) to be resolved through confidential, binding arbitration before one arbitrator. Arbitration proceedings will be held in Singapore. You and Ramper Wallet agree that Disputes will be held in accordance with the SIAC Arbitration Rules and Procedures (“SIAC Rules”). The most recent version of the SIAC Rules is incorporated into these Terms by reference. You either acknowledge and agree that you have read and understand the SIAC Rules or waive your opportunity to read the SIAC Rules and waive any claim that the SIAC Rules are unfair or should not apply for any reason.
    3. The arbitration will allow for the discovery or exchange of non-privileged information relevant to the Dispute. The arbitrator, Ramper Wallet, and you will maintain the confidentiality of any arbitration proceedings, judgments, and awards, including information gathered, prepared and presented for purposes of the arbitration or related to the Dispute(s) therein. The arbitrator will have the authority to make appropriate rulings to safeguard confidentiality unless the law provides to the contrary. The duty of confidentiality doesn’t apply to the extent that disclosure is necessary to prepare for or conduct the arbitration hearing on the merits, in connection with a court application for a preliminary remedy, or in connection with a judicial challenge to an arbitration award or its enforcement, or to the extent that disclosure is otherwise required by law or judicial decision.
    4. Any Dispute must be filed within one year after the relevant claim arose; otherwise, the Dispute is permanently barred, which means that you and Ramper Wallet will not have the right to assert the claim.
    5. If any portion of this section is found to be unenforceable or unlawful for any reason, (1) the unenforceable or unlawful provision shall be severed from these Terms; (2) severance of the unenforceable or unlawful provision shall have no impact whatsoever on the remainder of this section or the parties’ ability to compel arbitration of any remaining claims on an individual basis pursuant to this section; and (3) to the extent that any claims must therefore proceed on a class, collective, consolidated, or representative basis, such claims must be litigated in a civil court of competent jurisdiction and not in arbitration, and the parties agree that litigation of those claims shall stay pending the outcome of any individual claims in arbitration. Further, if any part of this section is found to prohibit an individual claim seeking public injunctive relief, that provision will have no effect to the extent such relief is allowed to be sought out of arbitration, and the remainder of this section will be enforceable.
17. **Governing Law**

    These Terms and your access to and use of the Services shall be governed by and construed and enforced in accordance with the laws of Saint Vincent and the Grenadines without giving effect to the conflict of laws principles thereof.
18. **Termination**

    Notwithstanding the foregoing, we may suspend or terminate your access to the Services at any time in connection with any transaction as required by applicable law, any governmental authority, or if we in our sole and reasonable discretion determine you are violating these Terms or the terms of any third-party Services provider at our sole discretion, at any time and without notice to you. Such suspension or termination shall not be constituted a breach of these Terms by Ramper Wallet. In accordance with its anti-money laundering, anti-terrorism, anti-fraud, and other compliance policies and practices, we may impose reasonable limitations and controls on the ability of you or any beneficiary to utilize the Services. Such limitations may include where good cause exists, rejecting transaction requests, freezing funds, or otherwise restricting you from using the Services.

    You may disconnect your Wallet at any time. You acknowledge and agree that we shall have no liability or obligation to you in such an event and that you will not be entitled to a refund of any amounts that you have already paid to us or any third party, to the fullest extent permitted by applicable law. Upon any termination, discontinuation or cancellation of the Services, the following Sections will survive: 1, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20 and 21.
19. **Severability**

    If any term, clause, or provision of these Terms is held invalid or unenforceable, then that term, clause, or provision will be severable from these Terms and will not affect the validity or enforceability of any remaining part of that term, clause, or provision, or any other term, clause, or provision of these Terms.
20. **Injunctive Relief**

    You agree that a breach of these Terms will cause irreparable injury to Ramper Wallet for which monetary damages would not be an adequate remedy and Ramper Wallet shall be entitled to equitable relief in addition to any remedies it may have hereunder or at law without a bond, other security, or proof of damages.
21. **Miscellaneous**

    These Terms constitute the entire agreement between you and Ramper Wallet relating to your access to and use of the Service. These Terms, and any rights and licenses granted hereunder, may not be transferred or assigned by you without the prior written consent of Ramper Wallet, and Ramper Wallet’ failure to assert any right or provision under these Terms shall not constitute a waiver of such right or provision. No waiver by either party of any breach or default hereunder shall be deemed to be a waiver of any preceding or subsequent breach or default. The section headings used herein are for reference only and shall not be read to have any legal effect.

    Except as otherwise provided herein, these Terms are intended solely for the benefit of the parties and are not intended to confer third-party beneficiary rights upon any other person or entity.


# About Ramper NFT Checkout

Let your customers purchase NFTs with fiat instantly. It takes five minutes to integrate, and is free.

### Features

[See demo](https://example.ramper.xyz/v2/demo/checkout)

Let users purchase NFTs seamlessly on their mobile and desktop with one-tap fiat payment options.

#### Buy with Fiat&#x20;

* Accept all major payment types: debit, credit, PayPal, Google/Apply Pay, etc.
* Zero chargeback
* Sellers always receive crypto instantly as Ramper converts fiat for crypto and mint directly from the NFT smart contract

#### Buy with Crypto&#x20;

* Let crypto native users connect their wallet and buy with crypto

#### No Wallets Needed &#x20;

* For users without wallets, we create one tied to their email instantly via [Ramper SDK](/embedded-wallet-sdk/quickstart)

#### Seller Dashboard &#x20;

* NFT purchase history with receipts
* Manage customers with user emails

<div align="left"><figure><img src="/files/awXwmXTsb9Dswr3OYGzK" alt=""><figcaption><p>NFT Checkout fiat flow</p></figcaption></figure></div>

### Pricing

* Free for sellers (five minutes to integrate)
* 3.9% + 0.50c for buyers using fiat transaction
* Chargeback protection

<br>


# Get Started on EVM

## Overview

Make your NFTs accessible to everyone globally. Ramper NFT Checkout provides a fast NFT checkout solution supporting both crypto & fiat. Ramper handles instant wallet creation, chargebacks, and pays you in your NFT contract's native tokens.

Check out our [Live Demo](https://example.ramper.xyz/v2/demo/checkout), and try purchasing a (free) Ramper Token!

To get started you'll need your NFT assets (images + metadata) hosted online, for example on AWS S3 or IPFS. For a help generating NFT art, check out [this tutorial](https://medium.com/scrappy-squirrels/tutorial-create-generative-nft-art-with-rarities-8ee6ce843133) .

## Deploy your Smart Contract

The first step in launching your NFT collection is deploying a smart contract. Ramper supports a couple different ways of achieving this:

* Launch a new collection that uses the Ramper Interface
* Deploy a "bridge" contract that allows Ramper to interact with your pre-existing smart contract

You'll probably want to deploy a contract on a testnet first -- we currently support Ethereum's Goerli network and Polygon's Mumbai network. Deploy contracts to the test network, and make sure to pick the appropriate network in the Developer Dashboard when setting up your collection in the next step ([Setting Up Your Collection](/nft-checkout-sdk/setting-up-your-collection))

### ERC721 vs ERC1155

Ramper currently supports 2 approaches to NFT Contracts: ERC721 and ERC1155. While there are variations of both contracts, we define them as follows:

`ERC721` contracts are "gumball-machine" style -- users purchase whatever token is up next for minting (or a random token)

`ERC1155` contracts are "vending-machine" style -- your Dapp should always supply the token\_id the user is looking to purchase. **Please note: for ERC1155 contracts, you'll need to supply \`token\_id\` in each of the functions below!**

If you have more specific requirements or questions, please reach out at <team@ramper.xyz> or message us on Discord.

### New Contracts

The simplest way to get started with Ramper NFT Checkout is to launch a brand new contract that supports IRamperInterface721/1155. Here is a basic outline of the interface:

```solidity
interface IRamperInterface721 {
    /// NOTE: ALL of the below functions must alllow to be called successfully from
    /// addreess 0xA31f61F6957d570fb9BEc9E3879EA6947dFE5688
    
    /// @notice Gets the number of tokens the specified wallet is able to purchase currently.
    function availableTokens(address _userWallet) external view returns (uint256 quantity);


    /// @notice Gets the price of a single NFT in Wei
    function price() external view returns (uint256);


    /// @notice Mint function that mints the NFT
    function mint(address _userWallet, uint256 _quantity) external payable;


    /// @notice Helper Transfer function to allow multiple tokens to be transferred at once
    function safeBulkTransferFrom(address _from, address _to, uint256[] memory _tokenIds) external;
}
```

You can find the full interface definition in the [Ramper Contracts Repo](https://github.com/ramper-xyz/public-contracts/blob/dev/solidity/contracts/ERC721/new_contract_example/IRamperInterface721.sol) on Github. In short, your contract needs:

* A `price` function that returns the current price for a token
* A `mint` function that mints X tokens to a specified address
* An `availableTokens` function that checks how many tokens a user can buy in their next transaction. You can implement custom logic to restrict per-wallet limits, per-transaction limits, and/or a cap on the total supply.
* (ERC721 only) A `safeBulkTransferFrom` function that allows Ramper to transfer multiple tokens in one transaction. This greatly reduces gas costs for larger transactions.

You can see full, working example contracts in the Ramper Github repo, for both [ERC721](https://github.com/ramper-xyz/public-contracts/blob/dev/solidity/contracts/ERC721/new_contract_example/RamperToken721.sol) and [ERC1155](https://github.com/ramper-xyz/public-contracts/blob/dev/solidity/contracts/ERC1155/new_contract_example/RamperToken1155.sol) .

### Existing Contracts

If you already have your contract deployed, you can deploy a "bridge" contract that allows Ramper to interact with your custom functions. The interface is the same as above.

The primary difference with Bridge Contracts is that the `safeBulkTransferFrom`MUST check that the sender matches the "\_from" address, and Ramper must manually approve the Bridge contract to manage NFT transfers. Please reach out to us for approvals: <https://docs.ramper.xyz/#chat-with-us>

Here you can find a full, working example of an [ERC721 bridge contract](https://github.com/ramper-xyz/public-contracts/blob/dev/solidity/contracts/ERC721/preexisting_contract_example/RamperBridge721.sol)

### Supported Networks

Currently Ramper supports the following networks (more to come soon):

* Ethereum (+ Goerli test network)
* Polygon (+ Mumbai test network)

Make sure to note down which network you've deployed your contract to, as we'll use it when setting up the collection below.

### Verification on Etherscan/Polygonscan

Contracts need to be verified on Etherscan/Polygonscan before they can be used with Ramper NFT Checkout. If you're using hardhat, run the following command:

```bash
npx hardhat verify <my_contract_addr> --network <my_network>
```


# Get Started on NEAR

## Overview

Make your NFTs accessible to everyone globally. Ramper NFT Checkout provides a fast NFT checkout solution supporting both crypto & fiat. Ramper handles instant wallet creation, chargebacks, and pays you in your NFT contract's native tokens.

Check out our [Live Demo](https://example.ramper.xyz/v2/demo/checkout) (on Polygon), and try purchasing a (free) Ramper Token! Links to NEAR specific demos are also available at the bottom of this document

To get started you'll need to have a deployed NFT contract on NEAR (mainnet/testnet)

### <mark style="color:red;">Initializing NEAR Wallet</mark>

To do anything with the NEAR wallet, it needs to be first funded with at least 0.1 NEAR. This is a [policy set by NEAR](https://near.org/blog/getting-started-with-the-near-wallet/#:~:text=To%20do%20anything%20with%20the,exchanges%20like%20Binance%20and%20Huobi.).

When a user is purchasing NFTs using Ramper NFT Checkout, we will automatically fund them 0.1 NEAR to complete the process if they meet two criteria:

1. They are using a Ramper wallet
2. Their wallet has not been initialized (funded)
3. They have completed the NFT payment using fiat

## Supported Contract Types

The first step in launching your NFT collection is deploying a smart contract. Ramper supports two popular types of NFT contracts that slightly extend the standard NEP-171 interfaces (<https://nomicon.io/Standards/Tokens/NonFungibleToken/Core>):

* A [TenK contract](https://github.com/TENK-DAO/tenk)-compatible NFT should specifically have "nft\_mint\_many", "get\_sale\_info", "remaining\_allowance", and "tokens\_left" functions implemented
* A [Paras contract](https://github.com/ParasHQ/paras-nft-contract)-compatible NFT should specifically have "nft\_buy", "nft\_get\_series\_price", "nft\_get\_series\_single", and "nft\_supply\_for\_series" functions implemented

You'll probably want to deploy a contract on a testnet first. Deploy contracts to the test network, and make sure to pick the appropriate network in the Developer Dashboard when setting up your collection in the next step ([Setting Up Your Collection](/nft-checkout-sdk/setting-up-your-collection)). The networks for NEAR mainnet and testnet are 'NEAR testnet' and 'NEAR mainnet' on the developer dashboard.

Once your contract is approved, buyers can check your NFT out at <https://checkout.ramper.xyz/buy?contract\\_address=\\[contractAccountId]\\&network=\\[mainnet/testnet]\\&redirect\\_url=\\[urlTobeRedirectedPostBuy]\\&user\\_wallet\\_address=\\[buyerAccountId>] (if you're using a Paras contract type, add \&token\_series\_id=\[id] as well)

In addition, you can take a look and test out the demo links for [TenK](https://checkout.ramper.xyz/buy?redirect_url=https%3A%2F%2Framper.xyz\&network=testnet\&contract_address=ramperxyznft000.testnet\&user_wallet_address=rampertest001.testnet) and [Paras](https://checkout.ramper.xyz/buy?redirect_url=https%3A%2F%2Framper.xyz\&network=mainnet\&token_series_id=469703\&contract_address=x.paras.near\&user_wallet_address=rampertest001.near) type contracts. (you will want to replace the value in user\_wallet\_address query param)

If you have more specific requirements or questions, please reach out at <team@ramper.xyz> or message us on Discord.


# Setting Up Your Collection

To get started, you need to set up a developer account and your first app by following the [Developer Dashboard Guide](/developer-guide/developer-dashboard-legacy). Once you have your app, navigate to "NFT Checkout" in the developer dashboard, and click "Create Collection":

![](/files/ZXTUkbF2jDp0CrMfhFK2)

Enter:

* A name + description (this will be displayed to your customers)
* The contract address, type, and network from the previous step
* A redirect URL for users to be sent to after purchase
* An image to display in the checkout page for your customers

If you deployed your contract to a testnet first (Goerli, Mumbai) make sure to select that network in the dropdown. **Testnet contracts can be tested in the NFT Checkout with "dummy" credit card data, whereas Mainnet contracts will always charge actual Fiat for minting.**

That's it! Your NFT collection is ready to test:

![](/files/cfXrJ1lt72MZQYrxQoUa)

If the user is connected with a different wallet to your service, you can specify `user_wallet_address` in the query params to specify the default wallet address you want to send the NFT. If no `user_wallet_address` is specified, the destination address will default to the Ramper wallet associated with the user's email login.


# Moving Your Collection to Production

You'll need to verify your personal/business information to officially launch your NFT Checkout — this is a legal requirement called Know-Your-Business that Ramper must follow.

You can submit your info in the Developer Dashboard section for "My Account":

![](/files/vZy3AaXLyhxVKGRCFKxd)


# Purchase History

Once purchases are made via Ramper NFT Checkout, the history will be available on your developer dashboard.  You will be able to export this data to CSV for your own records as well as any additional analytics.

![](/files/Z1WoN2mFXcO1iZ54PG5o)


# Terms of Service

**TERMS OF SERVICE**

\[Last updated 6 January, 2024]

These Terms of Service (the “Terms”) are a legal agreement between you, as a current or prospective user of Ramper’s services (“you”, “your” or “User”) and Ramper, Inc. (“Ramper”, “we”, “us”, or “our”) and govern your use of Ramper’s services, including the <https://www.ramper.xyz/> website, and mobile websites or mobile applications related, linked, or otherwise connected thereto, including but not limited to the <https://developer.ramper.xyz> (the “Site”), along with Ramper’s non-custodial Wallet (the “Wallet Application”, collectively with the Site, the “Platform”). By accessing or using the Platform, you accept these Terms on behalf of yourself and any entity that you represent, and you represent and warrant that you have the right and authority to do so. If you do not agree with all of the provisions of these Terms, do not access, or use the Platform.

As part of the Platform, Ramper has developed tools which provides Users with the opportunity to create, list for sale, purchase and collect digital assets known as non-fungible tokens (“NFTs”) that are associated with metadata, artwork, graphics, images, designs, logos, drawings, photographs, text, taglines, or video or audio recordings and all intellectual property rights in the foregoing (collectively, “Metadata”). The NFTs and Metadata associated with NFTs available on the Platform are created by third-party artists (“Creators”). NFTs will be listed for sale periodically on the Platform (each such sale a “Drop”). The NFTs are generated through smart contracts created and initially recorded by the Creators on a blockchain network (the “Relevant Network”). Relevant Networks utilize open-source code and are operated by a group of independent node operators (“Node Operators”).

**1. GENERAL**

These Terms create a binding agreement that governs your access to, and use of the Platform, including without limitation, the receipt of the NFTs purchased on the Platform, your use of the other software and services provided in connection with such NFTs, and any additional digital or physical offerings that may be made available by Ramper in connection with such NFTs (collectively, the “Services”). Access to, and limited rights to view, display and use, the Metadata associated with an NFT are governed, were applicable, by user licenses set forth in these Terms or otherwise generated by the Creators (the “User License”) that must be affirmatively acknowledged prior to receiving an NFT. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF SERVICE AND THE USER LICENSE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE PLATFORM AND YOU MUST DISCONTINUE USE IMMEDIATELY.

Supplemental terms and conditions, documents that may be posted on the Platform from time to time, and our Privacy Policy <<https://docs.ramper.xyz/ramper-nft-checkout-sdk/policy>> are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms at any time and for any reason. We will alert you about any changes by updating the “Last updated” date of these Terms, and you waive any right to receive specific notice of each such change. It is your responsibility to periodically review these Terms to stay informed of updates. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms by your continued use of the Platform after the date such revised Terms are posted.

PLEASE READ THESE TERMS CAREFULLY, AS THEY CONTAIN AN AGREEMENT TO ARBITRATE AND OTHER IMPORTANT INFORMATION REGARDING YOUR LEGAL RIGHTS, REMEDIES, AND OBLIGATIONS. THE AGREEMENT TO ARBITRATE REQUIRES (WITH LIMITED EXCEPTION) THAT YOU SUBMIT CLAIMS YOU HAVE AGAINST US TO BINDING AND FINAL ARBITRATION, AND FURTHER (1) YOU WILL ONLY BE PERMITTED TO PURSUE CLAIMS AGAINST US ON AN INDIVIDUAL BASIS, NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY CLASS OR REPRESENTATIVE ACTION OR PROCEEDING, (2) YOU WILL ONLY BE PERMITTED TO SEEK RELIEF (INCLUDING MONETARY, INJUNCTIVE, AND DECLARATORY RELIEF) ON AN INDIVIDUAL BASIS, AND (3) YOU MAY NOT BE ABLE TO HAVE ANY CLAIMS YOU HAVE AGAINST US RESOLVED BY A JURY OR IN A COURT OF LAW. FOR FURTHER INFORMATION, SEE “DISPUTE RESOLUTION” BELOW.

These Terms constitute the entire agreement between you and us and govern your use of the Platform, superseding any prior agreements between you and us with respect to the Platform. You also may be subject to additional terms and conditions that may apply when you use affiliate or third-party services, third-party content, or third-party software and you will be subject to the terms of the User License. The laws of Saint Vincent and the Grenadines , other than its conflict-of-laws principles, govern these Terms and any claims and disputes (whether contract, tort, or otherwise) arising out of or relating to these Terms or their subject matter.

Neither the Platform, nor any NFTs that may be purchased on the Platform are intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, use of the Services may be limited or restricted. See “Restrictions” below for details.

The Platform is intended for users who are at least 18 years old. Persons under the age of 18 are not permitted to use or register for the Platform.

**Use of Smart-Contracts; Intangible Property**. The NFTs available on the Platform are digital assets created through the use of smart contracts, executable computer code initially maintained on the Relevant Network (“Smart Contracts”). NFTs are owned by controlling a private key associated with a public address on the Relevant Network and will continue to exist as long as the Node Operators from time to time maintain the Relevant Network (or the NFT has been recorded on another blockchain network). This means that all NFTs are outside of the control of any one party, including Ramper, and any single Node Operator. NFTs are nevertheless subject to many risks and uncertainties. In addition, the Metadata, which is the related visual, audio, or other work associated with an NFT, may or may not be separately maintained by the Creators. Unless expressly indicated on the Platform or User License, purchase of an NFT will not entitle you to possession of, or any rights in, any physical artwork or other physical item, even if a physical artwork or other item from which the Metadata was derived exists.

**2. NFT CREATION AND LISTING**

IF YOU ARE USING THE SERVICE TO CREATE, LIST, SELL, OR OTHERWISE DISTRIBUTE NFTS AND/OR COLLECTIONS VIA THE SERVICES, THEN YOU ARE A “CREATOR”.

Register. To participate in NFTs listing, you will first need to register an Account on the Platform via link [https://developer.ramper.xyz](https://developer.ramper.xyz/) (“Developer Dashboard”). To register you will be required to provide certain “know your customer” and “anti-money laundering” information, at the discretion of Ramper, and be authenticated by clicking on a link sent to the email address provided. The registration process is administered by a third-party service provider and is subject to review and approval by Ramper. Our Services will be restricted until your Account is verified.

If you authorize any individual to act on your behalf as a Creator (an "Authorized Representative"), you hereby agree that all actions taken by such Authorized Representative will be final and binding upon you. You further agree to ensure that your Authorized Representative will abide by this Terms.

Listing NFTs. Once your Account is verify, you can create your NFT collection (“Collection”) on the Developer Dashboard. A Ramper link may be created to begin your NFT Drops.

NFT Content. As between Ramper and you, you shall continue to exclusively own all right, title and interest in and to the Metadata embodied in the NFTs, creative assets you provide to Ramper, and your name, logos and trademarks, and all intellectual property rights in the foregoing (collectively, the “NFT Content”). Notwithstanding the foregoing, you grant to Ramper a perpetual, irrevocable, worldwide, non-exclusive, royalty-free, fully paid-up, license, with the right to sublicense through multiple tiers, to use NFT Content for the purpose of performing Ramper’ obligations under these Terms, including hosting the NFT Content and listing the sale of the NFTs, and providing the Services to you.

You represent and warrant that (i) you have the full right, power and authority to grant the rights granted or agreed to be granted hereunder, including, but not limited to, fully cleared permissions, consents, rights and licenses to the NFT Content in these Terms; (ii) the NFT Content, the NFTs, and the listing and sale contemplated by these Terms, complies with all, and do not and will not violate any applicable law, statute, rule, or regulation, will perform in accordance with the intended specifications and without material error, and will be delivered free and clear of any claims, liens or rights of third parties; (iii) the NFT Content does not and will not infringe any intellectual property rights of any third party or any right of privacy or publicity, or contain any libelous, defamatory, obscene or unlawful material, or otherwise violate or infringe any other right of any third party; (iv) you will fulfill your obligations under any terms with a Purchaser of the NFTs, as applicable; (v) any advertising or promotion of the NFTs by you or on your behalf will not constitute false, deceptive or unfair advertising or disparagement under any applicable laws and will not suggest a likely increase in value of the NFTs; and (vi) you will not use the proceeds retained from sales of the NFT, whether through the Platform or any other platform for capital raising purposes.

Although we are not required to monitor any NFT Content, we may, in our sole discretion, remove NFT Content at any time and for any reason without notice. Ramper may monitor NFT Content to detect and prevent fraudulent activity or violation of our Terms.

License. You hereby grant Ramper the right to use your name, logo and image for marketing or promotional purposes. You further agree that we may use or modify images from your NFT Content for marketing or promotional purposes. You also agree that we can use your biography and other public information about you to promote your NFT Content.

User Dispute. Although the terms of sale for an NFT are displayed on the Platform, all such terms are determined by the Purchasers and Creat and the sale and purchase of NFTs are subject to such (e.g., with respect to the use of the NFT Content, or benefits associated with a given NFT) (“Purchase Terms”), including, but not limited to, the price to be paid for such NFT. Ramper is not a party to any such Purchase Terms, which are solely between the Purchaser and the Creator and is not responsible for ensuring compliance with such terms or mediating or resolving any disputes with respect to such Purchase Terms, including, but not limited to, any disputes arising out of or related to the authenticity of the NFT or any intellectual property rights associated with such NFT. The Purchaser and the Creator are entirely responsible for communicating, promulgating, agreeing to, and enforcing Purchase Terms, and for resolving any disputes arising from any breach of any Purchase Terms. The Creator must comply with and fulfill the Purchase Terms with respect to any NFTs that it sells. The Creator to resolve any disputes directly with the Purchaser within five business days of the Purchaser making first contact with the Creator. If the Creator’s contact information is not available to the Purchaser, the Creator agrees that Ramper is authorized to provide the Creator’s contact information (including without limited to email address) to the Purchaser.

**3. NFT PURCHASES**

**IF YOU ARE USING THE SERVICES TO PURCHASE NFTS, THEN YOU ARE A “PURCHASER”.**

**Register.** To participate in Drops and purchase NFTs you will first need to register on the Platform. To register you will be required to provide an email address, along with certain “know your customer” and “anti-money laundering” information, at the discretion of Ramper, and be authenticated by clicking on a link sent to the email address provided. The registration process is administered by a third-party service provider and is subject to review and approval by Ramper.

**Connecting a Wallet**. To purchase NFTs on the Platform, you will need to use a supported third-party wallet application (a “Wallet”) which will enable you to purchase and store NFTs, or Ramper’s own Wallet Application. The Wallet Application enables users to (i) self custody digital assets; (ii) access a digital asset browser and link to decentralized applications and decentralized exchanges (“Dapp(s)”); (iii) view addresses and information that are part of digital asset networks and broadcast transactions; and (iv) additional functionality as Ramper may add to the Wallet Application from time to time (collectively the “Wallet Services”). You may use the Wallet or Wallet Application to receive purchased NFTs. Support for additional Wallets will be forthcoming and these Terms will be updated as necessary going forward.

You agree that you won’t disclose your Wallet Application credentials to anyone and you’ll notify us immediately of any unauthorized use of your Wallet Application. You’re responsible for all activities that occur under your Wallet Application, or are otherwise referable to your Wallet Application credentials, whether or not you know about them. We reserve the right to suspend or terminate your Account if you provide inaccurate, untrue, or incomplete information, or if you fail to comply with the Account registration requirements or these terms.

You are solely responsible for the retention and security of your \[twelve word] recovery phrase (“Recovery Phrase”). Your Recovery Phrase is the only way to access the NFTs. Anyone that has access to your Recovery Phrase can access your NFTs. If you lose your Recovery Phrase, you will not be able to access your Wallet Application. You acknowledge that Ramper does not store and is not responsible in any way for the security of your Recovery Phrase and you agree to hold Ramper harmless and that Ramper shall not be liable in any way in the event you lose your Recovery Phrase and cannot access your NFTs.

**Purchasing NFTs Generally**. The Platform allows you to purchase NFTs. NFTs will be initially sold via the Platform, and you may purchase NFTs directly from us using a credit card, debit card, or certain digital assets for payment. Any payments or financial or other transactions, including transfers of NFTs from one public address on the Relevant Network to another address on the Relevant Network, that you engage in via the Platform will be conducted either through our payment processor partners (in the case of financial transactions), or on the Relevant Network (in the case of transfers of NFTs), subject to the terms below. We have no control over these payments or transactions, nor do we have the ability to reverse any payments or transactions once made. Payments for NFTs processed through third party partners will be subject to separate terms and conditions, if any, associated with the use of those third party services. We have no liability to you or to any third party for any claims or damages that may arise as a result of any payments or transactions that you engage in via the Platform, or any other payment or transactions that you conduct via the Relevant Network.

**Obligations**. Other than our obligations set out in these Terms, you agree that we:

* are not liable to you for the accuracy of any information posted on the Platform by a Creator, or any failure by a Creator to comply with any legal obligations;
* have not made, and do not make any representation, guarantee, or warranty that any NFT will meet your requirements or expectations;
* are not liable or responsible for any increase or decrease in value of any NFT;
* have not made, and do not make, any promises (whether explicit, implied or otherwise) as to the value of any NFT, including whether the value of the NFT will increase or decrease in the future; and
* will not be responsible for the negligence or misconduct of other Users or Creators.

By accessing the Platform, you acknowledge that the prices of collectible assets in general and NFTs in particular are volatile and subjective, and that we cannot guarantee that any NFTs purchases through the Platform will retain any value, which may depend on a number of inherently subjective factors beyond our or their control, including the desirability of a particular NFT.

**4. FEE PROCEEDS**

**Transaction Fees**. Every transaction executed through the Platform requires the payment of a transaction fee on the Relevant Network payable in the native digital asset of the Relevant Network, as well as traditional payment processing fees, including fees to be paid as part of the Services which we make available to you (each, a “Transaction Fee”). Except as otherwise expressly set forth in these Terms, the Purchaser will be solely responsible to pay any Transaction Fee for any transaction that you initiate through the Platform.

**Your Responsibility for Taxes**. You will be solely responsible to pay any and all sales, use, value-added and other taxes, duties, and assessments (except taxes on our net income) now or hereafter claimed or imposed by any governmental authority (collectively, “Taxes”) associated with transactions executed by you through the Platform. Except for income taxes levied on us, you will pay or reimburse us for all national, federal, state, local or other taxes and assessments of any jurisdiction, including value added taxes and taxes as required by international tax treaties, customs or other import or export taxes, and amounts levied in lieu thereof based on charges set, services performed or payments made hereunder, as are now or hereafter may be imposed under the authority of any national, state, local or any other taxing jurisdiction.

**Non-refund**. All purchases of NFTs made through the Services are final and non-refundable. Once a transaction is completed, the Purchaser acknowledges and accepts that no refunds, returns, or exchanges will be granted for any reason, except as expressly required by applicable law. The Purchaser understands and agrees that the NFTs available on the Platform are unique digital assets, and their purchase represents a transfer of ownership or proof of authenticity. The marketplace shall not be held responsible or liable for any dissatisfaction with the NFTs acquired, including their quality, condition, or value. By engaging in any transactions on the Platform, the Purchasers expressly acknowledges and accepts the non-refundable nature of their purchases. For avoidance of doubt, We will issue a refund to You if the transaction is not completed on chain due to a technical issue on the Platform. Notwithstanding, We will not be liable for refunds if the technical issue is on your side, such as if your wallet is not compatible with our Platform.

**Assumption of Risk**. You acknowledge and agree as follows: (i) there are risks associated with blockchain-based assets like the NFTs, including, but not limited to, the volatility of price and the absence of liquidity (the ability to resell), the risk of loss of your NFT as a result of faulty hardware, software, including the Wallet Application, and Internet connections and/or failures; the risk of the introduction malicious software; the risk that third parties may obtain unauthorized access to information stored within the wallet holding your NFT; and the risk of loss of your NFT due to loss of private key(s), custodial error, or purchaser error, and we will not be responsible for any of these, however caused; (ii) we do not make any representations, warranties, promises or guarantees, express or implied, about the availability of any NFTs or NFT Content on the Internet; (iii) upgrades to the Platform, or the Relevant Network, a hard fork in the Relevant Network, a failure or cessation of the Relevant Network, or a change in how transactions are confirmed on the Relevant Network all may have unintended, adverse effects on the NFTs; (iv) the NFTs (including the NFT Content) are made available solely for collection and entertainment purposes; (v) we do not make any representations, warranties, promises or guarantees, express or implied, related to any third parties you interact with or their applications and/or services, including but not limited to the continued availability of either and/or the protection and/or storage of any data you provide to those parties; (vi) there also exists: (a) the risk of hacking, security weaknesses, fraud, counterfeiting, cyberattacks, and other technological difficulties; (b) the risk of changes to the regulatory regime governing blockchain technologies, cryptocurrencies, and tokens and new regulations, or unfavorable regulatory intervention in one or more jurisdictions or policies any of which may materially adversely affect the use and value of any NFT; and (c) the risks related to taxation. In addition to assuming all of the above risks, you acknowledge that we cannot and do not represent or warrant that any NFT, or its supporting systems or technology, including the Wallet Application, is reliable, current, or error-free, meets your requirements, or that defects in any NFT, or its supporting systems or technology, including the Wallet Application, will be corrected. We cannot and do not represent or warrant that any NFT or the delivery mechanism for it are free of viruses or other harmful components. Transactions in NFTs are irreversible, and, accordingly, losses due to fraudulent or accidental transactions may not be recoverable. You accept and acknowledge that we will not be responsible for any communication failures, disruptions, errors, distortions, or delays you may experience related to any NFT. If the Metadata associated with an NFT is no longer maintained at the storage location indicated in the resource locator contained in the NFT, the market value of such NFT may be reduced or eliminated entirely.

**5. INTELLECTUAL PROPERTY RIGHTS**

Creator Rights. The Creator owns all legal right, title, and interest in all intellectual property rights of the content underlying the NFT Content and any content specific to a Collection (“Collection Content”), including but not limited to copyrights and trademarks in the NFT Content and Collection Content, unless the Creator expressly transfers any such right, title or interest to a Purchaser or other third party. As the copyright owner, the Creator has the right to reproduce, prepare derivatives of, distribute, and display or perform the NFT Content and Collection Content.

The Creator hereby acknowledges, understands, and agrees that selling such NFTs on the Platform constitutes an express representation, warranty, and covenant that the Creator (a) has not sold, tokenized or created another cryptographic token, (b) will not, and will not cause another to, sell, tokenize, or create another cryptographic token, in each case representing a digital collectible for the same NFT Content underlying such NFT, and (c) will not make any erroneous or misleading statements regarding any NFT, NFT Content, Collections or Collection Content (including in connection with any sales thereof).

By launching any NFT on the Platform, the Creator hereby expressly and affirmatively grants to the Purchaser and, to the extent applicable, any subsequent Purchaser in a secondary sale a license pursuant to the paragraph below, unless the Creator expressly grants different rights to the Purchaser.

**User** **License**. The Purchaser receives the NFT representing the Creator’s NFT Content as a piece of property, but does not own the NFT Content itself or any intellectual property rights therein. The Purchaser may display and share the NFT Content, but the Purchaser does not have any legal ownership, right, or title to any copyrights, trademarks, or other intellectual property rights to the NFT Content, except the limited license to the NFT Content granted by these Terms.

Upon legally collecting and obtaining ownership of any NFT launched on the Platform, unless the Creator expressly grants different rights to the Purchaser, the Purchaser receives from the Creator of such NFT a limited, worldwide, non-assignable and non-transferable (except as expressly set forth below), non-sublicensable, royalty-free license to display the NFT Content underlying such NFT solely for the Purchaser’s non-commercial purposes, including the right to display such NFT Content privately or publicly: (i) for the purpose of promoting or sharing the Purchaser’s purchase of, ownership of, or interest in such NFT, (ii) for the purpose of sharing, promoting, discussing, or commenting on such NFT Content; (iii) on third party marketplaces, exchanges, platforms, or applications in association with an offer to sell, or trade, the NFT; and (iv) within decentralized virtual environments, virtual worlds, virtual galleries, virtual museums, or other navigable and perceivable virtual environments (the “Purchaser License”). Upon any sale or transfer of the NFT to another purchaser, (a) the foregoing license will automatically transfer to such other purchaser, and such other purchaser will be deemed the “Purchaser” (for purposes of such NFT and the Purchaser License to the underlying NFT Content) and will be subject to these Terms and (b) the seller or transferor of such NFT will cease to have any further rights to such NFT Content.

While the Purchaser has the right to sell, trade, transfer, or use their NFT, the Purchaser may not make commercial use of the NFT or its underlying NFT Content, unless the Creator expressly grants such rights separately to the Purchaser.

If a Purchaser sells, trades or transfers its NFT to a subsequent Purchaser, regardless of whether on or off the Platform, such Purchaser represents and warrants that it will (i) notify the subsequent Purchaser of these Terms and (ii) require the subsequent Purchaser to comply with these Terms.

The Purchaser agrees that it will not, and will not permit any third party to, do or attempt to do any of the foregoing without the Creator’s express prior written consent in each case: (i) modify, distort, mutilate, or perform any other modification to the NFT Content which would be prejudicial to the Creator’s honor or reputation; (ii) use the NFT or underlying NFT Content to advertise, market, or sell any third party product or service; (iii) use the NFT or underlying NFT Content in connection with images, videos, or other forms of media that depict hatred, intolerance, violence, cruelty, or anything else that could reasonably be found to constitute hate speech or otherwise infringe upon the rights of others; (iv) incorporate the NFT or underlying NFT Content in movies, videos, video games, or any other forms of media for a commercial purpose, except to the limited extent that such use is expressly permitted by these Terms or solely for Purchaser’s personal, non-commercial use; (v) sell, distribute for commercial gain, or otherwise commercialize merchandise that includes, contains, or consists of the NFT or underlying NFT Content; (vi) attempt to trademark, copyright, or otherwise acquire additional intellectual property rights in or to the NFT or underlying NFT Content; (vii) attempt to mint, tokenize, or create an additional cryptographic token representing the same NFT or underlying NFT Content, whether on or off of the Platform; (viii) falsify, misrepresent, or conceal the authorship of the NFT or underlying NFT Content; or (ix) otherwise utilize any NFT Content or, except as expressly permitted under these Terms, the NFT for the Purchaser’s or any third party’s commercial benefit. Purchaser agrees that it receives no rights to any Collection Content and will not use, copy, distribute or otherwise exploit the Collection Content in any manner.

Purchaser irrevocably releases, acquits, and forever discharges Ramper and its affiliates and it and their officers and successors of any liability for direct or indirect copyright or trademark infringement for Ramper’s use of any NFT or underlying NFT Content, or any Collection Content, in accordance with these Terms.

NFT on the Platform that was minted on or by a third party platform or service (“Non-Ramper NFT”) and the intellectual property rights of the content underlying such Non-Ramper NFT (“Non-Ramper Content”) may be subject to separate license or other terms granted in connection with the initial sale of such Non-Ramper Artwork (“Non-Ramper Terms”), in which case those Non-Ramper Terms will govern in connection with such content and materials, provided that in the event of any conflict between the Non-Ramper Terms and these Terms that are not specific to a Purchaser’s rights to use or otherwise exploit the Non-Ramper Content, these Terms shall govern and control as between you and Ramper. Subject to the foregoing, if you purchase any Non-Ramper Artwork, you agree to comply with the Non-Ramper Terms.

Platform Content. Unless otherwise indicated, the Platform is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Platform (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other applicable intellectual property rights and unfair competition laws , international copyright laws, and international conventions. The Content and the Marks are provided on the Platform “AS IS” for your information and personal use only. Except as expressly provided in these Terms, no part of the Platform and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Platform, you are granted a limited license to access and use the Platform solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Platform, the Content, and the Marks.

**Third Party Content.** Under no circumstances will we be liable in any way for any Metadata or other content or materials of any third parties (including Creators), including, but not limited to, (i) for any errors or omissions in any content, or (ii) for infringement or violation of intellectual property or other rights in relation to such content or materials, or (iii) for any promises, purported promises, or commitments made by other Users, or (iv) for any loss or damage of any kind incurred as a result of the use of any such content. You acknowledge that we do not pre-screen Creator-generated content, but that we and our designees will have the right (but not the obligation) in our sole discretion to refuse or remove any content that is available via the Platform. Without limiting the foregoing, we and our designees will have the right to remove any content that violates these Terms or is deemed by us, in our sole discretion, to be otherwise objectionable.

**6. USER REPRESENTATIONS**

By using the Platform, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms ; (2) you are not a minor in the jurisdiction in which you reside; (3) you will not access the Platform through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Platform for any illegal or unauthorized purpose; and (5) your use of the Platform will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Platform (or any portion thereof).

**7. PROHIBITED ACTIVITIES**

You may not access or use the Platform for any purpose other than that for which we make the Platform available. The Platform may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a User of the Platform, you agree not to:

1. Systematically retrieve data or other content from the Platform to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
2. Circumvent, disable, or otherwise interfere with security-related features of the Platform, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Platform and/or the Content contained therein.
3. Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Platform.
4. Use any information obtained from the Platform in order to harass, abuse, or harm another person.
5. Make improper use of our support services or submit false reports of abuse or misconduct.
6. Violate any applicable local, state, national, or international law, or any regulations having the force of law, including but not limited to regulations promulgated by the U.S. Department of Treasury’s Office of Foreign Assets Control (“OFAC”), or which would involve proceeds of any unlawful activity.
7. Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Platform or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Platform.
8. Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
9. Delete the copyright or other proprietary rights notice from any Content.
10. Interfere with, disrupt, or create an undue burden on the Platform, or the networks or services connected to the Platform.
11. Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Platform to you.
12. Attempt to bypass any measures of the Platform designed to prevent or restrict access to the Platform, or any portion of the Platform.
13. Copy or adapt the Platform’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
14. Decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Platform.
15. Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Platform, or using or launching any unauthorized script or other software.
16. Use a buying agent or purchasing agent to make purchases on the Platform.
17. Make any unauthorized use of the Platform, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
18. Use the Platform as part of any effort to compete with us or otherwise use the Platform and/or the Content for any revenue-generating endeavor or commercial enterprise.
19. Engage or assist in any activity that violates any law, statute, ordinance, regulation, or sanctions program, or that involves proceeds of any criminal or fraudulent activity (including but not limited to money laundering, terrorist financing or deliberately engaging in activities designed to adversely affect the performance of the Services).
20. Post, upload, publish, submit or transmit any content (which may include NFT Content): (i) infringes, misappropriates or violates a third party’s patent, copyright, trademark, trade secret, moral rights or other intellectual property rights, or rights of publicity or privacy; (ii) violates, or encourages any conduct that would violate, any applicable law or regulation or would give rise to civil liability; (iii) is fraudulent, false, misleading or deceptive; (iv) is defamatory, obscene, pornographic, vulgar or offensive; (v) promotes discrimination, bigotry, racism, hatred, harassment or harm against any individual or group; (vi) is violent or threatening or promotes violence or actions that are threatening to any person or entity; or (vii) promotes illegal or harmful activities or substances.
21. Create or list counterfeit items (including any NFTs).
22. Impersonate any person or entity, or falsely state or otherwise misrepresent your affiliation with a person or entity.
23. Access or use the Platform to carry out financial activities subject to registration or licensing, including but not limited to creating, listing, or buying securities, commodities, options, real estate, or debt instruments;
24. Access or use the Platform to participate in fundraising for a business, protocol, or platform, including but not limited to creating, listing, or buying assets that are redeemable for financial instruments, assets that give Creators, Purchasers, or Users rights to participate in an ICO or any securities offering, or assets that entitle Creators, Purchasers, or Users to financial rewards, including but not limited to, DeFi yield bonuses, staking bonuses, and burn discounts, provided that the foregoing will not restrict the legal use of any proceeds resulting from your permitted use of the Platform.
25. Access or use the Platform for the purpose of creating a product or service that is competitive with any of our Services.

Notwithstanding the foregoing, we may suspend or terminate your access to the Services at any time in connection with any transaction as required by applicable law, any governmental authority, or if we in our sole and reasonable discretion determine you are violating these Terms or the terms of any Third-Party Websites. Such suspension or termination shall not be constituted a breach of these Terms by Ramper. In accordance with our anti-money laundering, anti-terrorism, anti-fraud, and other compliance policies and practices, we may impose reasonable limitations and controls on the ability of you or any beneficiary to utilize the Services. Such limitations may include where good cause exists, rejecting transaction requests, freezing funds, or otherwise restricting you from using the Services.

**8. THIRD-PARTY WEBSITE AND CONTENT**

The Platform may contain (or you may be sent via the Platform) links to other websites (“Third-Party Websites”) as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties (“Third-Party Content”). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Platform or any Third-Party Content posted on, available through, or installed from the Platform, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Platform and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Platform or relating to any applications you use or install from the Platform. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

**9. PLATFORM MANAGEMENT**

We reserve the right, but not the obligation, to: (1) monitor the Platform for violations of these Terms; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, notice, or liability, to remove from the Platform or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (4) otherwise manage the Platform in a manner designed to protect our rights and property and to facilitate the proper functioning of the Platform.

**10. MODIFICATIONS AND INTERRUPTIONS**

We reserve the right to change, modify, or remove the contents of the Platform at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Platform. We also reserve the right to modify or discontinue all or part of the Platform without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Platform.

We cannot guarantee the Platform will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Platform, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Platform at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Platform during any downtime or discontinuance of the Platform. Nothing in these Terms will be construed to obligate us to maintain and support the Platform or to supply any corrections, updates, or releases in connection therewith.

There may be information on the Platform that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Platform at any time, without prior notice.

**11. PRIVACY POLICY**

We care about data privacy and security. Please review our Privacy Policy <<https://docs.ramper.xyz/ramper-nft-checkout-sdk/policy>>.

By using the Platform, you agree to be bound by our Privacy Policy, which is incorporated into these Terms.

**12. TERM AND TERMINATION**

These Terms shall remain in full force and effect while you use the Platform. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE PLATFORM (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE PLATFORM OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

**13. RESTRICTIONS**

We are not permitted to engage in any transactions with any person, entity, or country prohibited by any applicable export control and sanctions laws and regulations of the United States and any other applicable governmental authority, including without limitation, the U.S. Export Administration Regulations and U.S. sanctions regulations (“Export Control and Sanctions Laws”), including, without limitation, the prohibition against transactions with: (i) a national or resident of any country subject to sanctions or otherwise designated on any list of prohibited or restricted parties, including but not limited to the lists maintained by the United Nations Security Council, the U.S. Government (i.e., the Specially Designated Nationals List and Foreign Sanctions Evaders List of the U.S. Department of Treasury and the Entity List of the U.S. Department of Commerce), the European Union or its Member States, the United Kingdom, or other applicable government authority, or (ii) a national or resident of any country subject to a comprehensive sanctions program implemented by the United States. You will not be permitted to receive an NFT from us if we learn that such action would be in breach of Export Control and Sanctions Laws.

**14. COPYRIGHT COMPLAINTS**

We respect the intellectual property of others, and we ask our Users to do the same. If you believe that any NFT Content associated with an NFT available on this Platform or that any other Creator Content copies your work in a way that constitutes copyright infringement, or that your intellectual property rights have been otherwise violated, you should notify us of your infringement claim in accordance with the procedure set forth below.

We will process and investigate notices of alleged infringement and will take appropriate actions with respect to any alleged or actual infringement. A notification of claimed copyright infringement should be emailed to the Ramper Copyright Agent see below:

Ramper Labs, LLC: <hi@ramper.xyz>

To be effective, the notification must be in writing and contain the following information:

* * * * an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright or other intellectual property interest;
      * a description of the copyrighted work or other intellectual property that you claim has been infringed;
      * a description of where the material that you claim is infringing is located on the Platform, with enough detail that we may find it on the Platform;
      * your address, telephone number, and email address;
      * a statement by you that you have a good faith belief that the disputed use is not authorized by the copyright or intellectual property owner, its agent, or the law;
      * a statement by you, made under penalty of perjury, that the above information in your Notice is accurate and that you are the copyright or intellectual property owner or authorized to act on the copyright or intellectual property owner’s behalf.

Upon receipt of such an effective notification, we will remove the infringing material from the Platform. However, if the infringing material consists of all or a portion of the Metadata associated with one or more NFTs, then although we may be able to remove the infringing material from the Platform (which we control), it may not be possible for us to remove the infringing material from the storage location indicated in the resource locator contained in the NFT if another party has caused the infringing material to be replicated or “pinned” through one or more decentralized data storage platforms, including [IPFS](https://ipfs.io/).

**15. DISPUTE RESOLUTION**

**Pre-Arbitration Dispute Resolution.** We are always interested in resolving disputes amicably and efficiently, and most customer concerns can be resolved quickly and to the customer’s satisfaction by emailing customer support at \[<hi@ramper.xyz>]. If such efforts prove unsuccessful, a party who intends to seek arbitration must first send to the other, by certified mail, a written Notice of Dispute (a “Notice”). The Notice to us should be sent to Ramper by emailing at \[<hi@ramper.xyz>] (the “Notice Address”). The Notice must (i) describe the nature and basis of the claim or dispute and (ii) set forth the specific relief sought. If such a claim is not resolved within sixty (60) calendar days after the Notice is received by us, an arbitration proceeding may be commenced. During the arbitration, the amount of any settlement offer made by us or you shall not be disclosed to the arbitrator until after the arbitrator determines the amount, if any, to which you or we are entitled.

**Arbitration Agreement and Procedures**. You agree that if the Parties are unable to resolve a dispute through informal negotiations, the dispute (except those disputes expressly excluded below) will be finally and exclusively resolved by binding arbitration. YOU UNDERSTAND THAT WITHOUT THIS PROVISION, YOU WOULD HAVE THE RIGHT TO SUE IN COURT AND HAVE A JURY TRIAL. The arbitration shall be commenced and conducted under the Singapore International Arbitration Centre (“SIAC”) to be resolved through confidential, binding arbitration before one arbitrator. Arbitration proceedings will be held in Singapore. You and Fin Wallet agree that Disputes will be held in accordance with the SIAC Arbitration Rules and Procedures (“SIAC Rules”). The most recent version of the SIAC Rules is incorporated into these Terms by reference. You either acknowledge and agree that you have read and understand the SIAC Rules or waive your opportunity to read the SIAC Rules and waive any claim that the SIAC Rules are unfair or should not apply for any reason. The arbitration may be conducted in person, through the submission of documents, by phone, or online. The arbitrator will make a decision in writing but need not provide a statement of reasons unless requested by either Party. The arbitrator must follow applicable law, and any award may be challenged if the arbitrator fails to do so. Except where otherwise required by the applicable SIAC Rules or applicable law, the arbitration will take place in Singapore. Except as otherwise provided herein, the Parties may litigate in court to compel arbitration, stay proceedings pending arbitration, or to confirm, modify, vacate, or enter judgment on the award entered by the arbitrator.

If for any reason, a dispute proceeds in court rather than arbitration, the dispute shall be commenced or prosecuted in the court located in Singapore.

In no event shall any dispute brought by either Party related in any way to the Platform be commenced more than one (1) year after the cause of action arose. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any dispute falling within that portion of this provision found to be illegal or unenforceable and such dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

**Restrictions**. The Parties agree that any arbitration shall be limited to the dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

**Exceptions to Arbitration**. The Parties agree that the following disputes are not subject to the above provisions concerning binding arbitration: (a) any disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any dispute falling within that portion of this provision found to be illegal or unenforceable and such dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

**16. DISCLAIMER**

THE PLATFORM, THE NFTS AND ANY NFT CONTENT IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE PLATFORM, ANY NFT AND THE NFT CONTENT, AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE PLATFORM, THE NFTS, THE METADATA, THE NFT CONTENT, AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE SHALL NOT BE LIABLE FOR ANY FAILURE TO PERFORM ANY OBLIGATIONS UNDER THESE TERMS TO THE EXTENT CAUSED BY AN EVENT THAT IS BEYOND OUR REASONABLE CONTROL.

WE MAKE NO WARRANTY THAT (I) THE PLATFORM, ANY NFT, ANY METADATA OR ANY NFT CONTENT WILL MEET YOUR REQUIREMENTS, (II) THE PLATFORM OR USE OF ANY NFT, ANY METADATA OR NFT CONTENT WITHIN THE NFT WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE, (III) THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE PLATFORM, ANY NFT, ANY METADATA OR ANY NFT CONTENT WILL BE ACCURATE OR RELIABLE, OR (IV) THE QUALITY OF ANY NFT, ANY METADATA, ANY NFT CONTENT OR ANY PRODUCTS, INFORMATION, OR OTHER MATERIAL PURCHASED OR OBTAINED BY YOU THROUGH THE PLATFORM WILL MEET YOUR EXPECTATIONS.

WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE PLATFORM’ CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE PLATFORM AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE PLATFORM, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE PLATFORM, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE PLATFORM BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE PLATFORM. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE PLATFORM, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT USE OF THE SERVICES AND CONTENT IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU.

**17. LIMITATION OF LIABILITY**

YOU EXPRESSLY UNDERSTAND AND AGREE THAT IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, LOSS OF CRYPTOCURRENCY OR OTHER DIGITAL ASSETS, INCLUDING NFTS, LOSS OF YOUR LOGIN CREDENTIALS OR FUNDS, LOSS OF OR INABILITY TO RESTORE ACCESS FROM YOUR RECOVERY PHRASE, OR FOR MISTAKES, OMISSIONS, INTERRUPTIONS, DELAYS, DEFECTS AND/OR ERRORS IN THE TRANSMISSION OF TRANSACTIONS OR MESSAGES TO THE RELEVANT NETWORK, OR THE FAILURE OF ANY MESSAGE TO SEND OR BE RECEIVED BY THE INTENDED RECIPIENT IN THE INTENDED FORM, OR FOR DIMINUTION OF VALUE OF THE NFTS OR ANY OTHER DIGITAL TOKEN OR DIGITAL ASSET ON THE RELEVANT NETWORK. OR OTHER DAMAGES ARISING FROM YOUR USE OF THE PLATFORM, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY, OR OTHERWISE. RAMPER SHALL NOT BE LIABLE UNDER ANY CIRCUMSTANCES FOR DAMAGES ARISING OUT OF OR IN ANY WAY RELATED TO SOFTWARE, PRODUCTS, SERVICES, AND/OR INFORMATION OFFERED OR PROVIDED BY THIRD-PARTIES AND ACCESSED THROUGH THE PLATFORM. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE AMOUNT PAID, IF ANY, BY YOU TO US FOR THE USE OF SERVICES IN THE LAST THREE (3) MONTHS, OR ONE HUNDRED DOLLARS ($100), IF YOU HAVE NOT HAD ANY PAYMENT OBLIGATIONS TO US, AS APPLICABLE.

CERTAIN JURISDICTIONS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS. IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE PLATFORM OR WITH THESE TERMS, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE PLATFORM.

**18. INDEMNIFICATION**

To the fullest extent permitted by applicable law, you will indemnify, defend and hold harmless Ramper, and our affiliates, officers, directors, agents, partners and employees (individually and collectively, the “Ramper Parties”) from and against all actual or alleged claims, damages, awards, judgments, losses, liabilities, obligations, taxes, penalties, interest, fees, expenses (including, without limitation, attorneys’ fees and expenses), and costs (including, without limitation, court costs, costs of settlement, and costs of pursuing indemnification and insurance), of every kind and nature whatsoever, whether known or unknown, foreseen or unforeseen, matured or unmatured, or suspected or unsuspected, in law or equity, whether in tort, contract, or otherwise (collectively, “Claims”) arising out of or related to (a) your use of misuse of the Platform, Services, any NFT, any Metadata or NFT Content; (b) your violation, misappropriation or infringement of any rights of another (including intellectual property rights or privacy rights), (c) your violation or breach of any term of these Terms or applicable law, (d) your violation of the rights of or obligations to a third party, including another user or third-party, and (e) your negligence or willful misconduct. You agree to promptly notify Ramper Parties of any third-party Claims, cooperate with Ramper Parties in defending such Claims and pay all fees, costs and expenses associated with defending such Claims (including attorneys’ fees). You also agree that the Ramper Parties will have control of the defense or settlement, at Ramper’ sole option, of any third-party Claims. This indemnity is in addition to, and not in lieu of, any other indemnities set forth in a written agreement between you and Ramper.

If Ramper is obligated to respond to a subpoena or other compulsory legal or court order or process relating to subject matter that is within the scope of your indemnity under this Section, you agree to reimburse Ramper its legal fees, as well as its employees’ and contractors’ time and materials spent responding to the subpoena or other compulsory legal or court order or process at reasonable hourly rates.

**19. USER DATA**

We will maintain certain data that you transmit to the Platform for the purpose of managing the performance of the Platform, as well as data relating to your use of the Platform. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Platform. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

**20. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES**

Visiting the Platform, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Platform, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE PLATFORM. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means. You hereby waive any and all defenses you may have based on the electronic form of these Terms and the lack of signing by the parties hereto to execute these Terms.

**21. MISCELLANEOUS**

**Governing Law.** These Terms and your use of the Platform are governed by and construed in accordance with the laws of Saint Vincent and the Grenadines, without regard to its conflict of law principles.

**No Professional Advice**. Any information provided by or on behalf of us, or by any User, through the Platform (including these Terms) is for informational purposes only and should not be construed as professional, accounting, tax, or legal advice. You should not take or refrain from taking any action in reliance on any information contained in these Terms or on any information provided by or on behalf of us or any User through the Platform. Before you make any decision to purchase or sell any NFT, you should consider seeking independent professional advice from persons licensed and qualified in the area for which such advice would be appropriate.

**No Waivers**. No failure or delay on our part in the exercise of any power, right, privilege or remedy under these Terms shall operate as a waiver of such power, right, privilege or remedy; and no single or partial exercise of any such power, right, privilege or remedy shall preclude any other or further exercise thereof or of any other power, right, privilege or remedy. We shall not be deemed to have waived any claim arising out of these Terms, or any power, right, privilege or remedy under these Terms, unless the waiver of such claim, power, right, privilege or remedy is expressly set forth in a written instrument duly executed and delivered on behalf of us, and any such waiver shall not be applicable or have any effect except in the specific instance in which it is given.

**Entire Agreement**. These Terms and any policies or operating rules posted by us on the Platform or in respect to the Platform constitute the entire agreement and understanding between you and us.

**Assignment**. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control.

**Severability**. If any provision or part of a provision of these Terms is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms and does not affect the validity and enforceability of any remaining provisions.

**Relationship of the Parties**. There is no joint venture, partnership, employment, or agency relationship created between you and us as a result of these Terms or use of the Platform.

You agree that these Terms will not be construed against us by virtue of having drafted them.


# Privacy Policy

**Date Last Revised** 6 January, 2024

This privacy policy for Ramper Labs, LLC ("**Company**," "**we**," "**us**," or "**our**"), describes how and why we might collect, store, use, and/or share ("**process**") your information when you use our services ("**Services**"), such as when you:

* Visit our website at [https://www.ramper.xyz](https://www.ramper.xyz/), or any website of ours that links to this privacy notice
* Engage with us in other related ways, including any sales, marketing, or events

**Questions or concerns?** Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at <hi@ramper.xyz>.

**SUMMARY OF KEY POINTS**

***This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click*** [***here***](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#toc) ***to go directly to our table of contents.***

**What personal information do we process?** When you visit, use, or navigate our Services, we may process personal information depending on how you interact with Ramper Labs, LLC and the Services, the choices you make, and the products and features you use. Click [here](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#personalinfo) to learn more.

**Do we process any sensitive personal information?** We do not process sensitive personal information.

**Do you receive any information from third parties?** We do not receive any information from third parties.

**How do you process my information?** We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click [here](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#infouse) to learn more.

**In what situations and with which parties do we share personal information?** We may share information in specific situations and with specific third parties. Click [here](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#whoshare) to learn more.

**How do we keep your information safe?** We have organizational and technical processes and procedures in place to protect your personal information. However, no electronic transmission over the internet or information storage technology can be guaranteed to be 100% secure, so we cannot promise or guarantee that hackers, cybercriminals, or other unauthorized third parties will not be able to defeat our security and improperly collect, access, steal, or modify your information. Click [here](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#infosafe) to learn more.

**What are your rights?** Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click [here](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#privacyrights) to learn more.

**How do I exercise my rights?** The easiest way to exercise your rights is by filling out our data subject request form available [here](https://app.termly.io/notify/c9e05081-d937-4a31-b6da-073847c31a0e), or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what Ramper Labs, LLC. does with any information we collect? Click [here](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#toc) to review the notice in full.

**TABLE OF CONTENTS**

[1. WHAT INFORMATION DO WE COLLECT?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#infocollect)

[2. HOW DO WE PROCESS YOUR INFORMATION?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#infouse)

[3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#legalbases)

[4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#whoshare)

[5. DO WE USE COOKIES AND OTHER TRACKING TECHNOLOGIES?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#cookies)

[6. HOW DO WE HANDLE YOUR SOCIAL LOGINS?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#sociallogins)

[7. HOW LONG DO WE KEEP YOUR INFORMATION?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#inforetain)

[8. HOW DO WE KEEP YOUR INFORMATION SAFE?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#infosafe)

[9. DO WE COLLECT INFORMATION FROM MINORS?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#infominors)

[10. WHAT ARE YOUR PRIVACY RIGHTS?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#privacyrights)

[11. CONTROLS FOR DO-NOT-TRACK FEATURES](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#DNT)

12[. DO WE MAKE UPDATES TO THIS NOTICE?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#policyupdates)

[13. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#contact)

[14. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#request)

**1. WHAT INFORMATION DO WE COLLECT?**

**Personal information you disclose to us**

***In Short:** We collect personal information that you provide to us.*

We collect personal information that you voluntarily provide to us when you register on the Services, express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

**Personal Information Provided by You.** The personal information that we collect depends on the context of your interactions with us and the Services, the choices you make, and the products and features you use. The personal information we collect may include the following:

* phone numbers
* email addresses

**Sensitive Information.** We do not process sensitive information.

**Social Media Login Data.** We may provide you with the option to register with us using your existing social media account details, like your Facebook, Twitter, or other social media account. If you choose to register in this way, we will collect the information described in the section called "[HOW DO WE HANDLE YOUR SOCIAL LOGINS?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#sociallogins)" below.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

**Information automatically collected**

***In Short:** Some information — such as your Internet Protocol (IP) address and/or browser and device characteristics — is collected automatically when you visit our Services.*

We automatically collect certain information when you visit, use, or navigate the Services. This information does not reveal your specific identity (like your name or contact information) but may include device and usage information, such as your IP address, browser and device characteristics, operating system, language preferences, referring URLs, device name, country, location, information about how and when you use our Services, and other technical information. This information is primarily needed to maintain the security and operation of our Services, and for our internal analytics and reporting purposes.

Like many businesses, we also collect information through cookies and similar technologies.

The information we collect includes:

* *Log and Usage Data.* Log and usage data is service-related, diagnostic, usage, and performance information our servers automatically collect when you access or use our Services and which we record in log files. Depending on how you interact with us, this log data may include your IP address, device information, browser type, and settings and information about your activity in the Services (such as the date/time stamps associated with your usage, pages and files viewed, searches, and other actions you take such as which features you use), device event information (such as system activity, error reports (sometimes called "crash dumps"), and hardware settings).
* *Device Data.* We collect device data such as information about your computer, phone, tablet, or other device you use to access the Services. Depending on the device used, this device data may include information such as your IP address (or proxy server), device and application identification numbers, location, browser type, hardware model, Internet service provider and/or mobile carrier, operating system, and system configuration information.
* *Location Data.* We collect location data such as information about your device's location, which can be either precise or imprecise. How much information we collect depends on the type and settings of the device you use to access the Services. For example, we may use GPS and other technologies to collect geolocation data that tells us your current location (based on your IP address). You can opt out of allowing us to collect this information either by refusing access to the information or by disabling your Location setting on your device. However, if you choose to opt out, you may not be able to use certain aspects of the Services.

**2. HOW DO WE PROCESS YOUR INFORMATION?**

***In Short:** We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.*

**We process your personal information for a variety of reasons, depending on how you interact with our Services, including:**

* **To facilitate account creation and authentication and otherwise manage user accounts.** We may process your information so you can create and log in to your account, as well as keep your account in working order.
* **To protect our Services.** We may process your information as part of our efforts to keep our Services safe and secure, including fraud monitoring and prevention.
* **To save or protect an individual's vital interest.** We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

**3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?**

***In Short:** We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.*

***If you are located in the EU or UK, this section applies to you.***

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

* **Consent.** We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click [here](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#withdrawconsent) to learn more.
* **Legitimate Interests.** We may process your information when we believe it is reasonably necessary to achieve our legitimate business interests and those interests do not outweigh your interests and fundamental rights and freedoms. For example, we may process your personal information for some of the purposes described in order to:
* Diagnose problems and/or prevent fraudulent activities
* **Legal Obligations.** We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
* **Vital Interests.** We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

***If you are located in Canada, this section applies to you.***

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click [here](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#withdrawconsent) to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

* If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
* For investigations and fraud detection and prevention
* For business transactions provided certain conditions are met
* If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
* For identifying injured, ill, or deceased persons and communicating with next of kin
* If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
* If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
* If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
* If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
* If the collection is solely for journalistic, artistic, or literary purposes
* If the information is publicly available and is specified by the regulations

**4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?**

***In Short:** We may share information in specific situations described in this section and/or with the following third parties.*

We may need to share your personal information in the following situations:

* **Business Transfers.** We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

**5. DO WE USE COOKIES AND OTHER TRACKING TECHNOLOGIES?**

***In Short:** We may use cookies and other tracking technologies to collect and store your information.*

We may use cookies and similar tracking technologies (like web beacons and pixels) to access or store information. Specific information about how we use such technologies and how you can refuse certain cookies is set out in our Cookie Notice.

**6. HOW DO WE HANDLE YOUR SOCIAL LOGINS?**

***In Short:** If you choose to register or log in to our services using a social media account, we may have access to certain information about you.*

Our Services offer you the ability to register and log in using your third-party social media account details (like your Facebook or Twitter logins). Where you choose to do this, we will receive certain profile information about you from your social media provider. The profile information we receive may vary depending on the social media provider concerned, but will often include your name, email address, friends list, and profile picture, as well as other information you choose to make public on such a social media platform.

We will use the information we receive only for the purposes that are described in this privacy notice or that are otherwise made clear to you on the relevant Services. Please note that we do not control, and are not responsible for, other uses of your personal information by your third-party social media provider. We recommend that you review their privacy notice to understand how they collect, use and share your personal information, and how you can set your privacy preferences on their sites and apps.

**7. HOW LONG DO WE KEEP YOUR INFORMATION?**

***In Short:** We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.*

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements). No purpose in this notice will require us keeping your personal information for longer than the period of time in which users have an account with us.

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

**8. HOW DO WE KEEP YOUR INFORMATION SAFE?**

***In Short:** We aim to protect your personal information through a system of organizational and technical security measures.*

We have implemented appropriate and reasonable technical and organizational security measures designed to protect the security of any personal information we process. However, despite our safeguards and efforts to secure your information, no electronic transmission over the Internet or information storage technology can be guaranteed to be 100% secure, so we cannot promise or guarantee that hackers, cybercriminals, or other unauthorized third parties will not be able to defeat our security and improperly collect, access, steal, or modify your information. Although we will do our best to protect your personal information, transmission of personal information to and from our Services is at your own risk. You should only access the Services within a secure environment.

**9. DO WE COLLECT INFORMATION FROM MINORS?**

***In Short:** We do not knowingly collect data from or market to children under 18 years of age.*

We do not knowingly solicit data from or market to children under 18 years of age. By using the Services, you represent that you are at least 18 or that you are the parent or guardian of such a minor and consent to such minor dependent’s use of the Services. If we learn that personal information from users less than 18 years of age has been collected, we will deactivate the account and take reasonable measures to promptly delete such data from our records. If you become aware of any data we may have collected from children under age 18, please contact us at <hi@ramper.xyz>.

**10. WHAT ARE YOUR PRIVACY RIGHTS?**

***In Short:** In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.*

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section “[HOW CAN YOU CONTACT US ABOUT THIS NOTICE?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#contact)” below.

We will consider and act upon any request in accordance with applicable data protection laws.

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: <https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm>.

If you are located in Switzerland, the contact details for the data protection authorities are available here: <https://www.edoeb.admin.ch/edoeb/en/home.html>.

**Withdrawing your consent:** If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "[HOW CAN YOU CONTACT US ABOUT THIS NOTICE?](https://app.termly.io/document/privacy-policy/c9e05081-d937-4a31-b6da-073847c31a0e#contact)" below or updating your preferences.

However, please note that this will not affect the lawfulness of the processing before its withdrawal, nor when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

**Account Information**

If you would at any time like to review or change the information in your account or terminate your account, you can:

* Log in to your account settings and update your user account.

Upon your request to terminate your account, we will deactivate or delete your account and information from our active databases. However, we may retain some information in our files to prevent fraud, troubleshoot problems, assist with any investigations, enforce our legal terms and/or comply with applicable legal requirements.

**Cookies and similar technologies:** Most Web browsers are set to accept cookies by default. If you prefer, you can usually choose to set your browser to remove cookies and to reject cookies. If you choose to remove cookies or reject cookies, this could affect certain features or services of our Services. To opt out of interest-based advertising by advertisers on our Services visit <http://www.aboutads.info/choices/>.

If you have questions or comments about your privacy rights, you may email us at <hi@ramper.xyz>.

**11. CONTROLS FOR DO-NOT-TRACK FEATURES**

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

**12. DO WE MAKE UPDATES TO THIS NOTICE?**

***In Short:** Yes, we will update this notice as necessary to stay compliant with relevant laws.*

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

**13. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?**

If you have questions or comments about this notice, you may email us at <hi@ramper.xyz>.

**14. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?**

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it in some circumstances.


# Import


