# What is Feature?

Quick overview of Feature & how to start using it.

Our vision is to encourage developers to contribute to projects on GitHub, by being rewarded with cryptocurrencies.

You can still use Feature to improve your software development productivity.

{% hint style="info" %}
It is currently deployed on [Gnosis Chain](https://www.xdaichain.com), [Polygon](https://polygon.technology) and [Arbitrum](https://arbitrum.io).
{% endhint %}

You can benefit from Feature services directly on Github. A Github bot parses your issues to create truly secure payments.

## Getting Started

1\) [**Click here**](https://evm.app.feature.sh) to start the **Feature App installation**.

2\) Once on the Feature installation page, click on **Installation**. You will be redirected to GitHub.

![Installation of the Feature GitHub App](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgxlw1oVPluW6g9cLUE71%2Finstallation.png?alt=media\&token=2f04f5e1-93c1-49d2-a450-616c0b9ec39f)

3\) **Select** the **account** or **organization** where you want to install the bot.

![GitHub account/organization selection](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-4fb1e4b483af1200c773b1b3075ffd405fc268d9%2Finstallation_select_account.png?alt=media)

4\) **Select** the **repositories** in which the bot will be used, then click on **Install**.

![Repository selection](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-0e189e12a70fede3db42b572a08959f5891a80df%2Fgithub_installation.png?alt=media)

{% hint style="info" %}
The Feature bot will **only** have the permission to:

* **Read** access to metadata;
* **Read** and **write** access to issues and pull requests.

\
Feature never has access to your code but only to the names of directories and contributors (metadata) and the thread of issues and pull requests.
{% endhint %}

4\) Then, **sign in** or **start your 14-day free trial**, in order to be able to use Feature.

![Sign in or start your free trial](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-7209a7d54b86fb547cabf93210d9784d2a571131%2Ffeature_signin.png?alt=media)

4\) After signing in, **you're done**! You can see every deal that have been created with Feature bot.

![Feature's deals page](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-b096a5651e594dfef5fc8849d5c4c13a3a1112fa%2Ffeature_deals.png?alt=media)

Congratulations on completing the installation 🎉\
\
Now it's time to make your first deal to start increasing your product development productivity 🤓


# Create a Deal using GitHub Labels

Use Feature's dashboard and GitHub labels to easily create new deals to provide incentives to your developers

By labelling any issue with a special label, you can automatically create a new deal for your developers.

1\) [Access to the label editor](https://dashboard.feature.sh/settings/labels) for your organization. Once you are on the right page, you can start creating, editing or deleting any label available to your installation.

![Feature's Label Editor](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-6a5a09eabf8cc7c2b47f326ce7eec100738c4d46%2Fcapture-dashboard-label-contributor.png?alt=media)

Note that any operation performed on labels will affect **all the repositories managed by features**.

2\) Once your label is created, you can simply label any issue with it and our Bot will take care of it.

![Manually create a deal with a label](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-5462d153480cf47b5b224aa9a8dc36e1d27f6c52%2Fcapture-github-label-without-auto-deal.png?alt=media)

You can then put the cryptocurrency amount in escrow and proceed normally.

**Protip**: Feature allows you to automate this process so that you won't have to manually deposit anything in escrow, using organization wallets.

Learn more about the [auto dealing](https://docs.feature.sh/guides/auto-dealing) feature.


# Auto dealing

Create crypto-incentives in one click

To make creating deals even easier, FEATURE allows organizations to manage special wallets that can be used to automatically sign the blockchain transaction that is required to create a new deal.

Using auto dealing, you will simply have to label an issue with a *FEATURE label* and the deal will be created automatically without further action ✨.

{% hint style="warning" %}
Auto dealing only works with issue labelling as of now.
{% endhint %}

1\) Enable auto dealing in your [organization settings](https://dashboard.feature.sh/settings/wallets) as shown below:

![Enable auto dealing](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-2bf54a9f6cb46db472e5eb7f68dcfd6028ae4448%2Fcapture-dashboard-auto-dealing-enable.png?alt=media)

And don't forget to save the configuration with **Save.**

2\) Manage your organization wallets and set the one you want to use for auto dealing by selecting it as the default.

![Organization wallets](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-ad529035dab87363a481e6a3731affad077990b0%2Fselect_organization_wallet.png?alt=media)

3\) Label an issue with a Feature label and let the magic happen 🪄. The transaction can take up to a few seconds to be processed, but fortunately the Bot will keep you updated about the progress!

![Automatic Success Deal](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-d8cd866e70af8531567e5b45cb9061e58722b986%2Fcapture-github-label-with-autodeal.png?alt=media)

{% hint style="warning" %}
The selected wallet should have the necessary funds to create the deal, otherwise an error message will be thrown by the bot.
{% endhint %}

