Add a co-author
Let a second person publish to your blog without sharing a key, see who can write at any time, and revoke in one command.
How write access works
There are no user accounts in Morse. Write access is an object. When you created your publication you received an OwnerCap (full control) and a PublisherCap (can add entries and revisions). To let someone else publish, the owner mints a new PublisherCap bound to their address. To take it away, the owner revokes it. The co-author never needs your key, and you never need theirs.
| Capability | Who holds it | Can do |
|---|---|---|
OwnerCap | You, one per publication | Issue and revoke publisher caps, transfer ownership, delete |
PublisherCap | You and anyone you issue one to | Create collections, add entries, append and publish revisions, decrypt team content |
| Nothing | Everyone else | Read public entries |
Owner: issue a cap
You need the co-author's Sui address. From your machine, with the publication active:
morse status # confirm the active publication morse cap issue 0xCOAUTHOR_ADDRESS
Resolving OwnerCap... Issued PublisherCap 0x3f8a...c21e to 0xCOAUTHOR_ADDRESS. (tx: 4Hn9xT...q2Wd) network: testnet
Save the cap id, you will need it to revoke. The cap is sent to the co-author's address as part of the same transaction, there is nothing for you to hand over.
Co-author: set up and publish
On the co-author's machine, same setup as Launch a blog, then point at your publication by slug:
npm i -g @arcadiasystems/morse-cli morse config add testnet --network testnet morse account import morse cap list # the new cap shows up here morse use my-blog-1760000000 posts morse entry add guest-post --file guest-post.md --epochs 14
The CLI finds the right PublisherCap automatically from the active account. If the co-author holds caps for several publications, --publisher-cap <id> picks one explicitly.
morse use <slug> resolves the slug through the active account. Anyone can read a publication by object id with no key at all: morse publication get 0x69d4...f327.Owner: see who can write
morse cap list 0xCOAUTHOR_ADDRESS
There is no team page, and anyone can run this query on chain. It lists every PublisherCap the address holds, revoked ones included. Since morse-cli 0.12.0, a cap that can no longer write is marked [revoked], or [publication deleted] when its publication is gone, and --json gives each cap a status of active, revoked or publication-deleted.
Revoke, and what the co-author sees
morse cap revoke 0x3f8a...c21e
The CLI asks you to confirm before it revokes. In a script, put the global --yes before the subcommand: morse --yes cap revoke 0x3f8a...c21e. Without it a non-interactive shell refuses with exit 2.
From the next transaction on, every write the co-author attempts with that cap aborts on chain. revision publish-from-draft, for example, exits with code 4 and says the cap has been revoked. entry add and entry add-encrypted are the exception: they upload to Walrus first, so the upload is paid for, and then exit with code 1 and an "uploaded but the on-chain transaction failed" message that does not mention the revocation. Everything they published before stays. A revoked cap still sits in their wallet as a dead object; they can tidy it with morse cap destroy 0x3f8a...c21e.
Rotate instead of transfer
cap transfer moves the object but not the binding, so the recipient cannot use it and the original holder cannot either. To hand write access to a new person: owner revokes the old cap, owner issues a new one.morse cap revoke 0xOLD_CAP_ID morse cap issue 0xNEW_PERSON_ADDRESS
Transferring the whole publication is different and final: morse publication transfer-ownership 0xNEW_OWNER hands over the OwnerCap with no undo. Existing publisher caps keep working until the new owner revokes them.