Doppler
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 / FlagRequiredDefaultDescription
<schema-file>YesPath to a TypeScript, JavaScript, or JSON payload schema.
[name]NodopplerGenerated artifact name. Used for default bytecode output and manifest.json metadata.
--bytecode <file>No./<name>.soOutput filepath for compiled Doppler bytecode.
--assembly <file>NoOutput filepath for generated sBPF assembly source.
--manifest <file>Nonext to bytecodeOutput filepath for manifest.json.
--web3js-sdk <directory>NoOutput directory for the @solana/web3.js SDK.
--kit-sdk <directory>NoOutput directory for the @solana/kit SDK.
--rust-sdk <directory>NoOutput directory for the Rust SDK.
--arch <arch>Nov3Target sBPF arch. Supported values: v0, v3.
--program-id <address>Nomanifest.json or keypairProgram ID override. Resolution order: CLI flag, then manifest.json, then generated program keypair.
--admin <address>Nomanifest.json or keypairAdmin address override. Resolution order: CLI flag, then manifest.json, then generated admin keypair.
--keys-dir <directory>NokeysDirectory 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/rust

Generated 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/

On this page