# Welcome to Fina

A Virtual Bank Powered by Crypto

## Overview

Trustless transactions of digital assets have been made possible since the launch of Bitcoin in 2009. Ethereum, born with Smart Contracts in 2014, ultimately led to the debut of DeFi (Decentralized Finance) Summer 2020 and enabled crypto users, for the very first time, to perform financial operations in decentralized networks.

DeFi can technically provide most of the virtual banking services to retail customers. However, crypto has yet to achieve mass adoption to date. We believe there are three main explanations for the belated adoption.

First, the mobile experience in crypto is lagging behind Web2 softwares. The login process and interaction with dApps (Decentralized Applications) are not only unfamiliar to users coming from Web2, but also less user-friendly than most virtual banking applications.

Second, there is no privacy in crypto transactions. Every transaction you made on-chain will be visible to the others. Imagine that by simply paying your friend with Bitcoin, your friend’s transaction history will become instantly transparent to you. You can then track your friend’s Bitcoin address and see his/her transaction history, including where and when he made transactions, from the past to the future. It goes the same for your address.

Third, there is no easy way to spend your crypto on a daily basis. Most merchants do not yet accept crypto as a method of payment. Converting crypto back to fiat currencies (Fiat off-ramp) is also a tedious process which makes it difficult, if not impossible,  to use crypto in daily life.

Fina’s vision is to become a Virtual Bank powered by crypto, by solving the three above-mentioned problems and by providing the best user experience for crypto transactions, savings, lendings, and most importantly, spending.

## Our Products

### Fina Wallet

> Fina Wallet is a mobile non-custodial wallet tailored for the IBC ecosystem. Users can easily manage their IBC assets, perform transactions and staking actions, and participate in governance proposals on both iOS and Android. You can also connect to dApps through our in-app browser.
>
> — [Learn More](/fina-wallet/overview)

### Fina Card

> Fina Card is a Web3 Visa prepaid card which can be topped up with any major cryptocurrencies and connects directly to non-custodial wallets. You can spend your crypto assets anytime anywhere as long as the merchant accepts Visa payment.
>
> — [Learn More](/fina-card/overview)

## Quick links

* Website: <https://fina.cash>
* Download Fina Wallet: <https://api.fina.cash/app/download>
* Fina Card BETA: <https://card.fina.cash>
* White Paper: <https://white-paper.fina.cash>
* Discord: <https://chat.fina.cash>
* Twitter: <https://twitter.com/FinaCash>


# Overview

Fina Wallet is a mobile non-custodial wallet tailored for the IBC ecosystem. Users can easily manage their IBC assets, perform transactions and staking actions, and participate in governance proposals on both iOS and Android. You can also connect to dApps through our in-app browser.

## Download Links

### iOS

{% embed url="<https://apps.apple.com/app/fina-wallet/id1636168233>" %}

### Android

{% embed url="<https://play.google.com/store/apps/details?id=com.fina.secret>" %}


# Features

{% content-ref url="/pages/TdBnIKViIWljx1DDKNcp" %}
[Create/ Import Wallet](/fina-wallet/features/create-import-wallet)
{% endcontent-ref %}

{% content-ref url="/pages/I9yFIbSopZ0iq0UjYjZj" %}
[Manage/ Transfer Tokens](/fina-wallet/features/manage-transfer-tokens)
{% endcontent-ref %}

{% content-ref url="/pages/rQmoawdN1k1D0IQdzXcT" %}
[Staking](/fina-wallet/features/staking)
{% endcontent-ref %}

{% content-ref url="/pages/tudiy2ioIzAZe4YFej5Z" %}
[Connect to dApps](/fina-wallet/features/connect-to-dapps)
{% endcontent-ref %}

{% content-ref url="/pages/r7dGKnOThfNZmfc6mtMq" %}
[Governance](/fina-wallet/features/governance)
{% endcontent-ref %}

{% content-ref url="/pages/V4xjTYY2j4vQQ2zjesa3" %}
[Misc Settings](/fina-wallet/features/misc-settings)
{% endcontent-ref %}


# Create/ Import Wallet

## Create a New Wallet

1. To Create a new wallet, press "Create Wallet" when you first open Fina Wallet app\ <img src="/files/R37mfImDr5RfULXlDBIV" alt="" data-size="original"><br>
2. You will then see the next screen where you can enter a wallet name of your choice, and a 12 word seed phrase. **Please write down the seed phrase in a secure place and do not let anyone else see it!** If you lose the phrase you will never be able to recover your wallet and if someone else has your seed phrase, they will have access to your wallet and there is nothing you can do to stop them!\
   ![](/files/zIHhiti69fA83T8UaWmT)<br>
3. In the next page you will be prompted to enter 2 random words of the seed phrase generated earlier. This is to ensure you have already written them down.\
   ![](/files/7wLZCQa4xGOWvMgUCnqq)<br>
4. Next you can see your newly generated wallet address starting with "secret...". For advanced users, you can select a preferred HD Path to generate a different address, but it is optional and we suggest to leave it as it.\
   ![](/files/dgUka0x7itb7S1pvViou)<br>
5. Your wallet has been generated. You will need to set a custom password with at least 6 characters to encrypt your seed phrase securely in your device.\
   ![](/files/gChWzrcmTpe82OqOjv8z)![](/files/6jfyGJt0lV1DvmruztVP)<br>
6. You can now start using Fina Wallet! Send some funds to your address or purchase it directly by clicking the "Buy" button.\
   ![](/files/N6gQgXlV1UyFjg9BIu9p)

## Import Wallet with Existing Seed Phrase

1. If you already have a seed phrase generated from Fina Wallet or other wallets like Keplr, you can import it to Fina to get the same address and restore all your assets. Click on "Import Wallet" when you open Fina Wallet and enter your existing 12-word or 24-word seed phrase\
   ![](/files/Vp6EgOWczs17SGdXuckW)<br>
2. Next, follow step 4-6 of creating a new wallet. You should your wallet with the same address and assets successfully imported to Fina Wallet

## Connect with Ledger Nano X

1. Fina Wallet supports connect to your hardware wallet Ledger Nano X via Bluetooth connection. Press "Connect with Ledger Nano X" when you first open Fina Wallet app to get started.\
   \
   You can also select the Ledger App you would like to use. We suggest choosing the native Ledger App, ie, Secret. But for legacy reasons you may want to use Cosmos to retrieve your old wallet.\
   ![](/files/vqV6bViwQvEtm65s8u05) <br>
