Skip to content

Commit

Permalink
Add AuroraPass documentation (aurora-is-near#96)
Browse files Browse the repository at this point in the history
* Add AuroraPass documentation

* Fix linting errors

* Fix spellcheck errors

* v2 of the AP docs

* Fix linter + rename Aurora Chains article

* Spellcheck

* Grammarly Applied

* Grammarly Clarity rewrites applied

* Merge Integration Example Page with Web3Modal

- Fix Discord invite link
- Add Troubleshooting sections to every other page
  • Loading branch information
Karkunow authored Mar 4, 2024
1 parent a37c48d commit 8e24d8f
Show file tree
Hide file tree
Showing 25 changed files with 696 additions and 17 deletions.
10 changes: 5 additions & 5 deletions docs/aurora-cloud/chain.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
---
title: "Dedicated Blockchains"
sidebar_label: Launch your chain (Aurora Chain)
sidebar_position: 1
---


# Aurora Chains
# Aurora Chain

Aurora Chains are dedicated EVM-compatible blockchains built on top of the NEAR Protocol. They are your own instance of Aurora – every Aurora Chain is based upon the Aurora smart contract,
Aurora Chain is a dedicated EVM-compatible blockchain built on top of the NEAR Protocol. It is your own instance of Aurora – every Aurora Chain is based upon the Aurora smart contract,
also called [Aurora Engine](/getting-started/aurora-engine). It provides you with a customized and dedicated blockchain environment.

Benefits include:

1. *No need for additional validators:* when your Aurora Chain is deployed, it automatically gets all the Near Blockchain validators, which are above 300.
2. *Configuration*: create whitelists, choose your own custom token, gas mechanics, integrate KYC, and much more.
3. *Complete ecosystem*: the Rainbow Bridge, on-ramps, indexers, oracles, DEXes, etc., Aurora Cloud provides a selection of integrations that can be deployed to your chain in order to speed up development
4. *Focus on your business*: the tech side of the integration and support are entirely on the [Aurora Labs](https://auroralabs.dev/) team's shoulders.
4. *Focus on your business*: [Aurora Labs](https://auroralabs.dev/) team is available to support each step of the integration.
5. *Seamless interoperability* with Aurora, Near, and any other Aurora Chains: you can freely move your assets using the Rainbow Bridge and call contracts via cross-contract calls (XCC).
There is no disjointness in between. You can call any smart contract in any other Aurora Chain or NEAR and interact with them freely.
6. *Top-notch TPS*: we can provide you dozens of millions of transactions daily for your ecosystem – 1k+ transactions per second.
Expand All @@ -25,7 +25,7 @@ To make Aurora Chain work in the best possible way for your business, we will he
1. *Base token* of your Aurora Chain.
2. *Gas mechanics* within your chain, such as fixed fee or percentage-based fees, gasless transactions, paying for gas with a custom token, etc.
3. *Permission levels*: whitelist usage - who can transact or deploy contracts?
You can learn about how to operate Aurora Chain Whitelists from your dApp [here](/aurora-cloud/chain#whitelist-management).
You can learn about how to operate Aurora Chain Whitelists from your DApp [here](/aurora-cloud/chain#whitelist-management).
4. *Private chain*: can be built using a private NEAR shard [Calimero](https://www.calimero.network/).

## How do I create my Aurora Chain?
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/aurora-engine.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Aurora is backed by top VCs such as Pantera Capital, Electric Capital, Dragonfly

Thanks to Aurora’s EVM, Ethereum native applications can seamlessly be ported to NEAR’s L2-like network that is built as a smart contract on NEAR.
Developers may enjoy familiar Ethereum tooling when working with their Solidity smart contracts on Aurora.
The base fee of Aurora is ETH, which provides a smooth experience for dapps’ users.
The base fee of Aurora is ETH, which provides a smooth experience for DApps’ users.

Besides the EVM, Aurora developed the Rainbow Bridge which allows users to transfer assets between Ethereum, NEAR, and Aurora.
Several integrations of bridges from/to other networks have been launched as well, and more is coming!
Expand Down
67 changes: 67 additions & 0 deletions docs/onboard/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
title: "Introduction"
---

# Aurora Pass

Aurora Pass is a mobile cryptocurrency wallet that makes your interactions with Aurora or any of the Aurora Chains easier than ever, whether transferring your assets or using a DApp.
It also helps onboard your users, even ones unfamiliar with the Web3 ecosystem.

## Key Features

- Simple and user-friendly interface.
- 50 free transactions for each user per month.
- Secure and non-custodial wallet.
- Send and receive assets on Aurora Mainnet and Aurora Chains.
- View your portfolio balances and recent transactions.
- Connect to DApps via WalletConnect v2.

## Integration

Connecting Aurora Pass to a DApp is done like every other EVM wallet implementing a [WalletConnect v2](https://docs.walletconnect.com/).
See more info on configuring or adding WalletConnect [here](/onboard/wallet-connect).

We propose two options for displaying the wallets for your users: Web3Modal or Rainbow Kit. You can follow the step-by-step integration examples here:

- [Web3Modal Example](/onboard/wallets/web3modal#integrate-web3modal)
- [RainbowKit Example](/onboard/wallets/rainbowkit#integrate-rainbowkit)

That will help you to understand better how the different components work together. E.g., wallet modals, promo widgets and UI frameworks.

## Promo Widget

Add a [Promo Widget](/onboard/promo-widget) to your DApp to allow new users to install Aurora Pass quickly.
It will direct a user to download the Aurora Pass application on a mobile phone in the most convenient way.

It is optional to add it to your DApp. Otherwise, you will need to implement some other way to lead users to the installation of the wallet.
We advise everyone to use it as an onboarding entry point in their DApps.

## Free transactions

Aurora Pass requires a login with an email or Apple/Google auth, which will provide them with free transactions on Aurora Mainnet.
The basic plan for Aurora Pass users is 50 free transactions per month. This feature is achieved by using the Gasless Management feature of Aurora Chains.
At the same time, DApps can also pay for their users’ EOA transaction fees by getting their own gasless deal using our Gasless Management product.

If the monthly free transaction limit is reached or the transaction is not sponsored by a DApp, a pack of transactions can be purchased from within the Aurora Pass app.
Currently, only one transaction pack is available: 500 free transactions for around $4.99 (the price can depend on the country).

## Security

Aurora Pass is a non-custodial crypto wallet, meaning the user will be given a 12-word recovery seed phrase that grants them access to their assets.

Users won’t have to save that seed phrase on signup as it is securely saved on the device but can choose to export it anytime.
Excluding such details provides better onboarding while also giving users the ownership of their assets in a non-custodial way.

The seed phrase is the only way to recover access to the wallet in case of loss or when installing the wallet on a new device.

Using the wallet requires biometric authentication (e.g., faceID or touchID). In case it is absent, the PIN code for a device will be used.
The seed phrase is stored using [expo-secure-store](https://docs.expo.dev/versions/latest/sdk/securestore/):

- on Android, values are stored in SharedPreferences, encrypted with Android’s Keystore system;
- on iOS, values are stored using the keychain services.

## Troubleshooting

If you encounter any issues, please visit our [Troubleshooting Page](/onboard/troubleshooting) to find a solution.
In case you still have questions, please get in touch with our [Support Team](https://discord.gg/WXfbGsSUbT)
on Discord and open a support ticket there.
3 changes: 3 additions & 0 deletions docs/onboard/own-wallet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
sidebar_label: Create your own wallet (AP Pro)
---
118 changes: 118 additions & 0 deletions docs/onboard/promo-widget.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
---
title: "Promo Widget"
---

# Promo Widget

If you develop a DApp, you will need a way to get your users to install the Aurora Pass application on their phones. We have created a widget to simplify this step.
This modal leads a user to download the wallet application for iOS or Android by scanning a QR code:

![ap_widget_qr_and_main](/img/ap_widget_qr_and_main.png)

Users can always say they already have the wallet installed, and this popup won't be shown for them next time.

## Quick integration guide

1. Load a script from this [link](https://pass.auroracloud.dev/promo.js), and import it to your project.
2. This adds a function to the `window` object called `openPromo`.
3. To open the widget, call `window.openPromo` and pass the `onComplete` function as a parameter `window.openPromo({ onComplete: function })`
4. You can also check if the function is available before calling it `window.openPromo ? window.openPromo({ onComplete: function }) : function()`
5. Optionally, you can hide the _Update your app_ header by passing the `hideUpdateAppBlock` variable via the `config` argument:
`window.openPromo({ onComplete: () => {...}, config: {hideUpdateAppBlock: true}})`

You can also find the same instructions [here](https://pass.auroracloud.dev/).
A more detailed example of integration is below.

## Detailed integration guide

In the case of building a React app, you can add the `promo.js` script to it by using the `useEffect` hook like this:

```jsx title="aurora-pass-example/src/App.js"
...
import { useEffect } from "react";

let scriptAdded = false;

function App() {
useEffect(() => {
if(!scriptAdded) {
const script = document.createElement("script");
script.src = "https://pass.auroracloud.dev/promo.js";
script.async = true;
document.body.appendChild(script);
}
}, []);

...
}
```

:::note
We assume the project we're working on here is a default `create-react-app` application to simplify things. You can read more about it [here](https://create-react-app.dev/docs/getting-started/).
:::

Then, let's add a function `openModal` to display our Promo Widget just after the imports somewhere:

```jsx title="aurora-pass-example/src/App.js"
...
const openWeb3Modal = () => {
alert("Just a placeholder for now. We will add Web3Modal here later.")
};

const openWidget = () => {
window.openPromo
? window.openPromo({ onComplete: openWeb3Modal, config: {hideUpdateAppBlock: true} })
: openWeb3Modal()
}
...
```

Now, we can set the `onClick` attribute of one of our UI components to display the modal. We can re-use the already existing `App-link` element to use the `openWidget` function:

```jsx title="aurora-pass-example/src/App.js"

function App() {
...

return (
<div className="App">
<header className="App-header">
...
<a
className="App-link"
href="#"
onClick={openWidget}
>
Open Promo
</a>
</header>
</div>
);
}
```

If you click on the `Open Promo` link, you will be able to see the Promo Widget now:
![ap_widget_example_1](/img/ap_widget_example_1.png)

And then, if you click further on the 'Skip, I have a wallet' button, you will see the placeholder message about Web3Modal:
![ap_widget_example_1](/img/ap_widget_example_2.png)

You can also look at the more extensive [integration example here](/onboard/wallets/web3modal#integrate-web3modal) to learn how to add Web3Modal to your project,
particular section describing it is [here](/onboard/wallets/web3modal#add-web3modal).

### What should be called in the `onComplete` function?

The widget calls any function you pass to it. So you could pass anything to it, whether that’s opening Web3Modal or RainbowKit popups or any other function.
But it works best and is meant to be used with WebModal v3 since the modal is styled similarly.

## Examples of integration

To see the widget in use, visit one of the projects on the list:

- [Aurora+](https://aurora.plus/)
- [Pipeflare](https://pipeflare.io/flare2-token/spin)

## Troubleshooting

Please, take a look at our [Troubleshooting Page](/onboard/troubleshooting). In case you still have questions, please get in touch with our [Support Team](https://discord.gg/WXfbGsSUbT)
on Discord and open a support ticket there.
58 changes: 58 additions & 0 deletions docs/onboard/troubleshooting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: Troubleshooting
---

### I have sent my tokens to the wrong wallet - can I recover them?

Aurora Pass does not currently support other EVM chains and L2s, except Aurora and Aurora Chains.
Sometimes, by mistake, users can send assets to their address on those non-supported networks instead.

E.g., suppose you have sent your assets to some of your Ethereum addresses.

These tokens can be quickly recovered by importing your address into a compatible wallet, e.g., MetaMask, using your private key or a seed phrase.
After that, you can bridge them back from Aurora to your Ethereum address. Or transfer the tokens to any other address on Aurora, like your AuroraPass address.

If you have transferred them to a CEX address, you can only recover these tokens if that CEX supports Aurora later. Currently, we support Coinbase, KuCoin, and Gate.io CEXes.

### I can't find the token [XYZ] in my wallet – can I add it somehow?

- If you are a developer, please add a PR to [this repository](https://github.com/aurora-is-near/bridge-assets) following [this example](https://github.com/aurora-is-near/bridge-assets/pull/273/files).
- If you are a user, don't hesitate to get in touch with our [Support Team](https://discord.gg/WXfbGsSUbT) via Discord, and we will help you resolve this issue.

### I have paid for my transaction pack but got no transactions added

Please get in touch with our [Support Team](https://discord.gg/WXfbGsSUbT), and we will help you get your transaction pack.

### I can't see my balances in Aurora Pass

Sometimes, such a situation could happen because of local restrictions in your country of residence. Try using another internet connection or VPN to solve the issue.

### I get the 'Pairing failed: Pairing already exists' error while connecting to a DApp

This error looks like this:
![ap_pairing_error.png](/img/ap_pairing_error.png)

This error means that DApp is already using some existing pairing, but the wallet doesn't know it was disconnected, so there is some non-sync state between them.

To fix it, please try to follow the next steps:

1. Try to disconnect all previously connected wallets from that DApp.
2. Re-connect with your AuroraPass wallet to a DApp.

If the problem persists, please get in touch with our [Support Team](https://discord.gg/WXfbGsSUbT).

### I see symbols like 0xab4... while signing a DApp transaction in Aurora Pass - what do they mean?

If you are a user, don't hesitate to get in touch with either the DApp support team or the [Aurora Support Team](https://discord.gg/WXfbGsSUbT) and ask them to verify the contracts used in that DApp.

If you are a developer, verify your DApp contracts in [Aurora Explorer](https://explorer.aurora.dev/). We're using Blockscout
so that you can read more about it [here](https://docs.blockscout.com/for-users/verifying-a-smart-contract).
Verifying your contracts will ensure that a user sees nicely formatted information - function name and its arguments' names while using the Aurora Pass wallet.

In a non-verified contract, a user will see a non-decoded function name and arguments, which will look incomprehensible and unclear.

We advise you to verify all (or most) of your contracts, which gives your users a better understanding of their interactions with your product via Aurora Pass.

### I have a problem which is not on the list

Please get in touch with our [Support Team](https://discord.gg/WXfbGsSUbT) on Discord and open a ticket describing your problem.
30 changes: 30 additions & 0 deletions docs/onboard/wallet-connect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: "Integrate Wallet Connect"
---

# Wallet Connect Integration

Aurora Pass is meant to be used with [WalletConnect v2](https://docs.walletconnect.com/). It is an industry standard to create an encrypted connection between a DApp and EVM wallet,
initialized by scanning a QR code or via a [deep link](https://docs.walletconnect.com/web3wallet/mobileLinking) for mobile apps and browsers.

## Integration Guide

To integrate WalletConnect into your DApp, follow these steps:

1. If you don't have Wallet Connect yet, please follow the instructions in the [next section](/onboard/wallet-connect#add-your-wallets-modal).
2. If you use WalletConnect v1, [migrate to WalletConnect v2](https://docs.walletconnect.com/2.0/advanced/migration-from-v1.x/overview) first.
3. If you already have WalletConnect v2, add the Aurora Pass wallet to your wallet modal:
e.g., [Web3Modal](/onboard/wallets/web3modal#adding-aurora-pass) or [RainbowKit](/onboard/wallet-connect#add-your-wallets-modal)

Please get in touch with our [Support Team](https://discord.gg/WXfbGsSUbT) if you need some help

## Add your wallet modal

You must integrate one of the Wallet Modals to display the list of wallets for a user to connect to your DApp.
Currently on the market, these are the two most popular options to choose from:

1. [Web3Modal](https://docs.walletconnect.com/web3modal/about) – popup developed by the WalletConnect team. You can read more about it [here](/onboard/wallets/web3modal/).
2. [RainbowKit](https://www.rainbowkit.com/) is another popular wallet modal in the Ethereum ecosystem. More information on integrating it is [here](/onboard/wallets/rainbowkit/).

Both of these are based on WalletConnect v2 out of the box, so if you are not using it yet – that is the place to start. After adding one of these modals,
you can add Aurora Pass to your wallet list and make it one of the primary options for a user, which is done in the next section *'Add your wallets'*.
Loading

0 comments on commit 8e24d8f

Please sign in to comment.