# Indirect Verification Methods

## <mark style="color:$primary;">Self-Transaction Method.</mark>

**Self-transaction** is just a regular transaction when you send crypto like you always do, but with a slight specificity: instead of someone else's wallet, you send crypto to the same wallet from which you send it (to itself). It is the same as you, for example, want to send money from your credit card to the same credit card.

In a fiat world, it sounds like nonsense, but in crypto, it is possible and even reasonable, because we can track the blockchain, find this transaction, and thus, ensure that you really control the wallet. At the same time, you do not need to connect your wallet directly to the <mark style="color:purple;">**Bocto**</mark> website and sign any transactions on it. Sadly, this method only works with <mark style="color:$warning;">**Ethereum**</mark>, <mark style="color:$warning;">**Polygon**</mark>, or <mark style="color:$warning;">**Solana**</mark>.

In the example below, we will use **MetaMask**; however, you can use any other EVM-compatible wallet extension/app (for <mark style="color:$warning;">**EVM**</mark> blockchains) or **Phantom**, or any other Solana-compatible wallets for the <mark style="color:$warning;">**Solana**</mark> blockchain.

### <mark style="color:purple;">Initiating Verification on the Bocto's Side.</mark>

Before you start, ensure that you are logged in to your **MetaMask** (or other EVM-compatible wallet extension/app) and that the right wallet address is selected. Then, click the `Add Wallet` button.

<figure><img src="/files/12KWDflI4Ewm6bjxuff2" alt=""><figcaption></figcaption></figure>

The <mark style="color:$success;">Add Wallet</mark> pop-up window will appear. In the <mark style="color:$success;">**Chain**</mark> dropdown, choose the blockchain where the NFTs, the ownership of which you want to verify, are being hosted. In our case, it will be <mark style="color:$warning;">**Polygon**</mark>:

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

In the <mark style="color:$success;">**Verification Type**</mark>, choose <mark style="color:$success;">**Self Transaction**</mark>:

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

At the next step, the <mark style="color:$success;">**Wallet Address**</mark> field will appear. Paste your wallet into this field, wait for a few seconds until <mark style="color:purple;">**Bocto**</mark> checks if the address format is valid, and when the `Add Wallet` button becomes active, click on it:

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

The <mark style="color:$info;">Add Wallet</mark> pop-up window will be closed automatically, and the <mark style="color:$info;">Wallet Verification in Process section</mark> with the details of the operation will appear. Double-check if the blockchain and address were set correctly.

If you've noticed that you had been mistaken when filling out the form, cancel the operation by clicking on the `Decline Binding` button.

If everything is correct, copy the number from the special field by clicking on the **Copy** icon:

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

### <mark style="color:purple;">Providing the Self-Transaction via Crypto Wallet.</mark>

Now, open your wallet (in our case, it will be **MetaMask**) and ensure that the desired wallet is active. Then, click on the appropriate coin (as we are connecting a wallet on <mark style="color:$warning;">**Polygon**</mark> in this example, it will be, of course, **POL**):

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

Now click on the **Send** button:

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

On the next step, do not fill the <mark style="color:$success;">**To**</mark> address field, but scroll down and find the same address as above in the list instead:

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

Now check again that the addresses in the <mark style="color:$primary;">**From**</mark> and <mark style="color:$success;">**To**</mark> fields are the same, paste the number you copied a few steps ago, and click **Continue**.

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

Confirm the operation:

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

Now wait until the transaction changes status from <mark style="color:yellow;">Pending</mark> to <mark style="color:green;">Confirmed</mark>:

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

### <mark style="color:purple;">Finalizing Verification on the Bocto's Side.</mark>

When it's done, go back to the Wallets tab on your <mark style="color:purple;">**Bocto**</mark> profile page, and click the `Initiate Check` button:

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

If your self-transaction was correct and didn't mess anything up, your <mark style="color:$warning;">**Polygon**</mark> wallet will appear in the list:

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

{% hint style="success" %}
Now you are good to go to the server where you want to receive the holder roles and initiate the [user verification process](/user-profile/user-verification-process.md).
{% endhint %}

## <mark style="color:$primary;">Marketplace-Bio Method.</mark>

The essence of this verification method is that you add a special signature to your user bio on the desired marketplace, and, as long as this is only possible if you are authorized on that marketplace with your wallet, we can ensure that you control this wallet.

In the example below, we will connect the <mark style="color:$warning;">**Ethereum**</mark> wallet and use the account on <mark style="color:$warning;">**OpenSea**</mark> for this purpose because it is currently the only marketplace whose API provides an endpoint with the user's bio. However, in the future, we are going to add some new marketplaces.

### <mark style="color:purple;">Initiating Verification on the Bocto's Side.</mark>

Before you start, ensure that you are logged in to your **MetaMask** (or other EVM-compatible wallet extension/app) and that the right wallet address is selected. Then, click the `Add Wallet` button.

<figure><img src="/files/12KWDflI4Ewm6bjxuff2" alt=""><figcaption></figcaption></figure>

The <mark style="color:$info;">Add Wallet</mark> pop-up window will appear. In the <mark style="color:$success;">**Chain**</mark> dropdown, choose the blockchain where the NFTs, the ownership of which you want to verify, are being hosted. In our case, it will be <mark style="color:$warning;">**Ethereum**</mark>:

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

In the <mark style="color:$success;">**Verification Type**</mark>, choose <mark style="color:$success;">**Marketplace**</mark>:

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

At the next step, the <mark style="color:$success;">**Marketplace**</mark> and the <mark style="color:$success;">**Wallet Address**</mark> fields will appear. In the <mark style="color:$success;">**Marketplace**</mark> dropdown, choose <mark style="color:$warning;">**OpenSea**</mark>:

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

In the <mark style="color:$success;">**Wallet Address**</mark> field, paste your wallet, wait for a few seconds until <mark style="color:purple;">**Bocto**</mark> checks if the address format is valid, and when the `Add Wallet` button becomes active, click on it:

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

The <mark style="color:$info;">Add Wallet</mark> pop-up window will be closed automatically, and the <mark style="color:$info;">Wallet Verification in Process</mark> section with the details of the operation will appear.

If, for some reason, you've changed your mind, cancel the operation by clicking on the `Decline Binding` button.

If everything is OK, copy the text from the special field by clicking on the **Copy** icon:

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

### <mark style="color:purple;">Adding the String to the OpenSea Bio.</mark>

Now, being logged in to the <mark style="color:$warning;">**OpenSea**</mark> account via the wallet with the NFTs whose holder you want to verify, click on the user avatar:

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

You will be redirected to your <mark style="color:$warning;">**OpenSea**</mark> profile. Here, click on the **Pencil** icon to start editing your personal information:

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

In the <mark style="color:$success;">**Bio**</mark> field, paste the text you copied a few steps ago, and click **Save**.

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

### <mark style="color:purple;">Finalizing Verification on the Bocto's Side.</mark>

When it's done, go back to the <mark style="color:$info;">Wallets</mark> tab on your <mark style="color:purple;">**Bocto**</mark> profile page, and click the `Initiate Check` button:

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

If your self-transaction was correct and didn't mess anything up, your <mark style="color:$warning;">**Ethereum**</mark> wallet will appear in the list:

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

{% hint style="success" %}
Now you are good to go to the server where you want to receive the holder roles and initiate the [user verification process](/user-profile/user-verification-process.md).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.bocto.octopeeps.com/user-profile/adding-removing-wallets/indirect-verification-methods.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
