Skip to content
SDK
Reporting

Reporting

Throughout time you'll run transactions to move on-chain assets for the Profiles you create. As for all blockchains - for each transaction, gas needs to be spend in order to fulfil a transaction. In order to provide you with insights into the data, we provide a couple of simple methods that allow you to pull in this data.

Game report

A report per game will get you a complete overview for your game, for every chain you support. This could come in handy if your game is targetting two chains to reach a wider target audience.

Note: chain information is environment specific, meaning that you won't find both testnet and mainnet information within the same response.

const report = await beam.reporting.getTotalGameUsage();
 
// {
//   "chains": [
//     {
//       "policies": [
//         {
//           "totalTransactionFeeInUSD": "string",
//           "totalTransactionFee": "string",
//           "averageTransactionFee": "string",
//           "transactionCount": 0,
//           "chainId": 13337,
//           "policy": {
//             "id": "string",
//             "name": "string",
//             "model": "ContractFunctions",
//             "chainId": 0
//           },
//           "periods": [
//             {
//               "totalTransactionFeeInUSD": "string",
//               "totalTransactionFee": "string",
//               "averageTransactionFee": "string",
//               "transactionCount": 0,
//               "start": 0,
//               "end": 0
//             }
//           ]
//         }
//       ],
//       "summary": {
//         "totalTransactionFeeInUSD": "string",
//         "totalTransactionFee": "string",
//         "averageTransactionFee": "string",
//         "transactionCount": 0,
//         "chainId": 13337
//       }
//     }
//   ]
// }

Chain report

For most developers, retrieving a report for the specific chain they're building on will suffice. The getTotalGameUsageByChain method allows you to do just that, provided that you passed a supported chainId to the method.

If you're developing on Beam (chain), you will be able to retrieve your games gas expenses by passing the following chain id's:

  • 13337 - testnet
  • 4337 - mainnet
const report = await beam.reporting.getTotalGameUsageByChain(13337);
 
// {
//   "policies": [
//     {
//       "totalTransactionFeeInUSD": "string",
//       "totalTransactionFee": "string",
//       "averageTransactionFee": "string",
//       "transactionCount": 0,
//       "chainId": 13337,
//       "policy": {
//         "id": "string",
//         "name": "string",
//         "model": "ContractFunctions",
//         "chainId": 0
//       },
//       "periods": [
//         {
//           "totalTransactionFeeInUSD": "string",
//           "totalTransactionFee": "string",
//           "averageTransactionFee": "string",
//           "transactionCount": 0,
//           "start": 0,
//           "end": 0
//         }
//       ]
//     }
//   ],
//   "summary": {
//     "totalTransactionFeeInUSD": "string",
//     "totalTransactionFee": "string",
//     "averageTransactionFee": "string",
//     "transactionCount": 0,
//     "chainId": 13337
//   }
// }

Policy report

For more granular reporting per policy, you're able to retrieve the information for one specific policy by providing the policyId.

const report = await beam.reporting.getPolicyUsage("clozl24n600003b6ysfapkqq1");
 
// {
//   "totalTransactionFeeInUSD": "string",
//   "totalTransactionFee": "string",
//   "averageTransactionFee": "string",
//   "transactionCount": 0,
//   "chainId": 13337,
//   "policy": {
//     "id": "string",
//     "name": "string",
//     "model": "ContractFunctions",
//     "chainId": 0
//   },
//   "periods": [
//     {
//       "totalTransactionFeeInUSD": "string",
//       "totalTransactionFee": "string",
//       "averageTransactionFee": "string",
//       "transactionCount": 0,
//       "start": 0,
//       "end": 0
//     }
//   ]
// }