# Stake, Boost and Delegate

This guide provides a way to: stake your vet, boost the maturity period, and delegate to a validator in a single transaction without using VeWorld mobile app or the StarGate dApp.

## Guide

{% stepper %}
{% step %}

### Install VeWorld extension in the browser

The extension is a tool that allows you to manage a cryptocurrency wallet and use it to interact with dApps.&#x20;

Install it from [here](https://chromewebstore.google.com/detail/veworld/ffondjhiilhjpmfakjbejdgbemolaaho).
{% endstep %}

{% step %}

### Create a wallet and deposit VET and VTHO

After installing the extension, create a wallet, backup the seed phrase and deposit enough VET to cover the stake, and enough VTHO to cover the gas fees and the boost price.
{% endstep %}

{% step %}

### Open the Inspector website

[Inspector](https://inspector.vecha.in/) is a website that allows you to interact with smart contracts. You can both visit the online version or fork the [public repo](https://github.com/vechain/inspector-app) and run it locally.
{% endstep %}

{% step %}

### Add the contracts you will interact with

Once you open the Inspector website you will find an empty page asking you to add contracts you want to interact with. To reach our goal we will need to add 2 contracts: VTHO and StarGate.

**Add VTHO**

To do it, just click the "New +" button, then in the "Name" input field write "VTHO", you will see an autocomplete dropdown suggesting you to use the pre-uploaded contract. Click on it and it will prefill the address and ABI fields automatically. Then click "Add" again to save it.

**Add StarGate**

Now do the same, but to add the StarGate contract. Click "New +", write "Stargate" and you will see 2 suggestions: "StarGate NFT" and "StarGate". Click on "StarGate", then click "Add" again.

{% hint style="warning" %}
Check that the addresses are the official ones you see in the [Contracts](/for-developers/contracts.md) page.
{% endhint %}
{% endstep %}

{% step %}

### Find the NFT level you want to stake for

Go to the [NFT Tiers](/overview/nft-tiers.md) section and find the id of the level you want to stake for, eg: Thunder has level ID 2.
{% endstep %}

{% step %}

### Find the validator address you want to delegate to

You can find this information by searching the validator on [StarGate](https://app.stargate.vechain.org) app. Once you find the validator you must copy its address, eg: `0x244306eea413a1b94d156c93dc679b2b1e18bebf`&#x20;
{% endstep %}

{% step %}

### Approve the `StarGateNFT` contract to move VTHO from your wallet

{% hint style="info" %}
When boosting, the `StarGateNFT` contract will transfer VTHO from your wallet and burn those tokens. An approval for the contract to do so it's mandatory in order to use the boost feature.
{% endhint %}

In Inspector open the `VTHO` contract, go to the "Write" section, and find the `approve` function. Fill the form with the correct data:

* caller: the address of your wallet, the one you will use to stake
* \_spender: the `StarGateNFT` contract (address can be found [here](/for-developers/contracts.md) for mainnet, [here](/for-developers/testnet.md) for testnet, or just copy it from the added contract on the Inspector website)
* \_value: the maximum amount the contract will be able to transfer, in wei; set this to the boost price (that you can find in the [NFT Tiers](/overview/nft-tiers.md) section, eg: for Thunder NFT it is 206.100,00 VTHO, which is 206100000000000000000000 converted to WEI)

Click "Excute": this will open your wallet and ask you to sign the transaction. Once done wait that the transaction is successful.
{% endstep %}

{% step %}

### Call stakeAndDelegate in the `StarGate` contract

Now it's time to stake, boost and delegate. In Inspector click the StarGate contract, then go to the "Write" section and search for the `stakeAndDelegate` function.

Fill the form with the right information, based on the NFT level you want to stake for. Eg, for an NFT of level Thunder we will fill with the following information:

* Caller: the address of the wallet you will use to stake
* \_levelId: the level id of the NFT, in our example it is "2"
* \_validatorId: the address of the validator we want to delegate to, in our example we picked a random one `0x244306eea413a1b94d156c93dc679b2b1e18bebf`
* value: add here how much VET do you want to send when doing this transaction, it must be EXACTLY the price needed for the stake; in our example is "5000000" VET.

Click "Execute", confirm with the VeWorld extension, and wait for the transaction to be successful.
{% endstep %}

{% step %}

### That's it!

You staked your VET, got an NFT representing your staking position, and delegated to a validator. Once per validator cycle you will be able to claim all the generated rewards.

{% hint style="warning" %}
You delegation may still be in a pending state, depending on the current status and cycle of the validator. The delegation will become ative once the validator will enter in a new cycle.
{% endhint %}
{% endstep %}
{% endstepper %}

{% hint style="info" %}
There are many other functions you can call in the StarGate or StarGateNFT contract from inspector that will allow you to see details about your maturity period, NFT, delegation status and rewards. You can find the full list of APIs [here](/for-developers/api.md).
{% endhint %}

## Tutorials

### Install VeWorld extension

{% embed url="<https://stargate-images.s3.eu-north-1.amazonaws.com/Assets+used+in+Docs/install+extension.mp4>" %}

### Setup Inspector

{% embed url="<https://stargate-images.s3.eu-north-1.amazonaws.com/Assets+used+in+Docs/setup-inspector.mp4>" %}

### Approve VTHO

{% embed url="<https://stargate-images.s3.eu-north-1.amazonaws.com/Assets+used+in+Docs/approve-vtho.mp4>" %}

### Stake, Boost and Delegate

{% embed url="<https://stargate-images.s3.eu-north-1.amazonaws.com/Assets+used+in+Docs/stakeAndDelegate.mp4>" %}


---

# 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://docs.stargate.vechain.org/advanced/stake-boost-and-delegate.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.
