SDK Job Management
Manage asynchronous jobs: submit, poll, check status, cancel, and batch operations.
SDK Methods
| Method |
Description |
Use Case |
promptAndWait() |
Submit and wait for result |
Recommended for most cases |
prompt() |
Submit, return immediately |
Background processing |
pollJob() |
Poll until job completes |
Manual job tracking |
getJobStatus() |
Check status once |
Custom polling logic |
cancelJob() |
Cancel pending/processing job |
Stop unwanted jobs |
Job Lifecycle
pending → processing → completed
↘ failed
↘ cancelled
| State |
Cancellable |
Description |
| pending |
Yes |
Awaiting processing |
| processing |
Yes |
Actively processing |
| completed |
No |
Finished successfully |
| failed |
No |
Encountered error |
| cancelled |
No |
Cancelled by user |
Usage Examples
Recommended: promptAndWait
const result = await client.promptAndWait({
prompt: "Swap 0.1 ETH to USDC",
timeout: 60000,
});
if (result.status === "completed") {
console.log(result.response);
}
Manual Job Control
const { jobId } = await client.prompt({ prompt: "What are trending tokens?" });
const status = await client.getJobStatus(jobId);
const result = await client.pollJob({ jobId, timeout: 60000 });
Cancel Job
const { jobId } = await client.prompt({ prompt: "..." });
await client.cancelJob(jobId);
Batch Processing
const prompts = ["Price of ETH", "Price of BTC", "Price of SOL"];
const jobs = await Promise.all(
prompts.map(prompt => client.prompt({ prompt }))
);
const results = await Promise.all(
jobs.map(job => client.pollJob({ jobId: job.jobId }))
);
Timing Guidelines
| Operation |
Typical Time |
Recommended Timeout |
| Price queries |
2-5s |
15s |
| Balance checks |
2-5s |
15s |
| Token swaps |
5-15s |
60s |
| Cross-chain bridges |
10-30s |
120s |
| NFT operations |
5-15s |
60s |
Related Skills
- sdk-wallet-operations: Client setup and configuration
- sdk-capabilities: Full list of supported operations