Choose your core
A dual-lane app can hold its core logic on the Solidity side or the native Solana side. It's a judgment call — weigh what matters for your app.
Last updated
Was this helpful?
A dual-lane app can hold its core logic on the Solidity side or the native Solana side. It's a judgment call — weigh what matters for your app.
Most Rome apps are dual-lane: one shared state, reached by both MetaMask (EVM) and Phantom (Solana) users. You can build one in two mirror-image shapes, differing in which side holds the core logic. There's no hard-and-fast rule for which to pick — it's a soft judgment from what matters for your app: the code and assets you already have, your team's expertise, your security posture, the tooling you prefer, performance, and how each audience will use it.
Your logic is a Solidity contract. A Phantom user's Solana signature is executed as an EVM transaction from their Rome-derived identity (the external_auth PDA) — they never need an EVM key. Often a good fit when you already have a Solidity contract (especially a hardened or audited one), want standard EVM tooling (Hardhat / Foundry / viem), or the logic is straightforward.
Read: aerarium — a Compound v3 lending market (Solidity core) that EVM and Solana users share.
Your logic is a native Solana program; a thin Solidity router lets EVM users reach it via CPI. Often a good fit when you already have a Solana program, or when running the core natively matters for what you're building.
Read: rome-dex — a native AMM (Solana core) with an EVM router, so both lanes trade one pool.
Performance is one thing that might tip the choice — consider it as an example. Native Solana execution can be considerably cheaper than the EVM interpreter for heavy logic: one swap we measured ran roughly 6× cheaper natively. If your app has a hot, compute-heavy path, that kind of difference might matter to you; if it doesn't, it probably won't drive the decision. Treat it as one input among many, not a rule.
Keep the core authority-agnostic — act on whichever authority signs, so the caller can be a Solana pubkey or an EVM user's PDA — keep the account set lean and ALT-friendly so the EVM lane stays cheap, and test both lanes.
Call Solana from EVM — the CPI mechanics for shape (b), and any Solidity→Solana call.
Compute Budget — more on execution cost.
Last updated
Was this helpful?
Was this helpful?