> For the complete documentation index, see [llms.txt](https://docs.dappkit.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dappkit.dev/start-building/how-to-guides/usage.md).

# Create other Project

All objects are created in a similar fashion, and we will use `StakingContract` as an example

\
Here you can create a Staking Contract with a given ERC20 Contract Address, login with metamask & connect with solidity methods available

```javascript
import { Web3Connection, StakingContract } from '@taikai/dappkit';

const web3Connection = new Web3Connection({ 
    web3Host: 'WEB3_LINK'
});

await web3Connection.start();

const deployer = new StakingContract(web3Connection);
await deployer.loadAbi();

await web3Connection.connect();

const tx = await deployer.deployJsonAbi('0xCONTRACT_ADDRESS');

// Creating new Instance of StakingContract to be able to access the tokens
const stakingContract = new StakingContract(web3Connection, tx.contractAddress);
await stakingContract.start();
​
console.log(await stakingContract.availableTokens());

```

{% hint style="info" %}
What if the contract was deployed already?&#x20;
{% endhint %}

If the Contract is already deployed the use case is very similar&#x20;

```javascript
import { Web3Connection, StakingContract } from '@taikai/dappkit';

const web3Connection = new Web3Connection({
    web3Host: 'WEB3_LINK'
});

await web3Connection.start();

const stakingContrat = new StakingContract(web3Connection, '0xCONTRACT_ADDRESS');
await stakingContrat.start();

await web3Connection.connect();

console.log(await stakingContrat.availableTokens());
```
