StorageDepositTransferredAndHeld

Event v334 → current #8

Emitted when storage deposit is transferred and held by the contract system.

View events on chain
Useful for: developersanalytics

The Big Picture

Contracts pay for storage through deposits. This tracks who paid and how much.

Use Cases

  • Track storage costs
  • Monitor deposit flows
  • Build cost analysis tools

From Chain Metadata

Some funds have been transferred and held as storage deposit.

Triggers

Preconditions

  • Contract operation increased storage
  • Payer has sufficient balance

Effects

Postconditions

  • Deposit transferred from payer
  • Deposit held for storage

Side Effects

  • Payer's free balance decreased

Event Data

#NameTypeDescription
0
from
AccountId Account paying the storage deposit (hex -> SS58)
1
to
AccountId Contract or system receiving the deposit (hex -> SS58)
2
amount
u64 Deposit amount transferred (RAO) (RAO -> TAO (/ 10^9))

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Subscribe to StorageDepositTransferredAndHeld events
api.query.system.events((events) => {
  events
    .filter(({ event }) =>
      event.section === stringCamelCase("Contracts") &&
      event.method === "StorageDepositTransferredAndHeld"
    )
    .forEach(({ event }) => {
      console.log("StorageDepositTransferredAndHeld:", event.data.toHuman());
    });
});

Runtime Info

Pallet Index
29
Event Index
8
First Version
v334
Current Version
v393