A guide for holders

Put your agent to work

It takes about five minutes, it is free, and you do not need to install anything.

What this is

Your yacht can act for you: enter the club's free daily draw, keep your watch in the Regatta, and tell you what is open to you. That work is done by an agent: a small program the club publishes, which runs wherever you choose to run it.

The club never runs your agent, and never holds your key. It runs in your own GitHub account, on GitHub's machines, or on your own computer. Nothing we do starts it.

A key you grant lives on the chain, on your yacht's own account. We cannot grant one for you, and we cannot revoke one for you either. You do both, and you can undo it at any moment.

That is why there is a step where you paste a key yourself. Anyone who offers to skip that step is asking to hold your key.


Part one: Keep me posted

The first job needs no key at all. The agent can only read the club and tell you what it found. Start here.

With nothing to install: add this address to any feed reader app, with your own wallet at the end: https://normiesyachtclub.com/feed/0x…your wallet. The same news arrives there, each thing once. The Purser's Keep me posted card gives you the address ready to copy. The steps below are for an agent of your own on GitHub, which you need for the Daily watch.

What you need: a GitHub account, which is free, and your wallet address.

1. Take a copy of the club's ready repository

Open the repository below, make sure you are signed in as yourself, and press Create repository.

Create my agent on GitHub

Everything the agent needs is already inside: the club's tool, the workflows, and a readme. You upload nothing.

Made it? Paste its address here, and the steps below get buttons that open the exact page in your repository. It stays in this browser only.

2. Tell it who you are

In your new repository, open the Actions tab. If GitHub asks you to enable workflows, accept. Choose Set up my agent, then Run workflow, and fill in:

In about twenty seconds it writes an orders.json file into your repository, reads it back to check it, and keeps it. You never write your orders by hand.

3. Start its clock, once

GitHub starts the hourly runs of a new copy only once its workflow file has been changed. The file has a line made for that. Open it, press the pencil, type any word at the end of the line # Clock started by:, then press Commit changes, and Commit changes again.

Within two hours, Actions shows a run marked Scheduled: that is your agent running by itself.

A copy made before that line existed does not have it: type the word at the end of the file's first line instead. It is a comment, so the word changes nothing but the clock.

4. Try it now

Still in Actions, choose NYC agent, then Run workflow.

When there is something to tell you, it opens an issue in your own repository and GitHub emails you. It tells you each thing once: your own islands first, with what each builds up a day and, while one is asleep, what waking it would cost. Then every island on the map, the season that is on, today's free draw, a Tide round that opens, a prize with your name on it, a berth you may take, and work posted at your own island before anywhere else.

From its first Scheduled run, it runs by itself every hour, with your computer off. The daily acts still happen once a day; the hourly runs bring you news sooner. A run you start by hand says in its issue if no Scheduled run has happened yet.

What it costs: nothing. No key, no gas, and it cannot act.


Part two: Daily watch

The second job acts for you, every day: it enters the club's free daily draw and keeps your watch in the Regatta, and it tells you if either one did not go through.

This matters because the Cup is made of watches, one a day, and a day you miss is never given back. A watch your agent keeps counts exactly like one you keep by hand, and the Regatta board shows how many of a captain's watches an agent kept.

You need two extra things, once.

1. Give your yacht a key, in The Purser

Every yacht owns an Ethereum account of its own. Open The Purser, connect your wallet, and it walks you through three things, one at a time:

If your wallet can do two things in one confirmation, the Purser offers to switch the account on and let the key act together, so you confirm once instead of twice. Either way, it shows you what the key will be able to do before you confirm.

See it on the real page, click by click

The red numbers are what you press, in order. The values are examples: yacht #1234, wallet 0x1234…abcd.

The Purser's Daily watch card: 1 ticks the box that lets your yacht speak in the Crew Mess, 2 is Walk me through it.
In the Daily watch card, tick the Crew Mess box (1), then press Walk me through it (2).
The guided window, step The yacht: 3 is the list of your yachts, 4 is Next.
Connect your wallet, choose the yacht your agent works for (3), then Next (4).
The guided window, step Its key: 5 is Make a key.
Make a key (5). Your browser saves agent-key.txt on your computer. We never see it.
The key is saved: 6 is Copy the key, 7 is Next.
Keep this tab open: Copy the key (6) is what goes into your GitHub secret in the next section. Then Next (7).
The guided window, step Its wallet: 8 switches the wallet on and lets the key act, in one confirmation.
Switch the yacht's wallet on and let the key act (8), then confirm in your wallet: once if your wallet can do both together, twice if it cannot.

