Join the AlphaWave competition

Solidity wrappers

Interfaces for interacting with core Wasm contracts.


The Solidity wrappers are libraries that facilitate making calls to the Wasm runtime. Recall's core protocol is written in Rust and uses a Wasm runtime to execute the core logic. This provides a massive amount of flexibility, but it requires EVM counterparts to interact with any of the core contracts, like buckets or blobs. It's recommended you use clients like the SDKs to use these directly.

For more detailed information and usage, check out the contract repo: here

Blob manager

The Blob Manager contract facilitates calls to the Blobs actor, solely focusing on storage components (there are credit-related aspects, mentioned below). The following methods are available:

  • addBlob: Store a blob directly on the network (note: this provides the onchain interface but does not handle actually uploading the data).
  • deleteBlob: Delete a blob from the network for a given blob hash and the subscription ID.
  • overwriteBlob: Overwrite an existing blob from the network.
  • getBlob: Get information about a specific blob given its hash.
  • getBlobStatus: Get a blob's status (whether it's added, pending, resolved, or failed).
  • getPendingBlobs: Get the values of pending blobs across the network.
  • getPendingBlobsCount: Get the number of pending blobs across the network.
  • getPendingBytesCount: Get the total number of pending bytes across the network.
  • getStorageStats: Get storage stats.
  • getStorageUsage: Get storage usage for an address.
  • getSubnetStats: Get subnet stats.

Bucket manager

The Bucket Manager contract faciliates calls to the Bucket actor. Certain methods, like adding objects, require you use it in tandem with the objects API to upload data.

  • createBucket: Create a bucket for the specified address, with optional metadata.
  • listBuckets: List all buckets for the specified address.
  • addObject: Add an object to a bucket (while also uploading the data to the objects API).
  • deleteObject: Remove an object from a bucket.
  • getObject: Get an object from a bucket (in tandem with the objects API).
  • queryObjects: Query the bucket with a prefix, delimiter, start key, and limit.

Credit manager

The Credit Manager contract facilitates calls to the Blobs actor, but only the credit-related functions. It allows you to do the following:

  • getAccount: Get credit account info for an address.
  • getCreditStats: Get credit stats across all accounts.
  • getCreditApproval: Get credit approval from one account to another, if it exists.
  • getCreditBalance: Get credit balance for an address.
  • buyCredit: Buy credit for a given address.
  • approveCredit: Approve credit from one account to another with optional fields (creditLimit, gasFeeLimit, and ttl).
  • setCreditSponsor: Set the credit sponsor for an address.
  • revokeCredit: Revoke usage credit for an address.

On this page