Ocelloids Updates: New Features and Enhancements

We’re thrilled to share some updates about Ocelloids’ new features and enhancements.


:rocket: PAPI Migration Complete

We’ve fully transitioned from Polkadot.js to Polkadot-API across all supported chains. We’ve observed ~75% reduction in memory footprint for the same workload.


:fire: EVM Support Now Live

Ocelloids now streams real-time decoded EVM calls and events from parachains using the Frontier EVM pallet. Whether you prefer WebSocket or Webhooks, we’ve got you covered.

For Developers
Here’s how you can stream data about ERC20 token transfers on Moonbeam using the Ocelloids client library:

const informant = new OcelloidsClient({
  apiKey: process.env.OC_API_KEY,
}).agent("informant");

const reply = await informant.createSubscription({
  id: 'moonbeam-erc20-transfers',
  args: {
    networks: ["urn:ocn:polkadot:2004"],
    filter: {
      type: "extrinsic",
      match: {
        to: { $in: [
          "0xacc15dc74880c9944775448304b263d191c6077f", // WGLMR
          "0x511ab53f793683763e5a8829738301368a2411e3", // WELL
          "0xb536c1f9a157b263b70a9a35705168acc0271742", // Stella LP
          "0xffffffff1fcacbd218edc0eba20fc2308c778080", // DOT
        ]},
        'decoded.functionName':'transfer'
      },
      evm: [
        {
          abi: erc20Abi,
          addresses: [
            "0xacc15dc74880c9944775448304b263d191c6077f",
            "0x511ab53f793683763e5a8829738301368a2411e3",
            "0xb536c1f9a157b263b70a9a35705168acc0271742",
            "0xffffffff1fcacbd218edc0eba20fc2308c778080",
          ],
        }
      ],
    },
  },
  channels: [
    { type: "webhook", url: "http://127.0.0.1:8080/notify" },
    { type: "websocket" }
  ]
});

Example webhook data payload:

{
  module: "Ethereum",
  method: "transact",
  blockHash: "0x378f0ac1073b3da50810e83b2e82953c1432315fd890e6268c1c820ee95abbb7",
  blockNumber: 8506449,
  blockPosition: 4,
  timestamp: 1732706892304,
  to: "0x511ab53f793683763e5a8829738301368a2411e3",
  from: "0x2c7F2f245B5bAd73aA1E6D15E70D7Bd15FDEcCEa",
  input: "0xa9059cbb0000000000000000000000004704d15d858e5a83a9716489d48aeda79475c12700000000000000000000000000000000000000000000000c593a6cdd3c9e4000",
  decoded: {
    functionName: "transfer",
    args: [ "0x4704d15D858e5a83A9716489D48AEDA79475c127", "227790500000000000000" ],
  },
  executed: {
    from: "0x2c7f2f245b5bad73aa1e6d15e70d7bd15fdeccea",
    to: "0x511ab53f793683763e5a8829738301368a2411e3",
    transaction_hash: "0x62cf6161bf8e0634962a555463b883687b57582aa7ec76deec3c18b232219172",
    exit_reason: {
      type: "Succeed",
      value: {
        type: "Returned",
      },
    },
    extra_data: "0x",
  },
  logs: [
    {
      eventName: "Transfer",
      args: {
        src: "0x2c7F2f245B5bAd73aA1E6D15E70D7Bd15FDEcCEa",
        dst: "0x4704d15D858e5a83A9716489D48AEDA79475c127",
        wad: "227790500000000000000",
      },
    }
  ],
  value: "0"
}

:globe_with_meridians: Aggregated Multi-Chain APIs

Managing multi-chain data is now simpler than ever! Ocelloids introduces aggregated APIs for assets and chain data across multiple networks.

Highlights:

  • Get comprehensive asset details in one call.
  • Includes cross-chain information for XCM registered assets.

For Asset Hub USDT, here’s a sample response:

{
  id: 1984,
  chainId: "urn:ocn:polkadot:1000",
  name: "Tether USD",
  symbol: "USDt",
  decimals: 6,
  updated: 1732706315415,
  existentialDeposit: "10000",
  isSufficient: true,
  raw: {
    // data from assets pallet
  }
  externalIds: [
    { chainId: "urn:ocn:polkadot:2031", id: { type: "ForeignAsset", value: 1 } },
    { chainId: "urn:ocn:polkadot:2030", id: { type: "Token2", value: 2 } },
    { chainId: "urn:ocn:polkadot:2004", id: "311091173110107856861649819128533077277" },
    // More chains...
  ],
}

Check out our Data Steward CLI for quickly retrieving asset and chain data: GitHub - sodazone/go-steward: Data steward command-line interface


:satellite: General Event and Extrinsic Monitoring

With the Informant agent, you can now monitor any blockchain events or extrinsics, apply complex filters, and stay updated on critical activities.


Here’s a public API key that you can use for testing:

eyJhbGciOiJFZERTQSIsImtpZCI6Im92SFVDU3hRM0NiYkJmc01STVh1aVdjQkNZcDVydmpvamphT2J4dUxxRDQ9In0.ewogICJpc3MiOiAiYXBpLm9jZWxsb2lkcy5uZXQiLAogICJqdGkiOiAiMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLAogICJzdWIiOiAicHVibGljQG9jZWxsb2lkcyIKfQo.qKSfxo6QYGxzv40Ox7ec6kpt2aVywKmhpg6lue4jqmZyY6y3SwfT-DyX6Niv-ine5k23E0RKGQdm_MbtyPp9CA

You can find more examples in our documentation site and the ocelloids-quickstart repo.

:books: Documentation: https://www.ocelloids.net/docs/
:zap: Quickstart: GitHub - sodazone/quickstart-ocelloids-services: Ocelloids Services Quickstart

1 Like