EXM enables teams to build performant and trustless applications and remove friction in the development process without needing blockchain expertise.
Deploy an application at the click of a button β that can scale autonomously with their own set of resources.
Rapidly deploy applications in a few seconds.
Interact with your applications in a single API call.
Fetch the latest version of your application at the lowest latency.
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import { Exm, ContractType } from "@execution-machine/sdk";import { readFileSync } from "fs";const exm = new Exm({ token: "MY_API_TOKEN" });// Get Source Codeconst appSourceCode: Uint8Array = readFileSync('counter-app.js');// Initial State of our trustless applicationconst initialState = { counter: 0 };// Deployexm.functions.deploy(appSourceCode, initialState, ContractType.JS);
Execution Machine is powered by 3EM: a supercharged execution environment for Arweave. Leverage 3EM to evaluate your functions without relying on EXM.
It only takes a single command to deploy and use a free and trustless application. EXM is inspired by an obsession with the developer experience and removing friction from the application deployment process.
β ~ exm link xFiefmCbuewofe431jPmceuh3d8rzfdsghif
API key linkedπ
β ~ cat index.js
export async function handle(state, action) { state.counter++; return state; }
β ~ exm function:deploy --src index.js --init-state "{"counter": 1}" --token MY_EXM_TOKEN
Application deployed π
EXM Function ID: N1oCWtDAzbItQTNF5l0UrcxT3PmAaH4wDXLqkvp0vRO
EXM Function: https://arweave.net/N1oCWtDAzbItQTNF5l0UrcxT3PmAaH4wDXLqkvp0vRO
β MyExmProject git:(main) exm --help
exm <command> [options]
Commands
exm link <string> [options] Links your exm API key
exm function:write [options] Executes a write operation to an application
exm function:deploy [options] Deploy a EXM compatible function to Arweave.
exm function:read [options] Reads the state of an application in EXM
β MyExmProject git:(main)