Skip to content
SDKManaging your gameManaging contracts

Managing contracts

If you want to run transactions for profiles that interact with specific contracts, the contract address will need to be registered for your game.

We provide a method for you to add any contract to your game, as long as you can provide us with the ABI and contract address. As adding a contract address to your game is probably a one time action that you won’t repeat (a lot) over time, we can also recommend simply interacting with the hosted Swagger UI to simply add the necessary contracts to your game.


Companion app

If you’re using the Beam Companion app, it might be good to know that as soon as you add a contract to your game, all connected users to profiles of your game are able to see said contract in the Beam Companion app.


Adding a contract

Adding a contract is as simple as calling the addContractToGame method.

import { Beam } from "@onbeam/automation-api-client";
 
const beam = new Beam("x-api-key");
 
const contract = beam.game.addContractToGame({
  address: "string", // the deployed contract address
  type: "ERC20", // ERC721, ERC1155
  chainId: 13337, // 13337 for Beam testnet
  name: "string", // The name of the asset contract, for example: 'Card Packs'
 
  // the JSON abi for the contract, we recommend you grabbing it from the explorer if you have a deployed & verified contract
  abi: [
    {
      name: "string",
      type: "string",
      anonymous: true,
      payable: true,
      constant: true,
      stateMutability: "string",
      gas: "string",
      inputs: [
        {
          name: "string",
          type: "string",
          indexed: true,
          internalType: "string",
          components: ["string"],
        },
      ],
      outputs: ["string"],
    },
  ],
});
 
// {
//  "type": "ERC20",
//  "id": "string",
//  "createdAt": "string",
//  "updatedAt": "string",
//  "externalId": "string",
//  "address": "string",
//  "name": "string",
//  "chainId": 0,
//  "gameId": "string"
//}

Deleting a contract

Removing a contract from your game is just as simple, simply use the removeContractFromGame method to remove it.

import { Beam } from "@onbeam/automation-api-client";
 
const beam = new Beam("x-api-key");
 
const contract = beam.game.removeContractFromGame({
  address: "string", // the deployed contract address
  chainId: 13337, // 13337 for Beam testnet
});
 
// {
//  "success": true
//}