Kortana Layer-1 · dPoH · DNR
A development environment for the Kortana blockchain.
Write Solidity and Quorlin, compile against real toolchains, deploy with your own wallet, and inspect what actually happened on chain. Built as an engineering instrument — not a dashboard with an editor bolted on.
Runs in your browser. No installation, no account required.
What it does
Two languages, one chain
Solidity on the KEVM and Quorlin on the KVM, settling on the same ledger with identical selector and storage derivation — so contracts written in either can call the other.
Real compilation, both languages
Solidity builds with the official solc in a Web Worker, pinned per project. Quorlin builds with quorlinc, the compiler from the Kortana node itself. Diagnostics, ABI and bytecode come from those compilers, never from Studio.
Your keys stay yours
Studio constructs an unsigned transaction; your wallet signs and broadcasts it. No private key is ever requested, stored, transmitted or logged, and nothing is signed server-side.
Capabilities are measured
Studio probes the endpoint at connection time and gates every feature on what it actually implements. A disabled control always names the missing method.
A workspace that survives
Projects, sources, artifacts, open tabs and deployment history persist in the browser and are restored when you return. Export the whole thing as a portable archive.
Nothing is fabricated
No synthetic receipts, no invented contract addresses, no hardcoded gas. A contract address appears only once a receipt provides one.
Quorlin
Looks like Java. Reads like English. Publishes an Ethereum ABI.
Every function begins with reads or writes, so you can tell which functions can move money by reading down the left edge of the file. Arithmetic is checked by default. Logic is spelled and, or, not.
Studio understands the grammar directly: highlighting, outline, hover documentation and structural diagnostics all come from the language specification, not from a generic text mode.
contract Escrow {
map<number, Agreement> agreements;
address arbiter;
event Released(number indexed id, address indexed seller, number amount);
constructor {
arbiter = caller;
}
writes release(number id) {
require agreements[id].state == 1, "agreement is not funded";
require caller == agreements[id].buyer or caller == arbiter,
"not authorised to release";
agreements[id].state = 2;
emit Released(id, agreements[id].seller, agreements[id].amount);
}
reads number stateOf(number id) {
return agreements[id].state;
}
}Networks
| Network | Chain ID | Currency | RPC |
|---|---|---|---|
| Kortana Testnet | 72511 | DNR | https://poseidon-rpc.testnet.kortana.xyz/ |
| Kortana MainnetLIVE | 9002 | DNR | https://zeus-rpc.mainnet.kortana.xyz |
Studio validates the chain ID against the endpoint before doing anything, and blocks the connection on a mismatch. Explorer links are always built from the network a deployment belongs to, so a testnet contract can never link to the mainnet explorer.
What is not available yet
A tool that hides its gaps is a tool you cannot plan around, so here they are.
- Quorlin building needs the compiler on the machine running Studio
quorlincis a native binary from the Kortana node repository. Studio runs the real thing when it can find it, and reports exactly why it cannot when it can't — so a hosted instance without the binary offers editing, navigation and structural validation, but not builds. Editing never depends on it.- Cloud sync and accounts
- Your workspace lives in this browser. It persists across reloads and restarts, but it does not follow you to another device. Export it from Settings.
- Source verification
- No verification endpoint was found on the Kortana explorer, so Studio cannot mark a contract verified. It records the source hash, bytecode hash and full compiler settings with every deployment, so verification will work unchanged once an endpoint exists.
- Test runner and debugger
- Studio does not ship a test runner, so it does not show a test panel. It will not report passing tests it did not execute.