Environment setup
Install the SDK, connect to Dash Platform, and make a verified read.
The ticket marketplace has an architecture now, but it still hasn't spoken to Dash Platform. Before you build identities or publish data, make the smallest useful request: ask testnet which chain answered and how far its Platform chain has progressed.
This is a read-only setup. You don't need a wallet, a mnemonic, or testnet funds.
Start a Node project
Create a directory for the marketplace and initialize it:
mkdir dash-ticket-marketplace
cd dash-ticket-marketplace
npm init -yInstall the pinned JavaScript SDK used by the examples that follow:
npm install @dashevo/evo-sdk@4.1.1Pinning 4.1.1 matters because SDK method names and return types can change between releases. The generated package-lock.json records the exact package version, so another installation can reproduce the same setup.
The example file will use the .mjs extension. Node treats that extension as an ECMAScript module, which lets the script use import without changing package.json.
Make one live read
Create connect.mjs beside package.json:
import { EvoSDK } from '@dashevo/evo-sdk';
try {
const sdk = EvoSDK.testnetTrusted();
await sdk.connect();
const status = await sdk.system.status();
const snapshot = status.toJSON();
console.log('Connected to:', snapshot.network.chainId);
console.log('Latest Platform block:', snapshot.chain.latestBlockHeight);
} catch (error) {
console.error('Could not read Dash Platform testnet:', error.message);
process.exitCode = 1;
}EvoSDK.testnetTrusted() creates a client configured for Dash Platform's public test network. Calling connect() establishes the connection, but that alone doesn't prove a useful request succeeded. sdk.system.status() asks for current node and chain status; reaching the two console.log lines proves the SDK received and decoded a live response.
The script prints two moving values rather than comparing them with numbers copied into the code. A testnet chain ID identifies the network that answered, while the latest Platform block height changes as new blocks arrive.
Run it
node connect.mjsA successful run looks like this, with a different height:
Connected to: dash-testnet-...
Latest Platform block: ...Don't copy the abbreviated output into a test. Check the real run instead: the first value should identify Dash testnet, and the height should be present. If the script prints Could not read Dash Platform testnet, setup isn't complete yet.
Compare two views of testnet
Open the Dash Platform testnet explorer. Its dashboard shows the current Platform block height without using your code.
Compare that height with the number printed by connect.mjs. They may differ slightly because you didn't load both views at the same instant. They should still be close, and both should move forward as testnet produces blocks. Make sure the explorer's network switch says testnet; the mainnet explorer reports a different chain.
Installation errors happen before the network request. If Node reports that it can't find @dashevo/evo-sdk, confirm that the command is running inside the directory whose package.json and node_modules contain the dependency. A connection error comes later; rerun it after checking that your machine can reach the internet.
Once both lines print, keep connect.mjs. The next concept lesson explains what answered this request and what a proof changes; there is no wallet or secret to save from this read.
Paste the complete block height printed by your script. Dash Academy reads the current testnet height independently and accepts a recent height, rather than comparing your answer with a number frozen into the lesson.
Verify your work
Paste the public result your script printed. Dash Academy will look it up independently on Dash Platform testnet.