Generator
Generate
Generate Doppler bytecode, manifests, assembly, and client SDKs.
Use generate after your payload schema is ready.
npx @blueshift-gg/doppler-cli generate <schema-file> [name]Arguments
| Argument / Flag | Required | Default | Description |
|---|---|---|---|
<schema-file> | Yes | — | Path to a TypeScript, JavaScript, or JSON payload schema. |
[name] | No | doppler | Generated artifact name. Used for default bytecode output and manifest.json metadata. |
--bytecode <file> | No | ./<name>.so | Output filepath for compiled Doppler bytecode. |
--assembly <file> | No | — | Output filepath for generated sBPF assembly source. |
--manifest <file> | No | next to bytecode | Output filepath for manifest.json. |
--web3js-sdk <directory> | No | — | Output directory for the @solana/web3.js SDK. |
--kit-sdk <directory> | No | — | Output directory for the @solana/kit SDK. |
--rust-sdk <directory> | No | — | Output directory for the Rust SDK. |
--arch <arch> | No | v3 | Target sBPF arch. Supported values: v0, v3. |
--program-id <address> | No | manifest.json or keypair | Program ID override. Resolution order: CLI flag, then manifest.json, then generated program keypair. |
--admin <address> | No | manifest.json or keypair | Admin address override. Resolution order: CLI flag, then manifest.json, then generated admin keypair. |
--keys-dir <directory> | No | keys | Directory for generated keypair files when programId or admin are missing from manifest and CLI. |
generate writes manifest.json with name, programId, admin, and build metadata. It does not modify the input schema file.
On the first run, programId and admin keypairs are created under --keys-dir when they are not already present in manifest.json. Subsequent runs reuse values from manifest.json in the schema file directory.
Example
npx @blueshift-gg/doppler-cli generate ./payload.ts price-feed \
--bytecode ./generated/price-feed/doppler.so \
--web3js-sdk ./generated/price-feed/web3js \
--kit-sdk ./generated/price-feed/kit \
--rust-sdk ./generated/price-feed/rustGenerated TypeScript Workspace
When either TypeScript SDK flag is used, the generator writes a shared common/ package next to the SDK directories. The web3.js and Kit SDKs depend on that generated common package.
generated/price-feed/
common/
web3js/
kit/