Core delivery

EVM to Solana (and Stacks) migration engineering

“We have an EVM application and need a credible Solana launch plan — without our Solidity team stalling for six months.”

Cryptuon scopes, migrates, and tests EVM applications for Solana (and Stacks), delivering a costed plan and tested programs against written acceptance criteria.

When teams bring us this

  • You have announced, or committed to investors, support for Solana or Stacks
  • An ecosystem grant or partnership depends on a launch date
  • Your Solidity team is strong but nobody has shipped a Solana program to mainnet
  • A previous port attempt stalled on account design or compute limits

Usually owned by

  • Founder or CEO
  • CTO
  • Head of engineering
Scope

What you receive, and how “done” is defined

Deliverables

  • Contract inventory with a per-contract verdict: port, redesign, or keep on EVM
  • Solana account and PDA design for state that was held in Solidity mappings
  • Migrated programs (Rust/Anchor you own and can audit), client changes, and test suite
  • Devnet deployment, launch runbook, and audit-readiness pack for your chosen auditor

Example acceptance criteria

  • Behavioural parity tests: every agreed user flow passes on Solana devnet with the same inputs and expected outputs as the EVM version
  • All instructions stay within an agreed compute-unit budget with headroom, measured in CI
  • Every transaction the client builds fits Solana’s 1,232-byte packet limit, including lookup tables where used
  • Generated and hand-written Rust passes clippy, the Anchor test suite, and your auditor’s intake checklist

Not included unless scoped

  • Independent security audit (we prepare for it and can bring in an auditor, priced separately)
  • Token launch, listing, liquidity provision, or market-making
  • Legal review of token or fundraising structure
Engagement

How this is bought

Start with a fixed-fee assessment. Every later stage is optional and scoped in writing before it starts.

  1. Step 1 · Assess

    Feasibility or bottleneck assessment

    from $1,500 · 1–2 weeks

    • Current-state analysis against your real workload or codebase
    • Options compared, including ones that do not use Cryptuon technology
    • Risk register and costed, scoped recommendation
  2. Step 2 · Implement

    Implementation sprint

    from $12,000 · 3–8 weeks

    • The agreed migration or integration, delivered against written acceptance criteria
    • Tests, runbooks, and documentation
    • Handover, or transition into managed operations
  3. Step 3 · Operate

    Managed operations and maintenance

    from $1,500/month · Monthly, 3-month minimum

    • Defined monitoring, maintenance, and incident responsibilities
    • Supported changes within an agreed envelope
    • Provider management and monthly reporting

Prices exclude independent audits, substantial infrastructure consumption, and legal advice unless written into the scope. All engagement types →

The short answer

A credible Solana launch for an existing EVM application is an account-model redesign plus a tooling decision, not a recompile. Cryptuon starts with a paid assessment of your real contracts, decides per contract whether to port, redesign, or leave it on EVM, and then delivers tested Solana programs against acceptance criteria you sign off before any build starts.

The tooling — SolScript, Solang, Neon EVM, or a native Anchor rewrite — is chosen after we have read your code, not before.

Decision criteria

The questions that decide cost and approach:

How much state lives in mappings and dynamic arrays?

Solidity hides storage layout. Solana makes it explicit: every piece of state lives in an account that must be created, sized, funded for rent exemption, and passed into each instruction. A mapping(address => uint256) usually becomes one PDA per key. That is mechanical. A mapping(address => Position[]) that grows without bound is not mechanical, and needs a redesign: paging, a zero-copy account, or moving history off-chain.

Do any flows exceed Solana’s per-transaction limits?

  • Transaction size: 1,232 bytes, including signatures and account keys. Flows that touch many accounts need address lookup tables or splitting.
  • Compute: 200,000 compute units per instruction by default, up to 1.4 million per transaction on request. Loops over storage that are cheap to reason about on the EVM can run out of compute.
  • Cross-program invocation depth: limited to 4. Deep proxy or router call chains need flattening.

What is your team going to maintain?

