> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting started with the Sauce SDK

> Compile a standalone Sauce program with compact arguments, inspect deployment registries and find the API reference for execution.

Start with [Getting started with Sauce](/programmable-transactions/sauce/getting-started) to prepare a Pot, read fees and build an intent. This page shows how to use the standalone compiler and find the corresponding API entries.

## Prerequisites

* Node 24 or later.
* Install the documented SDK version: `npm install --save-exact @eco-incorp/sauce@0.99.4`.

The example below compiles locally and does not submit a transaction.

## Compile a standalone program

The direct compiler returns one reusable program plus its metadata; `main` arguments are appended per execution. With `compactArgs: true` the result carries an `entrySchema` for the compact codec.

```typescript theme={null}
import { compile, decodeCompactArguments, encodeCompactArguments } from "@eco-incorp/sauce/compiler";

const source = "function main(amount: Uint256): Uint256 { return amount + 1; }";
const artifact = compile({
  target: "evm",
  compactArgs: true,
  resolve: () => new TextEncoder().encode(source),
});
if (artifact.entryEncoding !== "compact-v1" || artifact.entrySchema === undefined) {
  throw new Error("Expected a compact entry schema");
}
const args = encodeCompactArguments(artifact.entrySchema, [42n]);
const program = new Uint8Array([...artifact.bytecode, ...args]);
const decoded = decodeCompactArguments(artifact.entrySchema, args);
console.log("ISA:", artifact.isaRevision, "program bytes:", program.length);
```

The result also reports `isaRevision` (`stack-compact-v2`) and, on the `svm` target, the account `manifest`. Reference: [compiler subpath](/sdk-reference/sauce/compiler/compile), [compact arguments](/sdk-reference/sauce/compiler/compact-arguments), [@eco-incorp/sauce-compiler](/sdk-reference/sauce-compiler/api).

## Read deployments and registries

```typescript theme={null}
import { v12EngineAddress, v12KitchenAddress, v12SvmEngineProgramId } from "@eco-incorp/sauce/deployments";
import { listProtocols, getProtocol, requireChain } from "@eco-incorp/sauce";

v12EngineAddress();        // current EVM engine, same address on every deployed chain
v12SvmEngineProgramId();   // current Solana engine
listProtocols().length;    // 129
requireChain("base").id;   // 8453
```

Release addresses do not establish that a chain has the deployment; check code on the target chain, as the SDK's `prepareDestinationPot` example does. The legacy per-chain roster (`isV12Live`) records an older deployment and does not attest the pinned release. Reference: [deployments](/sdk-reference/sauce/deployments/current-addresses), [chains](/sdk-reference/sauce/chains/canonical), [protocols](/sdk-reference/sauce/protocols/registry).

## Next steps

`@eco-incorp/sauce/evm/engine` exposes the Pot and Kitchen ABIs and call encoders (`v12Pot.encodeCook`). `@eco-incorp/sauce/svm` exposes `createSauceSvmClient` for Solana. Reference: [evm/engine](/sdk-reference/sauce/evm-engine/pot-and-kitchen), [svm client](/sdk-reference/sauce/svm/client). The steps are on [Getting started with Sauce](/programmable-transactions/sauce/getting-started).