What that key can and cannot do: it can act for that one yacht's account, and nothing else you own. What a granted key may sign is published by the club, act by act, with a written reason for every refusal (/api/v1/signing.json). Today it may sign only acts that cost nothing.

2. Put the key in your repository, as a secret

In your repository: Settings, Secrets and variables, Actions, New repository secret.

That secret is the only place the key goes. Never commit the file, and never paste that line into a chat, an issue, a form or a website.

Then run Set up my agent again, this time with the job daily-watch, your wallet, and the number of the yacht the key acts for. From its next hourly run it keeps your watch on its own, once a day.

What it costs: both acts are free. The only cost was switching the account on and letting the key act, once.


Part four: Work at an island

Members post work at the islands: a job in parts, in one discipline (Pilot, Navigator or Quartermaster), paid in a currency they choose. Your agent can take a part for your yacht, hand it in, and record the competence the work proves. All three are free. The work itself is a real transaction made by your yacht's own account, and a competence stays with the yacht, even when it is sold.

See what is on the board first: in the marina press ⚒ Work, then The work.

1. The same key as the Daily watch

The yacht that works needs a key, made and granted in The Purser exactly as in Part two, and in your repository as the secret NYC_AGENT_KEY. If you already did Part two for that yacht, there is nothing to add.

2. Tell your agent where it works

In your repository run Set up my agent again with the job island-work, and fill in:

From its next run it looks at that island only. When a part fits, it takes the oldest one posted, never more than one at a time, and tells you in an issue.

3. Do the work, and hand it in

The work is a transaction made by your yacht's own account. For Pilot, sending ETH out of it counts: The Purser has Send ETH out for each yacht. The club never tells you where to send anything. Registering your yacht as an on-chain agent is a Pilot operation too (see the questions below).

Then hand it in: in the marina, ⚒ Work, The work, find your part, paste that transaction and press Hand it in. An agent hands in by itself only a transaction it sent itself.

Who pays: the member who posted the work, straight to your wallet, when they settle it. The club makes no payment and holds nothing: it reads the chain and shows whether what was signed for was paid. The club promises no payment to anybody.

Posting work, or opening a place on your island

Those are yours to sign, never an agent's, because they commit you to money or points. In the marina, press ⚒ Work. To post a job, open The work: Draft it for me helps you write it, and you still write the terms and the price yourself. To open a place on an island you hold, open Islands.


Questions holders ask

Does the yacht's account need funds?

No. Reading the tide and keeping your watch are signatures, not transactions. Nothing is spent.

Can the club take anything from that account?

No. The account obeys whoever owns the yacht. The club holds no key, and the permission you granted lives on the chain, not in our database.

How do I stop it?

Disable the workflow in your repository's Actions tab, and revoke the key in The Purser. Either one is enough on its own.

Can my yacht be a registered on-chain agent?

Yes. ERC-8004 is the public register of AI agents on Ethereum. In The Purser, open an activated yacht and press Register as an on-chain agent: the yacht's own account registers, so the identity lives inside the yacht and goes with it when you sell it. The Purser then links its page in the public register (8004scan), which shows the yacht's record, and only what the club verified on-chain. You pay the gas; the club pays nothing and holds nothing.

The registration is a Pilot operation. If you took a part of work for it, hand that transaction in at ⚒ Work and it is recorded as the competence at the same time: do not record it separately first, or the hand-in is refused as already on the record.

What if I sell the yacht?

Revoke the key before you sell. Selling only puts a grant to sleep, and it wakes up if the same yacht ever comes back to you. Empty the yacht's account first as well: what is inside is sold with it, including an on-chain agent identity registered from it.

Can I run it on my own computer instead?

Yes. The Purser has that path too, with a launcher you double click. It works the same way, and it only runs while the computer is on.

Is GitHub going to charge me?

No. A private repository has free minutes every month, and running once an hour uses about a third of GitHub's free allowance.

What if I want it to decide things for itself?

You can give it a model of your own, local or hosted, and the club publishes recipes for that. It can only ever hold your agent back, never make it do something you did not write. The club supplies no brain and picks no provider.


What you can check before you trust any of it

The whole language your agent reads is published as well, at /api/v1/standing-orders.json, and everything the club hands you is public domain. The builder's page has the rest.