![Fail Deal](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-c253c8228d42afe4e1d353b41b90b2127df21f8e%2Fcapture-github-autodeal-fail.png?alt=media)


# Double escrow

Different rewards, for different contributors!

The application allows setting up different rewards in function of the claimants if they are part of the core team or if they are external contributors.

This is particularly useful to avoid a kind of *double spend* if core team members already receive a fixed salary while using FEATURE to provide additional incentives and track the velocity of core team members.

{% hint style="warning" %}
Double escrow works only with auto dealing enabled.
{% endhint %}

1\) Enable auto dealing and double escrow in your [organization settings](https://dashboard.feature.sh/settings/wallets) as shown below:

<figure><img src="https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2F8jwZeu97uEzDaEdtFIRe%2FCapture%20d%E2%80%99e%CC%81cran%202023-04-11%20a%CC%80%2012.06.32.png?alt=media&amp;token=30fd03d7-13bc-4a14-9499-4b1c0c64beb8" alt=""><figcaption></figcaption></figure>

2\) Manage your organization wallets and set the one you want to use for auto dealing by selecting it as the default.

![](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-ad529035dab87363a481e6a3731affad077990b0%2Fselect_organization_wallet.png?alt=media)

3\) Label an issue with a Feature label and let the magic happen 🪄. The transaction can take up to a few minutes to be processed, but fortunately the Bot will keep you updated about the progress!

The *Claim* link contains the information of the reward that the contributor or core team can claim.

<figure><img src="https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-c3013dd5ec4513de0368769e77b221e8ef383e8c%2Fcapture-github-double-escrow-label.png?alt=media" alt=""><figcaption><p>Double escrow with the FEATURE bot</p></figcaption></figure>

{% hint style="warning" %}
The selected wallet should have the necessary funds to create the deal, otherwise an error message will be thrown by the bot.
{% endhint %}

<figure><img src="https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-2b7b4d365775f736046d50b7531499e1708ee966%2Fcapture-github-double-escrow-fail.png?alt=media" alt=""><figcaption><p>FEATURE bot error if there is not enough fund in the wallet</p></figcaption></figure>

Use the double escrow ✌️ to create even more personalized incentives!


# Claim your Reward

Say you contributed.

If you made a Pull Request relative to the deal, you are ready to claim your reward:

1\) **Comment** the **number** of your **Pull Request** with the keyword **`$PR, $pr, $claim`** or **`$fixed`** .

<figure><img src="https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2FfeFhZEh1tAeBzJQjFqK8%2FCapture%20d%E2%80%99%C3%A9cran%202022-09-06%20141044.png?alt=media&amp;token=e811865e-f8e6-446d-bcbd-a0746bc200e3" alt=""><figcaption><p>Linking a PR to claim</p></figcaption></figure>

2\) **Click** on the link to be redirected to the **claiming page**.

{% hint style="info" %}
If you are in [autodealing](https://docs.feature.sh/guides/auto-dealing) just click on `Claim` and you will be redirected to the claiming page.
{% endhint %}

3\) **Connect your wallet** and click on **Claim**.

![Claim your reward](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2F691JyosCiikA7KRSock6%2Fweb3_claim.png?alt=media\&token=326ec747-c874-4268-8e1f-e7546b71e8a0)

4\) Once redirected on GitHub, the Feature bot will tell you that **you claimed successfully**!

<figure><img src="https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2FA56TzLTpl0X6M8Gwy8lo%2FCapture%20d%E2%80%99%C3%A9cran%202022-09-06%20141101.png?alt=media&amp;token=ba6c41e9-e3c4-4434-b1f1-f0d79df7c006" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If nobody has challenged your claim within the challenge period, you will be able to [execute the payment](https://docs.feature.sh/guides/execute-a-payment) to receive your reward.
{% endhint %}


# Challenge a Claim

Challenge the developer if the specifications are not met.

During the review period, you can challenge the claimer if the specifications are not met.

1\) If you think that the last claimer's PR doesn't meet the deal creator's specifications, click on ***Challenge the Claim***.

![Challenge the claimant](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-bbd3fe4079767dcbf9d6249bfca29c0e12a1d914%2Fsuccessful_claim.png?alt=media)

2\) Once redirected, connect your wallet and click on ***Challenge Claim***.

![](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2FmoZIhCbkJlcdLwWf3dCO%2Fweb3_challenge.png?alt=media\&token=39a3eda4-1ec4-4fa6-a352-6f719724e98b)

3\) After that, **wait** for the jurors to make their ruling.

![A dispute has been created for this challenge](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2FmpOioX9STazVDAr8yMOy%2Fdispute_created.png?alt=media\&token=62bdbcce-d7a2-41f9-8707-47789ae687e8)

4\) Once the dispute is resolved, the bot will tell you who wins the dispute.