2. Follow the instruction to connect your Ledger Nano X. Remember to keep your Ledger device close to the phone and turn on bluetooth connection.\
   ![](/files/ZAdi1XqC6QAIBZNRvPWg)


# Manage/ Transfer Tokens

## Manage Token

You can view your native token and IBC token balance at Home page. To view your CW20 token or SNIP20 token, you can press "Add Token" to look for the token you want and add it to the home page. \
![](/files/MPiHhlYKHy2HMm0gvg1f)![](/files/cm42tAmobvWE6t2Fw1H5)

To add a SNIP20 token, you need to create either a **Viewing Key** or a **Query Permit**, depends on the token type. To create a Viewing Key, you will need to pay a small gas fee while for Query Permit you do not need to pay any gas fee. You can either add token from the list we provide or enter the token's contract address manually.\
![](/files/55Y353c08CxXSABUAw4c)![](/files/aUEWGt9cNM0KqRtQ3g4p)

For advanced users: if you already have a Viewing Key generated in other wallets like Keplr, you can press "Import Viewing Key" so you do not need to import a new one.\
![](/files/vmmSiPd78ietIkBgVWjb)

## Transfer Token

1. You can transfer all type of tokens, including native token, IBC token, CW20 and SNIP20 tokens. Press on the token you want to transfer and press "Transfer" in the dropdown menu. Enter the amount of token you want to transfer\
   ![](/files/VnpeQKg7kzrAo15fTg0G)![](/files/QySkCWw9YlgAsQgfzLlV)<br>
2. Enter the recipient address. You can only send tokens in the same chain so please enter a valid address on the same network. ie, if you are sending on Secret Network, recipient's address should looks like "secret...". You can also scan the QR code of the recipient's address, or save the recipient's address so you can transfer more easily in the future.\
   \
   Besides the recipient's address, you can also enter a Note/Memo to the transaction. This is usually required if you are transferring tokens to a centralized exchange like Binance.\
   ![](/files/76iItIBMXSNSgA5ir4rQ)<br>
3. In the next screen, you will confirm the transaction details and get an estimate of the gas fee required. For advanced users, you can press on the Gas Fee row and change the gas fee manually.\
   ![](/files/ESuu7RVFM56MnmgSiqR5)![](/files/5pq2jPbtejbGRYfQ4Uar)<br>
4. For each transfer, you will have to enter the password you set when you created or imported your wallet. You can also check the Biometric Authentication option so you can use your Face ID instead of password to send a transaction next time.\
   ![](/files/cX0KNxweWAJm7Zk6CT56)<br>
5. Wait for a few seconds until you see the transaction success screen. You can press the transaction ID to open the block explorer and see the transaction details.\
   ![](/files/PS4tDnEGolQ82MkG6V00)<br>


# Staking

## Delegate

