Skip to content

Add Cavos under Smart Account & Authentication - #185

Open
adrianvrj wants to merge 2 commits into
stellar:mainfrom
adrianvrj:add-cavos-ecosystem-entry
Open

adrianvrj wants to merge 2 commits into
stellar:mainfrom
adrianvrj:add-cavos-ecosystem-entry

Conversation

@adrianvrj

Copy link
Copy Markdown
Contributor

Stellar mainnet proof, @cavos/kit 0.5.3: account, create tx sponsored by the Cavos relayer, USDC trustline tx.

Adds Cavos to skills/standards/ecosystem.md under Smart Account & Authentication. This is the listing closed on #112 and #121 for lack of public mainnet evidence. The Community Built skill landed in #183.

Changes from #121, against the 0.5.3 source:

Disclosure: I build Cavos.

@stellar-triage-bot

Copy link
Copy Markdown
Contributor

🤖 Automated message from the Stellar Triage Bot.

👀 Picked this up — a review will follow shortly.

@stellar-triage-bot

Copy link
Copy Markdown
Contributor

🤖 Automated message from the Stellar Triage Bot.

Thanks for coming back with this, @adrianvrj, and for the clear disclosure. The entry is tight and matches its neighbours, and create() from #183 makes the sponsorship bullet true.

What I checked against @cavos/kit 0.5.3 (npm latest, gitHead d8d8d73):

  • The HKDF info string cavos-ed25519-stellar-v1 is in src/secret/derive.ts.
  • Soroban auth entries are signed with authorizeEntry. The relayer only sponsors and pays fees. On chain, the example account has one signer, its own key.
  • Every link resolves. cavos.xyz and the docs page send our runner a Cloudflare challenge, but llms.txt returns 200.
  • The account, create tx and USDC trustline tx in the PR body match Horizon.

One item for you: the React Native and Node part of the key-storage line.

  1. For Stellar, Cavos.connect passes deviceKey but no factor (src/Cavos.ts:305-329). Solana and Starknet pass factor.
  2. CavosStellar does not use deviceKey (_deviceKey, CavosStellar.ts:166). The native path falls back to WebCryptoDeviceUnwrapKey (nativeAccount.ts:73-79).
  3. The React Native provider connects without vault, socialRecovery or passkey (react-native/CavosProvider.tsx:109-124). So Stellar takes the older random-key path, not the MasterDEK path.

So I cannot confirm "the OS keystore on React Native" or "caller-supplied on Node" for Stellar. Could you fix the kit, or scope the line to the browser? Your skill (SKILL.md:58) and docs have the same sentence.

A small point: the vault is the default only in the React provider when appId is set. In core Cavos.connect it is opt-in.

Two decisions belong to a maintainer:

  • Mainnet bar. The docs list Stellar as Available on mainnet with no caveat. But all the on-chain evidence is from today. The sponsor account GDJZ…Q6UE was created at 14:36 UTC with 4 XLM, one minute before the example account, and has sponsored only that account.
  • The listing. You build Cavos, so the listing is a maintainer's call.

@kaankacar over to you. I opened a tracking issue and I am not merging this.

@adrianvrj

Copy link
Copy Markdown
Contributor Author

Thanks. Scoped to the browser rather than claiming React Native or Node:

Making Stellar use the device key on React Native is tracked as kit work, not claimed here.

@stellar-triage-bot

Copy link
Copy Markdown
Contributor

🤖 Automated message from the Stellar Triage Bot.

Thanks, @adrianvrj. That was a quick and careful fix, and scoping to the browser is the honest call.

I checked the new head against @cavos/kit 0.5.3 (gitHead d8d8d73):

The open item from my last comment is resolved. I have no more technical requests.

The hold stays open. The mainnet bar and the listing are still decisions for @kaankacar, so I am not merging this.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant