04Developers

Build on Solieum

SVM execution, Solana-shaped tooling, and Solve, Solieum's main framework, for programs written in CradleScript.

Familiar tools, one network over

quickstart.ts
import { Connection, Keypair, SystemProgram, Transaction } from "@solana/web3.js";

// A node you run — local today; a public endpoint arrives with testnet.
const connection = new Connection("http://127.0.0.1:8899", "confirmed");

const payer = Keypair.generate(); // fund it at genesis, or bridge SOL in

// Same transaction shape as Solana. The node accepts a wallet's own wire
// format, verifies every signature, and checks the recent blockhash.
const tx = new Transaction().add(
  SystemProgram.transfer({ fromPubkey: payer.publicKey, toPubkey: to, lamports: 250_000_000 }),
);
const sig = await connection.sendTransaction(tx, [payer]);

// "confirmed" is the sequencer's word: a signed receipt, revocable until the
// batch settles. "finalized" is Solana's, after the challenge window: 48 hours on the gamma
// devnet chain (seven days on the frozen alpha chain), plus the 24-hour air gap.
await connection.confirmTransaction(sig, "confirmed");

// Verified with transactions built exactly as a wallet builds them; this
// client-library shape is the intent, not yet a tested integration.
  • @solieum/web3.jsJavaScript / TypeScript client — not yet published; @solana/web3.js works against the node for sending
  • @solieum/wallet-adapter-reactReact wallet integration — not yet published
  • solieum-sdkRust SDK for on-chain programs — not yet published
  • cradleSolve's CradleScript compiler and CLI — not yet published as a package; compile in the browser with Cradle Studio
Read the docs

Before you build

Integration notes worth reading before you build

The things that differ from vanilla Solana development, stated up front instead of discovered in production.

  • Confirmation levels mean different things

    "confirmed" is the sequencer's word — fast and revocable. "finalized" is Solana's word about the settled root. Credit game state on the first; credit money on the second. On the devnet node, getSignatureStatuses reports confirmed once your transaction is in a block. A transaction that would fail never gets that far: the node executes it at admission and refuses it at submit, with the program's own reason, no signature and no fee. A confirmed status carrying an error now appears only for a forced-inclusion entry, which is never gated, or on a chain running with the gate off, where it reports the reason and whether the fee was kept. Your client need not guess which: getChainInfo returns an admission field that says whether this chain refuses at submit or drops at seal. Final means its root is past the challenge window.

  • Do not derive timing from slots

    L2 slots advance on the L2's cadence. Anything that converts slot deltas to wall-clock time, or uses slot numbers as a schedule, needs reviewing against the compatibility matrix.

  • Fees are SOL, with a data component

    Fees are charged in SOL; no token is required. Part of every fee pays for publishing your transaction's bytes, so bigger transactions cost more even at identical compute — compression-friendly instruction design is suddenly worth real money. The devnet chain charges a flat 5,000 lamports today; the composition is on the fees page.

  • Run it locally today

    The node and the devnet-deployed programs live in the protocol repository, which is not yet public — it opens with the public testnet. One command starts a chain with its own identity and explorer, a second sends a wallet-format transaction, and with --settle-rpc every block publishes and settles to Solana devnet. There is no public endpoint yet.

  • Test withdrawals early

    Deposits are the easy direction. Build and test the full withdrawal path — initiate, prove, wait, finalise — in your integration tests from day one, including the unhappy paths.

Submit → sequencer orders and executes it → soft confirmation comes back to you → the batch containing it is compressed and published → a state root covering it is committed to Solana → the challenge window passes → it is final. On devnet that whole path runs today: your batch lands in a Solana transaction and the root is committed within seconds. The technology page walks each stage; the network page explains which of those moments each confirmation level corresponds to.

The full compatibility matrix →

Building something the base layer can't hold?

Tell us the workload. If Solieum is the wrong answer for it, we would rather say so early than have you find out at launch.