# EOSIO Side Setup

### Steps:

[Install Zeus](/liquidapps-documentation/working-with-zeus-sdk/overview/install-zeus-and-unboxing.md) if not installed, zeus is used to unbox or install all the necessary dependencies to compile and deploy the necessary contracts.

{% hint style="warning" %}
Ensure you're using node version 16, IPFS can be picky with other versions
{% endhint %}

[**Unbox**](/liquidapps-documentation/working-with-zeus-sdk/overview/install-zeus-and-unboxing.md) **`atomiccolpeg` box**

```bash
mkdir atomiccolpeg
cd atomiccolpeg
zeus box create
zeus unbox atomiccolpeg
zeus compile
```

**`atomictokenpeg1155.cpp`**  must be updated before we keep rollin&#x67;**.**  We are not using the official atomicassets contract because it's not setup and the creating team does not have the keys to it, but don't you worry, I've got ya covered, this one is setup and ready to roll. Find this contract in `./zeus_boxes/contracts/eos/atomictokenpeg1155/atomictokenpeg1155.cpp` line 24.

```bash
const name NFT_ACCOUNT = "bridgeassets"_n;
```

**Compile contracts**

```bash
zeus compile
```

**Create 2 Kylin and 1 Rinkeby Testnet accounts using these guides:**