a) If the **claimer wins**, he will **earn the dispute funds** and will be able to [**execute the payment**](https://docs.feature.sh/guides/execute-a-payment).

![Claimer wins the dispute](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2FjkYPAiVsNlqmPd02Mjyj%2Fclaimer_wins.png?alt=media\&token=55833af7-22fd-432f-b697-1cc127c5bd05)

b) If the **challenger wins**, he will **earn the dispute funds** and the **previous claim will be canceled**. Then, anybody can [**claim the reward**](https://docs.feature.sh/guides/claim-your-reward) **again**.

![Challenger wins the dispute](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2F0qjuUbJPC1cYW64i5naz%2Fchallenger_wins.png?alt=media\&token=6afe25b2-a3b5-4d91-a1b8-41f7c7b10761)

c) If the **jurors couldn't choose a winner**, the **deposit fund is refunded to the challenger**, and the **claimer will be able to** [**execute the payment**](https://docs.feature.sh/guides/execute-a-payment) after the challenger period has expired.

![Nobody wins the dispute](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2F77FhEd0QKrezWpKAZ9UC%2Fnobody_wins.png?alt=media\&token=06aacfc0-7a40-460c-8e5c-cb093d1d0402)


# Execute a Payment

Send or get the reward for the good work!

Once the **challenge period is over**, you will be prompted to **get your reward by the bot**.

1\) **Click on \_"Execute the Transaction"**\_ to be redirected to the Deal execution page.

![You can execute the deal](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-fa01e20bec67d64a11dc42a1ab898c8b0814ca9e%2Fchallenge_time_expired.png?alt=media)

2\) **Connect your wallet** and **click on Pay** to receive your reward.

![Last step before finalizing the payment!](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2FHlb6wujjVpIBhvBb7SPd%2Fweb3_pay.png?alt=media\&token=d9c7e9d5-1eeb-4d4f-a90a-58f2cfd79811)

3\) Hurray! **The developer will receive your tokens/coins shortly**!

![Reward transfered to your wallet!](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-50f3d36b545d9661db1068e4fa5bd45e39836057%2Fjob_done.png?alt=media)


# Get refunded

Receive your money back if nobody has claimed your Deal on time.

Nobody has claimed on time? As a Deal creator, you can be refunded your money put in Escrow.

1\) If **time to claim a reward has expired**, Feature bot will automatically comment the related issue.

![Claim time expired](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-0621b74551259f20cbcab811700ef2d72bb26839%2Fclaim_time_expired.png?alt=media)

2\) Click on ***Refund the Payment***, then **connect your wallet**.

{% hint style="info" %}
Anyone can execute the refund, but **only the Deal creator will receive the money in Escrow**. The one who executes it will only pay the transaction fees.
{% endhint %}

![Last step before getting refunded](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-59c15eef5ea1e7d88c3f2808b27bdcfc03630226%2Fweb3_refund.png?alt=media)

3\) Once the transaction is mined, the **refund is complete**! Check your wallet to see your money back.


# Create a deal using GitHub comments

Attract developers with a reward

1\) Open an **issue** on Github.

2\) **Entitle** it or add a **comment** with this format: *$\<issue\_type> \<crypto\_amount>\<currency> (\<network>)*.

{% hint style="info" %}
The keywords to launch a deal are these: `$f, $bounty, $grant, $feature, $feat, $fix, $audit, $CS, $doc, $documentation, $refacto, $refactoring, $code, $chore, $test, $docs, $ci, $perf, $build and $style`.\
\
And the keyword networks are: `(polygon)`, `(xdai)`, `(arbitrum_one)`, `(celo)`, `(bsc)` and `(bitfinity_testnet)`.
{% endhint %}

![Comment an issue with keywords to create a Deal](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2FPd9XIYQ4qwp6gDWipORH%2Fcreate_deal_command.png?alt=media\&token=bfda4dfe-9f13-4f0b-a800-9f071e0d1692)

3\) The Feature bot will ask you to **put the cryptocurrency amount in Escrow**. **Click on the link** to be redirected to the related page.

{% hint style="info" %}
Feature works with coin as well as tokens (ERC20).
{% endhint %}

4\) **Connect your wallet**. If enough funds, you will be able to approve the transfer.

5\) **Click on Create the Deal**. Once transaction done, you will be automatically redirected to GitHub.

![Create your Deal](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2FNqlJvphCiiwXNZQvYvFO%2Fweb3_deal.png?alt=media\&token=bad05fb7-4668-4cf6-b98f-574f24401f09)

6\) The bot will comment that **you've created the Deal successfully**!

![Deal created!](https://2530423465-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoEAyL3q8i4JdG2zIaw5z%2Fuploads%2Fgit-blob-db2385dfff1792ec70649419492458cc0b698861%2Fsettlement_done.png?alt=media)


