Skip to content

Deploy Arbitrary Starknet Contracts

Realms.World is another Starknet network meaning any Starknet contract can be deployed to it. This guide will show you how to deploy any contract to Realms.World

Install Starkli

It is worth familiarizing yourself with the Starkli documentation before proceeding.

curl https://get.starkli.sh | sh

Setting RPC

export STARKNET_RPC="https://api.cartridge.gg/x/realms/katana/"

Create a new keypair

starkli signer keystore new /path/to/keystore 
 
export STARKNET_KEYSTORE="/path/to/keystore"

Create a new account

starkli account oz init account --keystore $STARKNET_KEYSTORE

Deploy the Account Contract

Remember Realms L3 runs on the Lords token, so you will need to fund the account in this step using the faucet.

starkli account deploy account --keystore $STARKNET_KEYSTORE 

Deploying other Contracts

Now we have our Account setup we can deploy other contracts!

You will just need to have the contract.contract_class.json file!

Declare

The declare command is used to declare a contract class on the Realms.World network. This command requires the contract class JSON file.

This step will output a class hash which is used to deploy the contract.

starkli declare $CLASS_HASH_JSON --keystore keys --account account --rpc https://api.cartridge.gg/x/realms/katana/

Deploy

Take the class hash from the previous step and use it to deploy the contract. If you get errors, check your constructor call data, this is where most issues arise.

starkli deploy <class_hash> <constructor_call_data> --account account --keystore keys --rpc https://api.cartridge.gg/x/realms/katana/