Uniship

1,000 hulls · one race · no finish line

Reefedno damage, ever
Workinga safe sailing rig
Fullbest in a real sea
Pressfast, and it shows
Everything She Hasruinous in a blow

Every ship is sailing the same water. What separates first from last is not luck and not the market — it is the one decision the owner keeps making: how much sail to carry.

More canvas logs distance faster in any wind. More canvas also takes more damage when it blows. Reefed takes no damage at all, ever, and is the slowest thing on the water. There is no rig that wins in both conditions, so the race comes down to whether you read the weather better than the owner of hull #417.

The decision

Distance made good, per unit of sea, by rig and sea state.

This table is the entire game. Read down a row to see what each rig earns in that weather; the highlighted cell is the rig that wins it. The winner changes twice.

A gentler curve was tried first and Full Sail simply won at every sea state up to a total gale, which makes the rig a formality rather than a decision. Negative means the storm takes more than the wind gives — the score floors at zero, but the damage is permanent.
Sea stateReefedWorkingFullPressEverything
0%0.801.001.301.702.20
15%0.800.971.211.491.75
30%0.800.941.121.281.30
50%0.800.901.001.000.70
70%0.800.860.880.720.10
100%0.800.800.700.30-0.80

Reefed

Takes no damage under any conditions. Slowest rig on the water and it never, ever goes backwards. In a full gale it is the best thing you can be flying.

Everything She Has

Nearly three times the speed of reefed in flat water. Drive it through a real blow and damage outruns distance — the hull is permanently marked and the art shows it.

How it runs

Two running totals, and 1,000 ships sail on one storage write.

The hook bound to the uSHIP/ETH pool is purely observationalafterInitialize | afterSwap, flags 0x1040, no return delta, no fee. It cannot alter, tax or refuse a swap. It writes down the weather, and the fleet sails in it.

fleetLog

Cumulative wind: every qualifying swap adds its ETH leg, capped at 5 ETH so one whale is not a trade wind.

galeLog

Cumulative storm: the same volume, scaled by how violently price is moving. A calm market adds almost nothing here.

A hull stores where those two totals stood when it last trimmed. Its position is the difference, scaled by the rig it was carrying. So nothing has to be touched when the weather changes, settling a hull is arithmetic rather than a loop, and the whole fleet costs one storage write per swap.

At sea and in harbour

One uSHIP backs one hull. That is what makes a ship tradable.

This is not ERC-404. The token and the ships are two separate, standard contracts. The only link is a backing rule enforced by revert: an account may keep at most floor(balance / 1e18) ships at sea.

So you never need a bid on your specific hull to get out. You sell uSHIP into the pool like any token, and the ship you were over-holding puts back into harbour on its own, inside that same transfer. The log is banked first, so nothing is lost — distance, damage, DNA and rig all keep, for whoever crews her next.

Time in harbour logs nothing. Ships are drawn out lowest-hull-first, so nobody can pick which one surfaces, and buying uSHIP does no ERC-721 work at all — it only earns you the right to crew another hull.

The fleet

Twelve hulls, mid-voyage.

Rendered by the same code that runs on chain. The sails you can see are the sails she is actually carrying, so you can read an owner’s risk appetite straight off the picture. Torn canvas and patched planking are storms she has already been driven through, and they do not heal.

Everything She Has · Bristol Fashion · 1st
Press · Battered · 4th
Full · Weathered · 9th
Reefed · Bristol Fashion · untouched
Everything She Has · Barely Swimming
Working · Weathered
Press · Jury-Rigged
Full · Strained
Reefed · in the trade winds
Everything She Has · Strained · 2nd
Working · Bristol Fashion
Press · Barely Swimming

The record

Canonical addresses.

Anything not listed here is not Uniship. Verify against this table before you trade, and treat any contract claiming the name that does not appear below as hostile.

ContractRoleAddress
ShipTokenERC-20, backingawaiting mainnet
UnishipHookv4 hook, the weatherawaiting mainnet
ShipsERC-721, the fleetawaiting mainnet
ShipRendereron-chain artawaiting mainnet
PooluSHIP / ETH, Uniswap v4awaiting mainnet
Sitecanonicaluniship.art
Xcanonical@UnishipV4
Hulls
1,000
Supply
1,000 uSHIP
Hook flags
0x1040
Art
on-chain