Portside

Read the news.
Beat the ship.

A harbour stock exchange on Portaldot. News arrives by ship, and every share price is a live pool on the chain’s native DEX.

Live on the Portaldot V3 testnet Ecosystem DApps portside.nerom.site
Portaldot Hacker House 2026
The problem

On-chain trading feels like a spreadsheet. On-chain games fake the market.

DEX screens are for experts

Pools, slippage and fees, with nothing that tells a newcomer why a price should move or what to do about it.

Trading games don’t trade

Most keep made-up prices on a server. Nothing settles, so nothing teaches you how a real pool behaves.

News games need fair timing

If the operator knows the headline first, the game is rigged. Players have to be able to check who knew what, and when.

Portside
The idea

The first stock exchange grew up on a harbour.

In 1600s Amsterdam, a ship coming in, or not, moved the share price of the company that sent it. Portside plays that same game with five stocks people talk about today, each with its own pier.

NVDA chips AAPL phones TSLA cars AMZN parcels META headsets
PortsideGame prices in DUCAT, not market data. Not affiliated with these companies.
How a round works

One headline. One ship. One decision.

0:00

News is drawn

The Harbour contract picks a stock, a kind of news and a size: “Earnings beat · NVDA ▲ 12%”.

0:00–0:45

Trade before it docks

Buy before good news, sell before bad. Every trade is a real swap signed in the browser.

0:45

The ship docks

One public house swap moves that pool by exactly the posted amount. Right call, right money.

2:30 · 4:00

Tide, then rumours

Prices drift a quarter of the way back. A minute before the next round, rumour holders hear the next ship.

0:00 news0:45 dock2:30 tide4:00 rumour window5:00 next ship
Portside
The game

A living harbour, not a price table

The Portside harbour
1The news cardThis round’s headline, the ship’s countdown and a link to the on-chain draw.
2Five piersEach stock’s live pool price floats over its pier. The ship sails to the news stock and docks.
3The crowdOther captains’ trades pop up on the piers as they land on-chain.
4Buy and sellA trade sheet shows the quote, the price impact and a chart marked with past news.
5No gas, no sign-upA wallet in the browser, 1,000 DUCAT to start, and the harbour pays the network fees.
Portside
Reading the news

Six kinds of news. Three push a stock up, two push it down.

Earnings beatProfits came in above forecast
▲ up
Supply stormShipments stuck behind a storm
▼ down
Launch sell-outA new product flying off the shelves
▲ up
Rival fleetCompetitors flooded the port
▼ down
Whale buyingA big fund scooping up shares
▲ up
Calm seasA quiet round on the exchange
no move

The size of each move, 5% to 29%, is on the card. The skill is in timing and sizing, and in selling into the move before the tide pulls it back.

Portside
Reasons to come back

A proper game site around the harbour

Season podium
Daily missionsThree a day, the same for every captain, like “Sell before a fall”.
12 badgesFrom First trade to Admiral, plus streaks of right calls.
Rumours25 DUCAT paid on-chain to hear the next ship a minute early. Two a day.
Season podiumHighest net worth takes the Admiral’s flag; daily champions are anchored.
PortfolioHoldings, average cost, P&L and a net worth chart for every captain.
Share cardOne tap turns a win into an image for X, with the harbour behind it.
Portside
Built on Portaldot

Native pallets for the market, a contract for the news

BROWSER

Portside web appReact + polkadot.js. Signs swaps with a burner sr25519 wallet kept in the browser.
Game siteHome, guide, season, portfolio and captain pages, missions and badges.

PORTALDOT V3 TESTNET

pallet-assetsDUCAT 8801000 and five share assets 8801001–5, renamed on-chain to NVDA…META.
pallet-asset-conversionSix pools: tPOT/DUCAT plus DUCAT against each stock. Every Buy is a real swap.
Harbour.sol on pallet-reviveCommit-reveal news draw, season and round state, and daily Merkle anchors.

KEEPER (HONO, RAILWAY)

Harbour clockReveals each round, makes the docking swap, runs the tide.
Indexer + APIReads swaps and transfers from blocks, builds the board, sells rumour tickets.
Fee tankStarter purse on sign-up and tPOT top-ups, so players never need gas.
Portside
Fair by design

Nobody knows the next ship. Not even us.

Commit, then reveal

The keeper commits to a secret seed a round ahead and must reveal that exact seed to the contract.

Block hash mixed in

The contract mixes the seed with the previous block hash, so the keeper can’t choose or predict a headline.

Docking is one public swap

When a ship lands, one house swap moves the pool by exactly the posted amount. Anyone can check its size.

Rumours don’t change the draw

A ticket only reveals the contract’s next draw a minute early. Standings are anchored daily as a Merkle root.

entropy = keccak256(seed, blockhash(block.number − 1), season, round) → stock, kind, size
Portside
Live and checkable

Deployed on the Portaldot V3 testnet

5 mina round, drawn on-chain since Nov 1
6pools on pallet-asset-conversion
0gas or sign-up needed to play
1contract for news, seasons and anchors
Harbour contract (pallet-revive)0x04570accAB9f6fa3637aE0bBbEDfB9D46440D297
Contract deploy, block 277,7160xb755f84e9b4fda98b008aa5064b51e7d13649c31d5bc053458be56e6d06e1ad3
Harbour.reveal: a round’s news drawn0xb9b0a241874a5373d8fd8a09397dbf2c03b3eed72b5a68ab0d84091f1f40b1ff
House swap when that ship docked0x57779da87fee8f91719bc97f2adfd049c11d58d248a29e3b2246b1bf0d40df8a
A captain’s swap signed in the browser0x4fe4cd7e4643380a4eeb95eef2dfa7428f008addf3742d1e9906c7981af3ca99
PortsideExplorer: node-console.portaldot.dev
What’s next

From testnet harbour to a busy port

Portside
Built for the Portaldot Hacker House 2026 · Ecosystem DApps