MEM
WebsiteLabsGuides
  • ⚗️Molecular Execution Machine
  • 👋Introduction
    • What is MEM?
    • MEM features
    • MEM vs alternatives
    • Technical architecture
    • Use-case examples
  • ⚡Quickstart
    • Quickstart guide
  • 📖MEM Specifications
    • Function syntax
    • Function specs
    • Transaction specs
    • Supported languages
    • About MIPs
  • ⚛️Molecules
    • Overview
    • Multichain authentication
    • Using APIs
    • API reference
  • 🧪MEM IDE
    • Overview
    • Function ABI
  • ⚒️MEM Carbon Testnet
    • Overview
    • Deploy to testnet
    • Interact with testnet functions
  • ⚙️MEM SDK
    • SDK Usage
  • 🖥️MEM CLI
    • Function deployment
    • Function interaction
  • 🏗️MEM API
    • Overview
    • Write operations
    • Read operations
  • ⚛️3EM-MEM
    • Overview
    • EXM API
    • Key-Value Storage (KVS)
  • 🧩Examples
    • Pastebin clone
    • Query onchain data
Powered by GitBook

mem.tech © 2023

On this page
  • Transaction Tags
  • Transaction's data
  • Transaction Limits
  1. MEM Specifications

Transaction specs

MEM transaction specifications

For a transaction on MEM to be considered valid for the execution machine and successfully captured from the Arweave network, it must adhere to a specific structure. By meeting these requirements, transactions can effectively interact with MEM functions.

Transaction Tags

To be valid for the MEM execution machine and captured from the Arweave network, transactions on MEM must adhere to a specific structure:

  • App-Name : MEM

  • Type: Serverless

  • Function : $MEM_FUNCTION_ID

  • MEM-Bundled : true

  • Content-Type : application/json

  • 3EM-Executor-Version : ^v.v.v

Additionally, the execution machine adds the following tags:

  • Pseudo-Timestamp : the pseudo timestamp of the interaction.

  • JS-Length : data transaction size.

  • Items-Length : number of interactions in the data-bundled transaction.

  • MEM-Transactions-Processed : number of the transaction proceeded by the execution machine from the Items-Length.

Transaction's data

Alongside the specific tags of a MEM transaction, the Arweave data transaction should also adhere to the MEM specifications:

{
  "entities": [
    {
      "raw": {
        "id": "$MEM_TX_ID", // ignore
        "owner": "$BUNDLR_TXS_SUBMITTER_AKA_NODE_ADDR", // ignore
        "quantity": "0", // ignore
        "reward": "0", // ignore
        "tags": [ // ignore
          {
            "name": "memCreatedBy",
            "value": ""
          }
        ],
        "input": "{\"key\":\"value\"}" // the transaction's interaction input
      },
      "metadata": {
        "createdWhen": "$PSEUDO_TIMESTAMP", // ignore
        "executorVersion": "1.0.0", // ignore
        "internalId": "$EM_SPEC_ID" // ignore
      }
    }
  ]
}

Transaction Limits

  • Batch transactions are limited to a maximum of 499 write operations per batch.

  • The input per transaction must be smaller than 512kb in size.

  • The total size of tags within a transaction should not exceed 212kb.

  • Bulk calls have a total size limit of 250mb to ensure efficient processing and management.

PreviousFunction specsNextSupported languages

Last updated 1 year ago

The mem-core node address used in Irys for DA layer data broadcasting is:

📖
IDsQSfjrHhw754PI3G8hZwAhs17KruE1jDJA0vB_R5A