If the long-term team is Solidity-first, a Solidity-syntax toolchain lowers the ongoing cost. If you are hiring Rust engineers anyway, a native Anchor rewrite is often simpler to own.

What must not change?

Token addresses, user balances, governance rights, and integrations with partners. Settling these early prevents expensive late redesign.

How do existing users and balances arrive on Solana?

There are three common patterns, and they have very different costs:

  • Fresh deployment. Solana starts empty and users opt in. This is the cheapest option, and it is right when the Solana launch is a new market rather than a move.
  • Snapshot and mint. You take a snapshot of balances or positions at a block height and recreate them on Solana. This needs a reconciliation report that proves the two states match, plus a plan for activity that happens after the snapshot.
  • Bridged assets. Tokens move through a third-party bridge. You inherit the bridge’s security model, and wrapped-asset UX becomes part of the launch.

The choice affects the account design, the audit scope, and the launch runbook, so it is settled in the assessment rather than during the build.

Implementation options

ApproachHow it worksStrengthTradeoffMaturity
SolScript (Cryptuon)Compiles Solidity syntax to Rust/Anchor, mapping mappings to PDAsOutput is ordinary Anchor code you can read, edit, and auditNot every Solidity pattern maps cleanly; complex contracts still need redesignOpen source, public tests; no third-party audit published
SolangCompiles Solidity to Solana bytecode directlyMature, long-running Hyperledger projectAccount handling must be reasoned about in Solidity annotations; output is bytecode, not editable RustEstablished
Neon EVMRuns EVM bytecode inside a Solana programClosest to “deploy unchanged” for EVM toolingEmulation overhead and a different cost and composability model from native programsEstablished, on mainnet
Native Anchor rewriteEngineers rewrite contracts in Rust with AnchorFull control, idiomatic programs, largest talent poolHighest upfront cost; the team must be Rust-capableIndustry standard

In practice many migrations are mixed. Simple token, vault, and access-control contracts go through a compiler. The one or two contracts that carry the core economic logic get a native redesign.

The delivery sequence

  1. Inventory. List contracts, external calls, storage shape, upgrade patterns, and every off-chain client that builds transactions.
  2. Classify. Mark each contract port, redesign, or keep on EVM, with a reason.
  3. Account design. Lay out PDAs, account sizes, rent, and the instruction list for each flow.
  4. Build. Compile or write the programs, and update clients (wallet adapters, transaction builders, indexers).
  5. Prove parity. Run the same scenario tests against the EVM and Solana deployments and compare the results.
  6. Launch preparation. Deploy to devnet, measure compute budgets, write runbooks, and prepare the audit-readiness pack.

Example of the kind of parity check that becomes an acceptance test:

// Parity test: the same deposit/withdraw scenario on both chains must
// leave identical user-visible balances.
import { expect } from "chai";

const scenario = [
  { action: "deposit", user: "alice", amount: 1_000n },
  { action: "deposit", user: "bob", amount: 250n },
  { action: "withdraw", user: "alice", amount: 400n },
];

it("matches EVM balances after scenario", async () => {
  const evm = await runOnEvm(scenario);       // Hardhat/Foundry fork
  const sol = await runOnSolana(scenario);    // Anchor test validator
  for (const user of ["alice", "bob"]) {
    expect(sol.balanceOf(user)).to.equal(evm.balanceOf(user));
  }
});

And the compute-budget check that runs in CI:

// Fail the build if an instruction exceeds its agreed compute budget.
let result = banks_client
    .simulate_transaction(tx)
    .await?;
let units = result.simulation_details.unwrap().units_consumed;
assert!(units <= 150_000, "withdraw used {units} CU; budget is 150k");

Stacks and Clarity

For Stacks the trade is different. Clarity is decidable and interpreted, with no compiler step to hide behaviour. Teams that prefer TypeScript-style syntax can author in StxScript and review the Clarity it emits. Teams that prefer the reference toolchain write Clarity directly with Clarinet. The same steps (inventory, classify, prove parity) apply.