* Kylin Testnet: [link](https://app.gitbook.com/@liquidapps/s/liquidapps-documentation/~/drafts/-Mb1Zoyox7XB-SUm-Ssl/eosio-guides/creating-cryptokylin-account)
* Rinkeby Testnet: [link](/liquidapps-documentation/eosio-guides/testnet-creation-guides/create-rinkeby-testnet-account.md)

**Kylin Accounts:**

* Kylin bridge contract account (`atomictokenpeg1155.cpp`)
* Kylin test Account **no contract**
* Token contract is `bridgeassets` which I've already setup, yo welcome

**Rinkeby Testnet Account (**&#x61;ccount will deploy 2 contracts and be the teste&#x72;**)**

* ERC1155 Contract (`ERC1155Tradable.sol`)&#x20;
* Rinkeby bridge contract Account (`atomictokenpeg1155.sol`)
* Rinkeby test Account **no contract**

```bash
export KYLIN_BRIDGE_ACCOUNT=elevenbridge
export KYLIN_TEST_ACCOUNT=natdeveloper
export KYLIN_ENDPOINT=https://kylin.eosn.io
```

**Import our keys into zeus to deploy contracts to Kylin, or can use cleos as well**

{% tabs %}
{% tab title="Zeus" %}

```bash
zeus key import $KYLIN_BRIDGE_ACCOUNT --network kylin --active-private-key 5JB... --owner-private-key 5JB...
```

{% endtab %}

{% tab title="cleos" %}

```bash
# import owner private key
cleos wallet import --private-key 5JB...
# import active private key
cleos wallet import --private-key 5JB...
```

{% endtab %}
{% endtabs %}

**Create contract deployment files to migrate contracts to Kylin, located in** `./zeus_boxes/contract-migrations-extensions/models/contract-deployments/`

```bash
zeus create contract-deployment atomictokenpeg1155 $KYLIN_BRIDGE_ACCOUNT kylin
```

**Migrate contracts to Kylin**

{% tabs %}
{% tab title="Zeus Migrate" %}

```bash
zeus migrate atomictokenpeg1155 --network=kylin --creator $KYLIN_BRIDGE_ACCOUNT --no-reset --no-compile-all --creator-key=""
```

{% endtab %}

{% tab title="cleos set contract" %}

```bash
# if migration fails
cd contracts/eos
cleos -u $KYLIN_ENDPOINT set contract $KYLIN_BRIDGE_ACCOUNT atomictokenpeg1155
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
If you use cleos to set the contract, be sure to set the `eosio.code` permission level, see [here](/liquidapps-documentation/eosio-guides/testnet-creation-guides/creating-cryptokylin-account.md)
{% endhint %}

**Stake for services**

Now that we've prepared that part let's move onto staking DAPP for services. First stop is the faucet for some DAPP tokens [here](https://kylin-dapp-faucet.liquidapps.io/). Use the account that has the `atomictokenpeg1155` contract set to it.

**Stake to required services vRAM, LiquidHarmony Oracles, LiquidScheduler, LiquidLink**

Using the DSP Portal we can see these packages, stake 10 DAPP to each (**Amount to Stake**):

Below we'll select each package then stake for it.

{% tabs %}
{% tab title="vRAM" %}

```bash
export PROVIDER=uuddlrlrbass
export PACKAGE=ipfs2
export SERVICE=ipfsservice1
export QUANTITY="10.0000 DAPP"
cleos -u $KYLIN_ENDPOINT push action dappservices selectpkg "[\"$KYLIN_BRIDGE_ACCOUNT\",\"$PROVIDER\",\"$SERVICE\",\"$PACKAGE\"]" -p $KYLIN_BRIDGE_ACCOUNT@active
cleos -u $KYLIN_ENDPOINT push action dappservices stake "[\"$KYLIN_BRIDGE_ACCOUNT\",\"$PROVIDER\",\"$SERVICE\",\"$QUANTITY\"]" -p $KYLIN_BRIDGE_ACCOUNT@active
```

{% endtab %}

{% tab title="LiquidHarmony" %}

```bash
export PROVIDER=uuddlrlrbass
export PACKAGE=oracleservi2
export SERVICE=oracleservic
export QUANTITY="10.0000 DAPP"
cleos -u $KYLIN_ENDPOINT push action dappservices selectpkg "[\"$KYLIN_BRIDGE_ACCOUNT\",\"$PROVIDER\",\"$SERVICE\",\"$PACKAGE\"]" -p $KYLIN_BRIDGE_ACCOUNT@active
cleos -u $KYLIN_ENDPOINT push action dappservices stake "[\"$KYLIN_BRIDGE_ACCOUNT\",\"$PROVIDER\",\"$SERVICE\",\"$QUANTITY\"]" -p $KYLIN_BRIDGE_ACCOUNT@active
```

{% endtab %}

{% tab title="LiquidScheduler" %}

```bash
export PROVIDER=uuddlrlrbass
export PACKAGE=cronservice2
export SERVICE=cronservices
export QUANTITY="10.0000 DAPP"
cleos -u $KYLIN_ENDPOINT push action dappservices selectpkg "[\"$KYLIN_BRIDGE_ACCOUNT\",\"$PROVIDER\",\"$SERVICE\",\"$PACKAGE\"]" -p $KYLIN_BRIDGE_ACCOUNT@active
cleos -u $KYLIN_ENDPOINT push action dappservices stake "[\"$KYLIN_BRIDGE_ACCOUNT\",\"$PROVIDER\",\"$SERVICE\",\"$QUANTITY\"]" -p $KYLIN_BRIDGE_ACCOUNT@active
```

{% endtab %}

{% tab title="LiquidLink" %}

```bash
export PROVIDER=uuddlrlrbass
export PACKAGE=sign
export SERVICE=signfndspsvc
export QUANTITY="10.0000 DAPP"
cleos -u $KYLIN_ENDPOINT push action dappservices selectpkg "[\"$KYLIN_BRIDGE_ACCOUNT\",\"$PROVIDER\",\"$SERVICE\",\"$PACKAGE\"]" -p $KYLIN_BRIDGE_ACCOUNT@active
cleos -u $KYLIN_ENDPOINT push action dappservices stake "[\"$KYLIN_BRIDGE_ACCOUNT\",\"$PROVIDER\",\"$SERVICE\",\"$QUANTITY\"]" -p $KYLIN_BRIDGE_ACCOUNT@active
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
You can use the **command line** login option on bloks.io, *top right*, this will auto-create the cleos commands for you!
{% endhint %}

Now let's head over to the EVM side.


---

# 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.liquidapps.io/liquidapps-documentation/cross-chain-bridges/getting-started-with-liquidbridge/eosio-atomic-assets-less-than-greater-than-erc1155-non-fungible-tokens/eosio-side-setup.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.
