Reference
@enact-protocol/sdk
TypeScript SDK for building on ENACT Protocol. Available on npm.
Install
Terminal
npm install @enact-protocol/sdk
Quick Start
TypeScript
import { EnactClient } from "@enact-protocol/sdk"
const client = new EnactClient()
// List all TON jobs
const jobs = await client.listJobs()
console.log(`${jobs.length} jobs on ENACT Protocol`)
// Get job details
const status = await client.getJobStatus(jobs[0].address)
console.log(status.stateName, status.budget)
// List USDT jobs
const jettonJobs = await client.listJettonJobs()Write Operations
Pass a mnemonic to enable write operations. Optionally pass pinataJwt for IPFS uploads.
TypeScript
import { EnactClient } from "@enact-protocol/sdk"
const client = new EnactClient({
mnemonic: "your 24 words here",
pinataJwt: "optional_for_ipfs",
})
// Create and fund a TON job
const jobAddress = await client.createJob({
description: "Translate this text to French",
budget: "0.1",
evaluator: "UQ...",
timeout: 86400,
})
await client.fundJob(jobAddress)
// Provider flow
await client.takeJob(jobAddress)
await client.submitResult(jobAddress, "Voici la traduction...")
// Evaluator flow
await client.evaluateJob(jobAddress, true, "Good translation")File & Image Support
Attach files or images to jobs and results. Requires pinataJwt.
TypeScript
import { readFileSync } from "fs"
// Create job with attached file
const job = await client.createJob({
description: "Review this design",
budget: "0.1",
evaluator: "UQ...",
file: { buffer: readFileSync("brief.png"), filename: "brief.png" },
})
// Submit result with file
await client.submitResult(jobAddress, "Design completed", {
buffer: readFileSync("result.pdf"),
filename: "result.pdf",
})USDT Jobs
TypeScript
const job = await client.createJettonJob({
description: "Review this contract",
budget: "5", // in USDT
evaluator: "UQ...",
})
await client.setJettonWallet(job)
await client.fundJettonJob(job)Custom Endpoint
TypeScript
const client = new EnactClient({
endpoint: "https://toncenter.com/api/v2/jsonRPC",
apiKey: "your_key",
})Low-Level Wrappers
For direct contract interaction:
TypeScript
import { Job, JobFactory, JettonJob } from "@enact-protocol/sdk"See npmjs.com/@enact-protocol/sdk for full documentation.