Evidence

  • SolScript emits standard Rust/Anchor and publishes worked examples: tokens, escrow, multisig, staking, and a constant-product AMM. You can inspect the generated code in the SolScript playground before any engagement.
  • The tradeoffs between SolScript, Solang, and Neon are documented openly in the SolScript comparison and in our article on why Solidity developers should deploy on Solana.
  • Lessons from building eleven Solana projects are written up in Solana infrastructure lessons.
  • Current evidence levels for each tool are listed in the maturity register. Neither compiler has a published third-party audit, which is why generated programs still go through an independent audit before mainnet.

What drives the cost

  • Number of contracts and the share needing redesign. A compiler-friendly contract can cost a fraction of a redesigned one.
  • Client surface. Every frontend, bot, indexer, and partner integration that builds EVM transactions has to change.
  • Upgrade and admin model. Proxies, timelocks, and multisig admin have to be reproduced with Solana upgrade authorities and governance.
  • Data migration. Snapshotting balances or positions and reconstituting them on Solana needs its own tests and a reconciliation report.
  • Audit lead time. Booking an independent auditor often sets the critical path more than engineering does.

Limitations and what we won’t do

  • We will not claim that a compiler makes any codebase portable. The assessment exists to find the parts that are not.
  • Neither SolScript nor StxScript replaces an independent audit, and the generated programs need one before they hold user funds.
  • We do not launch tokens, provide liquidity, or market-make. Where your launch involves tokens, it also needs legal advice; we flag this but do not provide it.
  • If the right answer is “stay on EVM and use a bridge or an L2”, the assessment says so.

Next step

Send us your contract inventory, or simply the repository URL and target date. The assessment returns a per-contract verdict, an account design for the hard parts, and a costed implementation plan.

Technology

Cryptuon technology we may use

Open-source components we can bring to this work. They are used only where testing on your workload supports them, and evidence levels come from the public maturity register.

Alternatives

Options we’d recommend when they fit better

The assessment compares these on your actual workload. If one of them wins, the recommendation says so.

Native Anchor rewrite

The long-term team will be Rust-first, or the contracts are small enough that a clean rewrite is cheaper than tooling

Solang (Hyperledger)

You want Solidity compiled directly to Solana bytecode and accept its account-handling model

Neon EVM

You need EVM bytecode compatibility on Solana and can accept the EVM-emulation cost and model

Clarinet + hand-written Clarity

For Stacks, if your team prefers Clarity directly and wants the reference toolchain

FAQ

Questions buyers ask

How much does it cost to port an EVM application to Solana?

Most migrations start with a fixed-fee assessment (from $1,500) that inventories contracts and produces a costed plan. Implementation sprints start from $12,000; the main drivers are the number of contracts, how much state lives in mappings, cross-contract calls, and how many client integrations must change.

Can our Solidity team launch on Solana without rewriting everything in Rust?

Often partly. Tools such as SolScript, Solang, or Neon EVM let the team keep Solidity for suitable contracts, but some designs — unbounded loops over storage, large dynamic arrays, heavy cross-contract call chains — need redesigning for Solana’s account model regardless of tooling. The assessment tells you which contracts are which.

Do you only use SolScript?

No. SolScript is one option. If a native Anchor rewrite, Solang, or Neon EVM is the better fit for your codebase and team, the plan recommends it. The assessment compares the options on your actual contracts.

Is the migrated code audited?

Not by us — an engineering review is not an independent audit. We deliver an audit-readiness pack (specs, invariants, tests, threat notes) and can bring in an independent auditor, priced separately.

Do you also help with Stacks and Clarity?

Yes. The same assessment-then-sprint model applies to Stacks. StxScript can speed up authoring for TypeScript-literate teams, and hand-written Clarity with Clarinet remains a first-class option.

How long does a typical Solana migration take?

The assessment takes one to two weeks. A focused implementation sprint for a small set of contracts is typically three to eight weeks, plus whatever lead time your chosen auditor needs.

Bring us the requirement

Describe the outcome, what is blocking it, and when it must work. We reply with what a scoped assessment would cover and cost.