1. You can earn staking rewards by delegating your staking token (eg, SCRT on Secret Network) to validators. To start earning rewards, go to Staking screen to check and manage your staking position. **Please be reminded that staking your tokens comes with a unbonding period of 14-28 days, depend on the network (eg, 21 days on Secret Network), during which you cannot sell or transfer your tokens!** Learn more about staking [Here](https://cosmos.network/learn/staking/) \
   ![](/files/407AocMEwc6O46B8qtsc)<br>
2. Click on "Delegate" to start delegating your tokens. Enter the amount of token you want to delegate. By default Fina.cash validator will be selected. If you wish you can change to other validator by clicking the validator button.\
   \
   Hint: you can enable Auto Restake by clicking the toggle. Your rewards will be automatically claimed and delegate to the same validator to maximize your staking rewards.\
   ![](/files/ZKUoI2O6Z4QSwBcqFQ3g)![](/files/ZX99uxIhpjfAeVFQmMHE)<br>
3. Confirm your transaction just like when you are transferring tokens\
   ![](/files/4LSLNrWcfftsE8Vy3HwO)<br>

## Claim Rewards

1. To claim your staking rewards, simply click on "Claim" button in the Staking page to claim rewards from all validators, or click on the validator under "Delegated" and select "Claim Rewards" in the drop down menu to claim from specific validator\
   ![](/files/VdsTD3rNMcYAjCDhRWek)![](/files/k965SdhBznPRIcrLJ8Ok)

## Undelegate

1. To retrieve your staked tokens, you can "Undelegate" from the validator. There will be a 14-28 days unbonding period after undelegating.\
   ![](/files/VdsTD3rNMcYAjCDhRWek)![](/files/msdVHBCtSDRqAiTlUqWF)<br>

## Redelegate

1. If you want to change a validator, you don't need to undelegate your tokens. Instead you can "Redelegate" them to other validator.\
   ![](/files/4WC80AuPr7TnWShuDelN)

## Enable/ Disable Auto Restaking

1. To maximize your return on investment, you can enable auto restaking. Your staking rewards will be reinvested and staked to the same validator. This allows you to earn compound interest which will be higher than the standard staking APR.\
   ![](/files/KHwYk1UFLUFHw5fremIb)


# Connect to dApps

To connect with dApps (Decentralized Applications), simply navigate to the dApps page and check out the list of dApps that Fina suggested

![](/files/Mb42l5ATLEKnI2E7lNIg)

If the dApp you are looking for is not on the list, you can enter the url directly on the search bar to navigate to the dApp.

![](/files/tHwbWHfg2RaaTvU7lVWB)

After clicking the dApp, you will be redirected to our in-app browser. You can then access the dApp and connect wallet like you normally did on desktop.

![](/files/NSGE2sL5GduCuzRgq8EV)


# Governance

You can view a list of governance proposals on different IBC networks with Fina Wallet.

![](/files/5mh6oekjrewy9bZEO6YE)

Click on the proposal to check the proposal details and voting results.

![](/files/nyfKbvgUkHFc4VC7K9GW)

If the proposal is in voting stage, you can cast your vote by clicking the "Vote" button at the bottom of the proposal details page

![](/files/emNVt8YWeiP69HIM2LV7)![](/files/IHhuu4pC96FhGnianZRA)


# Misc Settings

## Change Network

You can switch network from Secret Network to other IBC chains we support like Osmosis, Stargaze, Juno, etc. Click on the top left network icon on Home page or go to Settings page to switch network.

![](/files/MPiHhlYKHy2HMm0gvg1f)![](/files/KIbZ0kwJ1UZcn9qSBpZg)![](/files/oNc1ob8TapZ2tzs66c7F)

When switching network for the first time, you are required to enter your password (or use FaceID) again. This is to generate an address for the network you switched to and you do not have to do it the next time.

## Change Account

Fina Wallet allows you to have multiple account (wallets) in the same device. You can click on your wallet nickname on Home page or go to Settings page to do that.

![](/files/MPiHhlYKHy2HMm0gvg1f)![](/files/5YjT855k2Sq2uo3kCuHR)

If you already have multiple accounts on Fina Wallet, you can switch account by clicking it. If not, you can click the top right button and create/ import new accounts. From there, follow the same steps states in [Create/ Import Wallet](/fina-wallet/features/create-import-wallet)

![](/files/TIAzFRVxV5B4TYaPFboG)

## Lock Screen Settings

For security and privacy purpose, you can set a lock screen for Fina Wallet. There are 3 lock screen modes you can choose from

1. On Background - lock screen will be shown when your app runs on background
2. On App Start - lock screen will be shown when you first open the app.&#x20;
3. Off - no lock screen will be shown

![](/files/7HEHEEV2GGyzNa8niUNH)

## Biometric Authentication

If you enable Biometric Authentication, you can use your FaceID instead of password to sign transactions or unlock the app from lock screen.

## View Seed Phrase

If you want to view your seed phrase, you can do that in the Settings page by clicking "View Seed Phrase". You will have to enter your password again to see that.

## Change Password

You can change your password anytime by clicking "Change Password" on Settings page

## Delete Account

You can delete your account from Fina Wallet by clicking "Delete Account" on Settings page. Your account will still exist on chain and you can import your account to Fina Wallet or other wallets again if you have your seed phrase. **Please remember to back up your seed phrase before deleting an account. No one can recover your wallet and assets if you lose your seed phrase!**


# For Developers

## Integration with dApps

To detect if users are accessing your dApp on Fina, you can check if the following object exist.

```typescript
window.fina
```

If this is `undefined` that means user is not accessing your dApp via Fina Wallet's in-app browser.

Fina Wallet exposes the same API as [Keplr](https://www.keplr.app/). So if your dApp supports Keplr, it should be working on Fina Wallet out of the box. You can check Keplr's API documentation [here](https://docs.keplr.app/api/)

Besides, the `window.fina` object is just a pointer to `window.keplr` so the underlying methods and properties will be the same

## Deep Linking

If you want to redirect users from your dApp to Fina Wallet, you can use the following deep link

```
fina://wallet
```

If you want to redirect users to your dApp directly on Fina's in-app browser, you can use the following deep link

```
fina://wallet/dapps?network=secret-4&url=https%3A%2F%2Fcard.fina.cash
```

There are 2 url parameters in the deep link

1. `network` - the chain ID of the network your dApp is connecting to
2. `url` - your dApp's URL-encoded url

Example (provided by SCRT Labs [here](https://github.com/scrtlabs/secret.js#fina-wallet))

```typescript
const urlSearchParams = new URLSearchParams();
urlSearchParams.append("network", "secret-4");
urlSearchParams.append("url", window.location.href);

window.open(`fina://wllet/dapps?${urlSearchParams.toString()}`, "_blank");
```


# Overview

Fina Card is a Web3 Visa prepaid card which can be topped up with any major cryptocurrencies and connects directly to non-custodial wallets. You can spend your crypto assets anytime anywhere as long as the merchant accepts Visa payment.

## Fina Card BETA

Fina Card is currently in BETA phase and here are the things you should note.

1. Only Virtual Card is available, which is addible to your Apple Pay/ Google Pay wallet.
2. No KYC is required during the BETA phase!
3. Available globally to all countries!
4. No FINA staking is required!
5. No FINA rewards will be paid out during the BETA phase
6. Card registration and top-up may sometimes be unavailable due to insufficient liquidity during the BETA phase. Please kindly wait for a few days and try again.
7. When BETA phase ended, you will need to register for a new Fina Card and your remaining balance will be transferred to the new card. If you are not eligible for a production Fina Card due to your jurisdiction, your remaining balance will be refunded in SCRT of equivalent EUR value.
8. Disclaimer: During the BETA phase, all Fina Cards are held by Fina Finance UAB (id: 306068694) and all card expenses are for business purpose to test functionalities of Fina Card. If you need help, please reach out to us at [https://chat.fina.cash](https://chat.fina.cash/).\
   **You should never reach out to our card provider directly.**

## BETA Link

{% embed url="<https://card.fina.cash>" %}


# Features

{% content-ref url="/pages/nFUoaKOutgQYxD3c3uZQ" %}
[Getting Started](/fina-card/features/getting-started)
{% endcontent-ref %}

{% content-ref url="/pages/Qrq0pFWdQY2zHftLv6W4" %}
[Read Card Details](/fina-card/features/read-card-details)
{% endcontent-ref %}

{% content-ref url="/pages/ZNxnYsdE5dlHizruGasU" %}
[Edit Card Details](/fina-card/features/edit-card-details)
{% endcontent-ref %}

{% content-ref url="/pages/3Z3Gejs3xwpbfdrIahF0" %}
[Top Up Balance](/fina-card/features/top-up-balance)
{% endcontent-ref %}

{% content-ref url="/pages/Fi6kwTj5pqW1K7Fd2mCZ" %}
[Transaction Histories](/fina-card/features/transaction-histories)
{% endcontent-ref %}


# Getting Started

## Connect with Keplr or Fina Wallet

Go to [https://card.fina.cash](https://card.fina.cash/) and connect to your Keplr wallet

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

## Registering for a Fina Card <a href="#id-4142" id="id-4142"></a>

1. If you have not registered a Fina Card yet, you will be prompted to register for a new card.

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

2. An initial top-up with SCRT tokens is required to create a Fina Card. This is to prevent spamming of the card system which creates high expenses on our side. The topped-up amount (EUR 100 minus the fee) will be available and usable in your Fina Card later.

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

3. That’s it! You can now start spending with Fina Card and exploring different features of the Fina Card Portal. Please reach out to us at [http://chat.fina.cash](https://chat.fina.cash/) should you have any questions.

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


# Read Card Details

You can use your Fina Card for purchase like a normal, virtual Visa card by entering your card number, expiry date and CVV code for online purchases, or adding the card to [Apple Pay](https://support.apple.com/en-hk/HT204506) or [Google Pay](https://support.google.com/pay/answer/7625055?hl=en\&ref_topic=7625138) on your phone to purchase at POS.

To check your card number and other sensitive information, click on "Details" next to "Card Info"

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

Next, click on the Eye icon next to the title "Sensitive Information". You will be prompted to sign a message with your Keplr or Fina Wallet. Don't worry it will not cost any gas fee. After signing the message you should be able to see your card details including card number, CVV and 3DS password you set when creating your card.

On the right side of the modal you can see your card spending limit. We set a low spending limit for each card during BETA phase. If you need to increase the limit, reach out to us at <https://chat.fina.cash> and we will review in a case-by-case bases.


# Edit Card Details

## Change 3DS Mobile Number

For some online purchases, 3D Secure verification is required to approve your transactions. You will receive an SMS with verification code on the phone number you registered.

You can change this phone number in the "Card Details" modal. Click on the Pen icon next to 3DS Mobile to change your phone number

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

## Change 3DS Password

Same as the 3DS phone number, some transactions require you to enter password for approval. You can change the password in the "Card Details" modal. Click on the Pen icon next to 3DS Password to change your password

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

## Block Card Transactions

If your card is stolen or for whatever reasons you want to freeze all card transactions, you can do it in the Card Details. Click on "Block My Card" button and click "Confirm" to block all card transactions. You can repeat the same steps if you want to unblock your card.

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


# Top Up Balance

## Top Up Fina Card

You can top up your card with cryptocurrencies by clicking the "Top Up" button in the home page.

Select the asset you want to top-up your card and enter the amount. Fina will charge 1% of the top-up amount as fee.

There is a minimum and maximum top-up amount and the value will be adjusted from time to time

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

After entering a valid amount and click "Top Up", you will be prompted to sign a transaction to send us the top-up asset. Your card balance will be increased after the transaction is sent.

## Top Up Fail

If for whatever reason, your top-up transaction is sent but your card balance is not increased, you can retrieve your top up by clicking "Top Uo failed? Retrieve it here" at the bottom of the top up modal.

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

Enter the transaction hash and click "Confirm" and your balance should be increased. If it still does not work for you, please create a ticket at <https://chat.fina.cash>


# Transaction Histories

## Transaction Details

On the right side of the card portal's home page, you can see a list of transactions you made with Fina Card. Click on a transaction to see the details

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

## Export Transactions

You can export all transactions as CSV by clicking the "Export" button next to the title "Transactions"

<figure><img src="/files/9MYwv60BDKqanMeiusPa" alt=""><figcaption></figcaption></figure>


# For Developers

## Fina Card API (BETA)

Fina Card has public API endpoints so you can integrate Fina Card in your dApp or Wallet UI, or use our API to analyse your spendings\://api

### Generating Signature

For each API method, you need to include a [ADR-36](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-036-arbitrary-signature.md) signature. The message required in each API method is different. Here is an Javascript example of using Keplr to generate the signature.

```typescript
if (window.keplr) {
    await window.keplr.enable("secret-4");
    const account = await window.keplr.getKey("secret-4");
    const signed = await window.keplr.signArbitrary(
      "secret-4",
      account.bech32Address,
      "Fina Card: Sign In"
    );
    // Parameters required to make a request
    const signature = signed.signature
    const address = account.bech32Address
    const pubKey = signed.pub_key.value
    const chainId = "secret-4"
}
```

### Encryption Key

As Fina needs to query the details of the Top Up transaction, which is encrypted on Secret Network, we need to know the encryption key used in the transaction so we can decrypt the message. Here is an example code to generate the encryption key.

```typescript
import { fromBase64, toBase64 } from "secretjs";

const getTxEncryptionKey = async (txHash: string, chainId: string) => {
  if (window.keplr) {
    const encryptionUtils = window.keplr.getEnigmaUtils(chainId);
    const txResult = await fetch(
      `${SECRET_LCD_URL}/cosmos/tx/v1beta1/txs/${txHash}`
    ).then((r) => r.json());
    const msg = txResult?.tx?.body?.messages[0].msg
    if (!msg) {
      return "";
    }
    const nonce = fromBase64(msg).slice(0, 32)
    const encryptionKey = toBase64(
      await encryptionUtils.getTxEncryptionKey(nonce)
    );
    return encryptionKey;
  }
  return "";
};
```

## API Methods

### Get Account

Get user's Fina Card information and transactions

<mark style="color:green;">`POST`</mark> `https://api.card.fina.cash/getAccount`

#### Request Body

| Name                                        | Type   | Description                                                   |
| ------------------------------------------- | ------ | ------------------------------------------------------------- |
| signature<mark style="color:red;">\*</mark> | String | <p>Message to sign:</p><p><code>Fina Card: Sign In</code></p> |
| address<mark style="color:red;">\*</mark>   | String | User's bech32 address                                         |
| pubKey<mark style="color:red;">\*</mark>    | String | User's base64 encoded public key                              |
| chainId<mark style="color:red;">\*</mark>   | String | Chain ID                                                      |

{% tabs %}
{% tab title="200: OK " %}

```typescript
interface Response {
    id: string
    tier: {
      name: string
      stakingApy: number
      spendingRewards: number
    },
    limits: {
      posPurchase: {
        daily: {
          limit: number
          used: number
        },
        monthly: {
          limit: number
          used: number
        },
      },
      internet: {
        daily: {
          limit: number
          used: number
        },
        monthly: {
          limit: number
          used: number
        },
      },
      withdrawal: {
        daily: {
          limit: number
          used: number
        },
        monthly: {
          limit: number
          used: number
        },
      },
      contactless: {
        daily: {
          limit: number
          used: number
        },
        monthly: {
          limit: number
          used: number
        },
      },
    },
    maskedCardNumber: string
    expiryDate: number
    status: string
    currency: string
    cardHolder: string
    balance: number
    mobile: string
    transactions: {
        id: string
        date: number
        amount: number
        fx: {
          amount: number
          currency: string
        },
        merchant: {
          category: string
          name: string
          longName: string
          city: string
          country: string
          icon: string
          url: string
        },
        description: string
        hash: string
        status: string
        fee: {
          amount: number
          currency: number
          description: string
        }[]
    }[]
}
```

{% endtab %}

{% tab title="400: Bad Request Missing parameters" %}

```typescript
interface Response {
    success: false
    message: "invalid request"
}
```

{% endtab %}

{% tab title="401: Unauthorized User does not exist or incorrect signature" %}

```typescript
interface Response {
    success: false
    message: "unauthorized"
}
```

{% endtab %}
{% endtabs %}

### Get Sensitive Information

Get user's encrypted sensitive card information like full card number, CVV, 3DS password

<mark style="color:green;">`POST`</mark> `https://api.card.fina.cash/getSensitiveInfo`

#### Request Body

| Name                                        | Type   | Description                                                                                           |
| ------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------- |
| signature<mark style="color:red;">\*</mark> | String | <p>Message to sign:</p><p><code>Fina Card: View Sensitive Information at {{ISO Timestamp}}</code></p> |
| address<mark style="color:red;">\*</mark>   | String | User's bech32 address                                                                                 |
| pubKey<mark style="color:red;">\*</mark>    | String | User's base64 encoded public key                                                                      |
| chainId<mark style="color:red;">\*</mark>   | String | Chain ID                                                                                              |
| timestamp<mark style="color:red;">\*</mark> | String | ISO Timestamp, eg `2023-03-31T13:12:36.128Z`                                                          |
| rsaPubKey<mark style="color:red;">\*</mark> | String | A base64 encoded RSA public key used to encrypt the sensitive information                             |

{% tabs %}
{% tab title="200: OK " %}

```typescript
interface Response {
    encrypted3dsPassword: string // encryption scheme label: Card3DSecurePassword
    encryptedCardNumber: string // encryption scheme label: CardNumber
    encryptedCvv: string // encryption scheme label: CVV2
}
```

To decrypt the information, use the RSA key generated with scheme `{ hash: "sha256", label: "CardNumber" }` . Scheme label for each field is different.

Example:

```typescript
import NodeRSA from "node-rsa";

// Get user's wallet address and sign message
const chainId = "secret-4"
const timestamp = new Date().toISOString();
const account = await window.keplr.getKey(chainId);
const signed = await window.keplr.signArbitrary(
    chainId,
    account.bech32Address,
    `Fina Card: View Sensitive Information at ${timestamp}`
);
// Generate RSA key
const key = new NodeRSA();
key.generateKeyPair(1024);
const publicKey = Buffer.from(key.exportKey("pkcs1-public")).toString("base64");
// Call API
const result = await fetch(
    `https://api.card.fina.cash/getSensitiveInfo`,
    {
      method: "POST",
      body: JSON.stringify({
          signature: signed.signature,
          address: account.bech32Address,
          pubKey: signed.pub_key.value,
          timestamp,
          rsaPubKey: publicKey,
        }),
      }
).then((r) => r.json());
if (result.success === false) {
  throw new Error(result.message);
}
// Decrypt responses
key.setOptions({
    encryptionScheme: {
      hash: "sha256",
      label: "CardNumber",
    },
});
const cardNumber = key.decrypt(
    result.encryptedCardNumber.split("\n").slice(1, -2).join(""),
    "utf8"
);
key.setOptions({
    encryptionScheme: {
      hash: "sha256",
      label: "CVV2",
    }
});
const cvv = key.decrypt(
    result.encryptedCvv.split("\n").slice(1, -2).join(""),
    "utf8"
);
key.setOptions({
    encryptionScheme: {
      hash: "sha256",
      label: "Card3DSecurePassword",
    }
});
const password = key.decrypt(
    result.encrypted3dsPassword.split("\n").slice(1, -2).join(""),
    "utf8"
);
```

{% endtab %}

{% tab title="400: Bad Request Missing parameters" %}

```typescript
interface Response {
    success: false
    message: "invalid request"
}
```

{% endtab %}

{% tab title="401: Unauthorized Incorrect signature or signature expired" %}

```typescript
interface Response {
    success: false
    message: "unauthorized"
}
```

{% endtab %}
{% endtabs %}

### Get Top Up Information

Get top up information like the price, fee, min and max top up amount, etc

<mark style="color:green;">`POST`</mark> `https://api.card.fina.cash/getTopupInfo`

#### Request Body

| Name                                        | Type   | Description                                                   |
| ------------------------------------------- | ------ | ------------------------------------------------------------- |
| signature<mark style="color:red;">\*</mark> | String | <p>Message to sign:</p><p><code>Fina Card: Sign In</code></p> |
| address<mark style="color:red;">\*</mark>   | String | User's bech32 address                                         |
| pubKey<mark style="color:red;">\*</mark>    | String | User's base64 encoded public key                              |
| chainId<mark style="color:red;">\*</mark>   | String | Chain ID                                                      |

{% tabs %}
{% tab title="200: OK " %}

```typescript
interface Response {
    topupAddress: string
    maxTopupAmount: number
    minTopupAmount: number
    initialTopupValue: number
    rate: number
    feeRate: number
    decimals: number
    denom: string
    gasBuffer: number
    gasPrice: number
}
```

{% endtab %}

{% tab title="400: Bad Request Missing parameters" %}

```typescript
interface Response {
    success: false
    message: "invalid request"
}
```

{% endtab %}

{% tab title="401: Unauthorized User does not exist or incorrect signature" %}

```typescript
interface Response {
    success: false
    message: "unauthorized"
}
```

{% endtab %}
{% endtabs %}

### Change 3D Secure Settings

Change 3D Secure settings like mobile number and password

<mark style="color:green;">`POST`</mark> `https://api.card.fina.cash/change3DS`

#### Request Body

| Name                                        | Type   | Description                                                                                    |
| ------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------- |
| signature<mark style="color:red;">\*</mark> | String | <p>Message to sign:</p><p><code>Fina Card: Change 3DS Settings at {{ISO Timestamp}}</code></p> |
| address<mark style="color:red;">\*</mark>   | String | User's bech32 address                                                                          |
| pubKey<mark style="color:red;">\*</mark>    | String | User's base64 encoded public key                                                               |
| chainId<mark style="color:red;">\*</mark>   | String | Chain ID                                                                                       |
| timestamp<mark style="color:red;">\*</mark> | String | ISO Timestamp, eg `2023-03-31T13:12:36.128Z`                                                   |
| password                                    | String | New 3D Secure password                                                                         |
| mobile                                      | String | New 3D Secure mobile number                                                                    |

{% tabs %}
{% tab title="200: OK " %}

```typescript
interface Response {
    success: true
}
```

{% endtab %}

{% tab title="400: Bad Request Missing parameters" %}

```typescript
interface Response {
    success: false
    message: "invalid request"
}
```

{% endtab %}

{% tab title="401: Unauthorized User does not exist or incorrect signature" %}

```typescript
interface Response {
    success: false
    message: "unauthorized"
}
```

{% endtab %}
{% endtabs %}

### Toggle Block Card

Block or Unblock card transactions

<mark style="color:green;">`POST`</mark> `https://api.card.fina.cash/toggleBlockCard`

#### Request Body

| Name                                        | Type   | Description                                                                                  |
| ------------------------------------------- | ------ | -------------------------------------------------------------------------------------------- |
| signature<mark style="color:red;">\*</mark> | String | <p>Message to sign:</p><p><code>Fina Card: Toggle Block Card at {{ISO Timestamp}}</code></p> |
| address<mark style="color:red;">\*</mark>   | String | User's bech32 address                                                                        |
| pubKey<mark style="color:red;">\*</mark>    | String | User's base64 encoded public key                                                             |
| chainId<mark style="color:red;">\*</mark>   | String | Chain ID                                                                                     |
| timestamp<mark style="color:red;">\*</mark> | String | ISO Timestamp, eg `2023-03-31T13:12:36.128Z`                                                 |

{% tabs %}
{% tab title="200: OK " %}

```typescript
interface Response {
    success: true
}
```

{% endtab %}

{% tab title="400: Bad Request Missing parameters" %}

```typescript
interface Response {
    success: false
    message: "invalid request"
}
```

{% endtab %}

{% tab title="401: Unauthorized User does not exist or incorrect signature" %}

```typescript
interface Response {
    success: false
    message: "unauthorized"
}
```

{% endtab %}
{% endtabs %}

### Top Up

Top up card by sending token to the `topupAddress` returned from `/getTopupInfo` and call this API with the TX hash to increase card balance.

<mark style="color:green;">`POST`</mark> `https://api.card.fina.cash/topup`

#### Request Body

| Name                                            | Type   | Description                                                   |
| ----------------------------------------------- | ------ | ------------------------------------------------------------- |
| signature<mark style="color:red;">\*</mark>     | String | <p>Message to sign:</p><p><code>Fina Card: Sign In</code></p> |
| address<mark style="color:red;">\*</mark>       | String | User's bech32 address                                         |
| pubKey<mark style="color:red;">\*</mark>        | String | User's base64 encoded public key                              |
| chainId<mark style="color:red;">\*</mark>       | String | Chain ID                                                      |
| topupAsset<mark style="color:red;">\*</mark>    | String | Token symbol used to top up. eg, `SCRT`                       |
| currency<mark style="color:red;">\*</mark>      | String | Currency to top up the card. eg, `EUR`                        |
| txHash<mark style="color:red;">\*</mark>        | String | TX hash of your top up                                        |
| encryptionKey<mark style="color:red;">\*</mark> | String | Encryption key used to encrypt transaction on Secret Network  |

{% tabs %}
{% tab title="200: OK " %}

```typescript
interface Response {
    txHash: string
    topupValue: number
    currency: string
    timestamp: number
}
```

{% endtab %}

{% tab title="400: Bad Request Missing parameters" %}

```typescript
interface Response {
    success: false
    message: "invalid request"
}
```

{% endtab %}

{% tab title="401: Unauthorized User does not exist or incorrect signature" %}

```typescript
interface Response {
    success: false
    message: "unauthorized"
}
```

{% endtab %}
{% endtabs %}

### Create New Card

Create a new card for new user

<mark style="color:green;">`POST`</mark> `https://api.card.fina.cash/createCard`

#### Request Body

| Name                                            | Type   | Description                                                   |
| ----------------------------------------------- | ------ | ------------------------------------------------------------- |
| signature<mark style="color:red;">\*</mark>     | String | <p>Message to sign:</p><p><code>Fina Card: Sign In</code></p> |
| address<mark style="color:red;">\*</mark>       | String | User's bech32 address                                         |
| pubKey<mark style="color:red;">\*</mark>        | String | User's base64 encoded public key                              |
| chainId<mark style="color:red;">\*</mark>       | String | Chain ID                                                      |
| topupAsset<mark style="color:red;">\*</mark>    | String | Token symbol used in initial top up. eg, `SCRT`               |
| currency<mark style="color:red;">\*</mark>      | String | Currency to top up the card. eg, `EUR`                        |
| txHash<mark style="color:red;">\*</mark>        | String | TX hash of your initial top up                                |
| name<mark style="color:red;">\*</mark>          | String | Name on your card                                             |
| mobile<mark style="color:red;">\*</mark>        | String | 3D Secure mobile number                                       |
| password<mark style="color:red;">\*</mark>      | String | 3D Secure password                                            |
| encryptionKey<mark style="color:red;">\*</mark> | String | Encryption key used to encrypt transaction on Secret Network  |

{% tabs %}
{% tab title="200: OK " %}

```typescript
interface Response {
    txHash: string
    topupValue: number
    currency: string
    timestamp: number
}
```

{% endtab %}

{% tab title="400: Bad Request Missing parameters" %}

```typescript
interface Response {
    success: false
    message: "invalid request"
}
```

{% endtab %}

{% tab title="401: Unauthorized User does not exist or incorrect signature" %}

```typescript
interface Response {
    success: false
    message: "unauthorized"
}
```

{% endtab %}

{% tab title="403: Forbidden Account already existed" %}

```typescript
interface Response {
    success: false
    message: "account already exist"
}
```

{% endtab %}
{% endtabs %}


# Overview

We’re excited to announce the launch of the Fina P2P —a decentralized, privacy-preserving, cross-chain platform for peer-to-peer trading. This marks a significant step in our journey to create a seamless, trustless trading experience without the need for centralized intermediaries.

### Why Fina P2P?

Fina P2P leverages Secret Network’s smart contract privacy features to protect users during transactions, ensuring personal information like payment details remains confidential. By removing traditional intermediaries, Fina P2P enables decentralized users to trade directly, offering a trustless and privacy-focused solution.

### Bug Bounty Program: Join the Journey

To ensure the platform delivers the best experience, we’re inviting the community to participate in a bug bounty program. Here’s how it works:

* Report bugs or suggest UX improvements during the testnet phase on [Discord](https://discord.com/channels/952397096722505768/1322233983391498324).
* Earn FINA tokens for every adopted suggestion (rewards determined case-by-case).

Your feedback will directly shape the future of Fina P2P and help refine the platform for the mainnet launch.

### How to Get Started

1. Explore the platform: Visit our [platform](https://app.fina.cash/p2p) and experience the P2P process first-hand.
2. Test the User Journey: Create ads, make trades, and simulate disputes to see the platform in action.
3. Submit Feedback: Share your observations and suggestions via [Discord ticket](https://discord.com/channels/952397096722505768/1322233983391498324)


# Features

{% content-ref url="/pages/4J7FQSeKJjJ2ZsoGrVhx" %}
[Getting Started](/fina-p2p/features/getting-started)
{% endcontent-ref %}

{% content-ref url="/pages/uv3XlBArpfqhohL5kDeh" %}
[Create a Post](/fina-p2p/features/create-a-post)
{% endcontent-ref %}

{% content-ref url="/pages/taDfEgQhIgpW0imcy8tq" %}
[Enter a Deal](/fina-p2p/features/enter-a-deal)
{% endcontent-ref %}

{% content-ref url="/pages/d9W9RTDRXNnwog7oDO7T" %}
[Resolve Dispute](/fina-p2p/features/resolve-dispute)
{% endcontent-ref %}


# Getting Started

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

1. Visit <https://app.fina.cash/p2p>
2. Click on Connect Wallet

### Set up Viewing Key

When you connect wallet for the first time, you will need to set up viewing key for FINA token and the P2P Smart Contract. Click on Set Viewing Key on the lower right corner.

You will get a prompt on your Keplr wallet to set up viewing key. Click approve. Once your viewing key is set up, you will be prompted to enter your P2P payment details

### Set Up Payment Details

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

You should see a Register Payment Info pop up. If not, click the Payment Info button on the lower right corner.

Enter your contact method, payment method and payment information. Your contact method and payment method will be visible to all Fina P2P users when you open a post, but your Payment Information will only be visible to the counterparty you are trading with.

### Open Trades

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

Once you have set up your Payment Info, you should be able to see the Open Trades posted by other P2P users. You can choose to enter a deal by clicking the Sell or Buy button of the post, or click Create Post to open a new trade yourself.


# Create a Post

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

To create a new post, click Create Post button on the lower right corner. You should see a Create P2P Post pop up. Select whether you want to buy or sell the cryptocurrency selected (in this case, FINA), the amount of FINA you want to trade, minimum trade amount per deal, trade currency (eg, USDT, USDC, BTC, etc) and enter the price you want to trade at.

Your payment method and contact info cannot be changed in this modal. You can click on Edit to change your payment info but that will affect all your active and future trades.

After clicking Confirm, you will get a prompt from Keplr to sign a transaction. If you are selling cryptocurrency you will get another prompt to deposit the cryptocurrency at the amount you set previously. Once the transaction is broadcasted to the chain, you should see your post under My Trades

### Deal Request

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

Your active posts will be shown under My Trades. If someone is interested in your post they will Enter a Deal with you, which will be shown by the number next to the My Deals button. For example, the number 1 in the post means 1 person has entered a deal with your post.

### Deals Status

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

You can click on My Deals to check all open deals and their status. For example in this post you have 1 active deals, which is pending for customer (counterparty) to make a payment.

### Sign Off or Dispute

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

After the customer has made a transfer, you can either Sign Off the deal or raise a Dispute if you haven't received the payment.


# Enter a Deal

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

Besides creating a post yourself, you can also enter a deal with a post created by other users. Click on Buy or Sell button of the post and you should see a Buy (or Sell) Modal.&#x20;

You are advised to contact the post creator with the Contact Info provided first before entering a deal. Also, remember to keep all chat records in case of dispute.

Next, enter the amount of cryptocurrency you want to trade and click Confirm. If you are selling cryptocurrency, you need to deposit the cryptocurrency with the amount you set.

### Deal Status

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

You can check your deal status under My Trades. For example in this case your trade status is Pending for Customer Transfer. Click on Payment Details to check the counterparty's payment method.

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

Click on Payment Detail to check the counterparty's payment instruction. Make sure to contact the counterparty before making any transaction (eg, Ethereum Transfer) and keep the chat record in case of dispute.

After making the payment, notify the counterparty by clicking Confirm Payment. The deal status will change to Pend Dealer Sign Off and trade will be resolved once the counterparty confirm received the payment and sign off the deal.

You can also cancel the deal after the expiry time. In that case the cryptocurrency you deposited will be refunded to the counterparty.


# Resolve Dispute

If you cannot receive the payment from the counterparty, you can raise a dispute and our moderator will settle the case for you. Your trade status will turn into Dispute and at this point you can create a ticket in our [Discord](https://discord.com/channels/952397096722505768/1322233983391498324). Our moderator will gather all evidences from both parties and decide who should receive the locked tokens.

To ensure a smooth transaction and not losing your money in a trade, make sure to follow the points below:

1. Always contact the counterparty before entering a deal.
2. Always keep the chat record by doing screen captures as the counterparty may delete the chat records in case of dispute.
3. Do not trade in large amount. Fina P2P is still in Beta phase so please use it cautiously.
4. Please make sure it is legal to use P2P Cryptocurrency trading platform in the jurisdiction that you are at.
5. Moderators will not be responsible for any loss of funds due to dispute resolutions.


# Utilities

FINA token will be launched to acquire economic value for this project. It is essential to the success of the project that FINA generates revenue, rewards users and adds value to the token. There are several value accrual factors which will generate positive incentives.

## Demands for Fina Card Tier

Taking reference from Crypto.com’s model, to acquire a Fina Card, users would have to stake a certain amount of FINA tokens for a lock-up period of 6 months, after which the user will be required to maintain the staking amount in order to enjoy the benefits of the tier. As a reference, acquiring a Sliver card would require a staking of $2,000 USD worth of FINA tokens.

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

## Requirement for the Reward Program

Taking reference from credit card reward programmes, merchants who want to promote their products to Fina card users would have to purchase Fina tokens. The purchased tokens will then be distributed as spending rewards to the users who spent in the merchants with Fina card. For example, hardware wallet provider Ledger can offer a 10% rebate to buyers who have made a purchase with a Fina card. Those rebates will be honored in the form of FINA tokens and Ledger has to purchase FINA tokens for this purpose.

## Fiat-Defi integrations

Fina intends to pioneer arms length widgets that handle fiat on/off-ramps into Secret Network, if not the IBC ecosystem via Fina Card. This brings more capital into the app and the ecosystem. Certain user interaction in on/off-ramps would require a fee paid in the form of Fina tokens.&#x20;

<br>


# Tokenomics

## Token Distributions

<table><thead><tr><th width="236">Allocation</th><th>Percentage</th><th width="168">No. of Token</th><th width="122">Token Price</th><th>FDV</th></tr></thead><tbody><tr><td>Airdrop</td><td>1%</td><td>10,000,000</td><td>NA</td><td></td></tr><tr><td>Community Emission</td><td>50%</td><td>500,000,000</td><td>NA</td><td></td></tr><tr><td>Team &#x26; Advisors</td><td>20%</td><td>200,000,000</td><td>NA</td><td></td></tr><tr><td>Treasury</td><td>21%</td><td>210,000,000</td><td>NA</td><td></td></tr><tr><td>Seed Investor</td><td>4%</td><td>40,000,000</td><td>$0.005</td><td>USD 5M</td></tr><tr><td>Public Sale</td><td>4%</td><td>40,000,000</td><td>$0.01</td><td>USD 10M</td></tr><tr><td>Total</td><td>100%</td><td>1,000,000,000</td><td></td><td></td></tr></tbody></table>

## Airdrop (1%)

As a marketing campaign and gratitude to our supporters, we will airdrop FINA tokens to delegators who delegate SCRT to our validator, follow our Twitter or retweet or retweet our specified tweet. More information at <https://fina.cash/airdrop>\
\
Vesting Schedule: 25% at TGE. 1 year linear vesting

## Community Emission (50%)

Tokens will be distributed to FINA stakers and LP (Liquidity Pool) providers as incentives. It also includes spending rewards for the Fina Cards to incentivize card usage and user acquisition.\
\
Vesting Schedule: 8% at TGE. Fully vested in 6 years.

## Team & Advisor (20%)

Allocated to early contributors of the project, including team members of Fina Limited and a selection of advisors.\
\
Vesting Schedule: No token issued at TGE, 4 years linear vesting, 12 months cliff.

## Treasury (21%)

Project treasury to support future growth. Fina DAO will be established and own the treasury. Use of treasury must go through on-chain governance.\
\
Vesting Schedule: 25% at TGE, 2 years linear vesting, 6 months cliff.

## Seed investment (4%)

Token to be sold to private investors to support project growth in the early stage.

Vesting Schedule: No issue in TGE, 2 years linear vesting, 6 months cliff.

## Public Sales (4%)

Token offered to public investors before launch

Vesting Schedule: 100% at TGE


# How to Vest

If you are an investor before FINA ICO, or participated in our Airdrop campaign, you should have FINA token locked up in a smart contract. To check your vesting status and claim vested FINA token, you can visit <https://app.fina.cash> in your Fina Wallet

**Vist Fina dApp on Fina Wallet**

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

**Create a Viewing Key for FINA token**

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

**Check Your Vesting Status**

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

You can also click "Claim" to start claiming your vested FINA token


# How to Buy

Buy your first $FINA token from Shade protocol, a decentralized exchange

1. [**Set Up a Wallet or Import your wallet**](https://docs.fina.cash/fina-wallet/features/create-import-wallet)

If you don't have one already, install a cryptocurrency wallet like [Fina Mobile Wallet](https://fina.cash/) or Keplr and create an account. Make sure to secure your private keys and back up your wallet.

2. **Access Shade Protocol on PC or Fina Mobile Wallet dApp browser**

Visit the Shade Protocol website at[ ](https://app.shadeprotocol.io/swap/pools)<https://app.shadeprotocol.io/swap?input=SCRT&output=FINA>

You can also access Shade Protocol via Fina mobile wallet's **dApps list**

<div><figure><img src="/files/0w0vJCY9Tim5Pr9Um1H5" alt=""><figcaption></figcaption></figure> <figure><img src="/files/vcJD6FgXeTn8wpb1IPEH" alt=""><figcaption></figcaption></figure></div>

3. **Connect Your Wallet**

Click on the "Connect Wallet" button on the Shadeswap page

<figure><img src="https://lh7-us.googleusercontent.com/CAel3hZUNrtRNDIKmvJoE7QWAmtdsfjKv1f2GsLE5_GW2gQRfztrwiAs5V-gc_Hm6cu9MPG15mtm0PMgnEE2e3oTkRpcw7bDVWWZa9RGgnusbVY5We9dyEvlSIZb7_RxwB_VlBMLcAWkgyZgzRbZp_E" alt=""><figcaption></figcaption></figure>

A Keplr / Fina pop-up will appear, requesting permission to connect your wallet. Confirm the connection.

4. **Select a Swap**

On the Shadeswap page, you'll see a list of available tokens for swap. Select the pair of your choice, the `From` currency is the token you are going to pay, and `To` currency is the token you are going to receive.

5. **Enter the Amount**

Specify the amount of  $SHD you want to swap for FINA tokens. You can choose to swap $SCRT or another supported token for $FINA.

Shade Protocol will display the exchange rate, estimated slippage, and fees. Review this information to ensure it's acceptable to you.

Click the "Swap" button to confirm the transaction.

<figure><img src="https://lh7-us.googleusercontent.com/uOn3M-NZKyfivd0-rRzfNqaiQ4gan2jJmppYom7eRfAli3dnb1_NaSXG4X_zd86wsnC9Ch5dd_IdYD_2nTp-WuVpdFFRv64NxBdcX81mVNCnhsn5Oz1CUm2O-4J4NbM0fGnH8T6TdmPX658x3W1YKr8" alt=""><figcaption></figcaption></figure>

6. **Confirm in Keplr or Fina**

A pop-up will appear, showing the transaction details and fees.&#x20;

Review them and confirm the transaction.

<figure><img src="https://lh7-us.googleusercontent.com/TOiyEA-YkFwaI888OPJdb-6C9jPGcg4huG7RS9iwU45GXExX3tCA1O8tihBza1lO8TuvxtJ66ZWaBbSNVz-xwmEAoDg0j6A1UCi7_2jfuWj4F-qC9D1jaaTPKddrkqb7jvfLdCCm8hN5pNuH23k_xHc" alt=""><figcaption></figcaption></figure>

7. **Wait for Confirmation**

The transaction will be broadcasted to the Secret Network. You'll need to wait for the transaction to be confirmed. This may take a few minutes, and you can track the progress in your wallet.

Once the transaction is confirmed, the FINA tokens will appear in your wallet.

<figure><img src="https://lh7-us.googleusercontent.com/XCpJBxKa_ZFP7qZdpHjyNTXUkuVbO54bm_rGgUTqThed4pLH7p3qW8X3y9wwIjKjtKWuQ5gIY7kY3KF7uDgZgg63CtVGbn6WPobLFjPfongzZZ4rT7cvCKFCa5CsXJVvwtfbKBHQRgx5JNoZmLsTIdI" alt=""><figcaption></figcaption></figure>


