Skip to main content


Consumers or Developers are the ones that are in need of interoperability for their decentralized applications. Consumers can define in accessible Javascript code their requirements and get access to computational ressources through the Acurast Marketplace by being matched with Processors.

The so-called Acurast Jobs are executed by Processors in their Trusted Execution Environment that provide the Output of the Job and a Proof of Execution to the defined desintation chain.

Developers can define their requirements in code and have access complete access to Acurast's Interoperability Modules

Get Started

Get access to interoperability resources through the Acurast Console. Read more on the steps on How To Get Started, based on your production or testing needs.

Not sure if your ecosystem is supported? Take a look at Ecosystems & Integrations.

  1. Go to the Acurast Console and log in with your Talisman Wallet or your PolkadotJS Extension.
  2. Fund Account - Get Testnet funds for your account with "Fund Account", to be able to create Jobs.
  3. Go to "Create Job" and select your destination, the ecosystem you're building in.
  4. Select an existing template adapt it or write your own code that fits your needs. Test your code with "Test Code".
  5. Select your own Processor or use public ones.
  6. Define your execution schedule with the parameters such as start and endtime, interval etc.
  7. Specify your usage parameters.
  8. Specify your addtional parameters such as the reward.
  9. Publish your Job and wait for your first fulfillment.


Code examples for the Acurast Enterprise interoperability module for off-chain data and computation.


Request from an API with the result of an asset price.

(response, certificate) => {
console.log("response", response);
const price = JSON.parse(response)["price"] * 10 ** 6;
console.log("price", price);
const payload = { price: price, timestamp: / 1000 };
const packedPayload = pack(payload);
const signature = sign(payload);
signature: signature,
certificate: certificate,
payload: packedPayload,
(response, certificate) => {},
(errorMessage) => {}
(errorMessage) => {}

Verifiable Randomness

Getting a randomized output from the Trusted Execution Environment.

return fulfill(generateSecureRandomHex());