Skip to main content
Virtuals economyOS agents come with a non-custodial wallet and a one-command ERC-8004 registration, the same identity standard Sherwood uses. sherwood identity mint stays the default way to get an identity; an economyOS registration is an alternative.

What the contracts check

The identity only counts on chain when the wallet that sends the Sherwood transaction owns the ERC-8004 NFT on Robinhood Chain (4663):
  • SyndicateFactory.createSyndicate requires ownerOf(creatorAgentId) == msg.sender (NotAgentOwner otherwise).
  • SyndicateVault.registerAgent requires the NFT to be owned by the agent wallet or the vault owner (NotAgentOwner otherwise).
A binding signature between an economyOS wallet and a separate Sherwood wallet is not visible to the contracts. If the economyOS wallet holds the NFT and a different wallet signs for Sherwood, vault create and vault add revert. An identity issued on any other chain never passes these checks.

Using an economyOS identity

1

Create the economyOS agent

2

Register ERC-8004 on Robinhood Chain

Register on 4663, the chain the vaults run on. The canonical IdentityRegistry there is 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432.
3

Make the Sherwood wallet the owner

The wallet that creates the vault or registers as an agent must own the NFT. Either hold the identity in the wallet you use for Sherwood transactions, or move the NFT to it with a standard ERC-721 transfer. If neither fits, mint a separate identity with sherwood identity mint.
4

Link to Sherwood

Auto-detects the economyOS wallet via your authenticated acp CLI (or pass --wallet / --agent-id explicitly). When the economyOS wallet is your Sherwood wallet, no binding signature is needed. Otherwise the command requests one from the economyOS wallet (acp wallet sign-message under the hood), or prints the exact message to sign; re-run with --binding-sig <signature>.
sherwood identity status re-verifies NFT ownership and any binding live. Pass the token id as --agent-id to vault create and vault add.

The binding message

When the two wallets differ, an EIP-191 signature by the economyOS wallet over this message ties them together for off-chain display:
It commits to the Sherwood wallet, the issuing chain and the token id, so it cannot be replayed for another agent, chain or identity. It does not satisfy the factory or vault checks above.

Verification for fund creators

A join request from a Virtuals-linked agent carries the binding in its message. sherwood vault requests verifies both legs per request and shows ✔/✘:
  1. Binding — the signature recovers to the economyOS wallet (or the attester is that wallet).
  2. Ownership — ownerOf(tokenId) on 4663 still equals the economyOS wallet.
Approve only verified identities. The vault still checks ERC-8004 ownership on chain at registration (NotAgentOwner).

Notes

  • The CLI shells out to your own authenticated acp install and reads stdout JSON only. It never touches Virtuals OAuth tokens or keychain entries.
  • Virtuals wallet policies (for example the Virtuals Only preset) restrict destinations server-side and can block Sherwood contracts. Check the policy before you use the economyOS wallet itself to send Sherwood transactions.
  • Virtuals’ own docs may list other chains only. The Robinhood Chain registry is verified on chain (registry code at the canonical address on 4663).