diff --git a/docs/projects/stellar-registry.md b/docs/projects/stellar-registry.md index 8e1a5f5..fd48bb6 100644 --- a/docs/projects/stellar-registry.md +++ b/docs/projects/stellar-registry.md @@ -9,14 +9,10 @@ budget: "50000" # Stellar Registry - - _Stellar Registry is an on-chain smart contract registry for Soroban that lets developers publish, version, discover, and deploy Wasm binaries and contract instances, making contracts reusable across the ecosystem like packages._ - - | | | | -------------------- | -------------------------------------------------------------------------------------------------- | | **Category** | Developer Experience | @@ -28,8 +24,6 @@ the ecosystem like packages._ ## Project Description - - Registry is the missing infrastructure layer between "I wrote a smart contract" and "the ecosystem can safely use my smart contract." @@ -44,555 +38,344 @@ Registry tracks two things: Registry makes these usable. It gives them both names and _versions_, making the development experience feel like familiar package management—like crates.io or NPM. - - ## Team & Experience - - -Scaffold Stellar is built and maintained by **The Aha Company** (formerly Aha Labs), a team of 10+ +Scaffold Stellar is built and maintained by **The Aha Company**, a team of 13+ senior engineers deeply embedded in the Stellar ecosystem. -**Early Soroban origin:** - -In 2022 (before Soroban had a name) SDF already had a clear ambition: launch their upcoming smart -contract platform with a “batteries-included” developer experience. The gap was execution capacity: -there was no in-house team available to design and implement the developer workflows needed to make -that promise real. Tyler van der Hoeven went to major blockchain conferences to find the right team, -and identified **The Aha Company** as the team with the right combination of product mindset and deep -technical ability to “install the batteries.” - -**Foundational Stellar developer workflows we designed and shipped:** - -We envisioned, architected, and implemented several of the workflows that have become core to Soroban -development on Stellar, including: - -- **Stellar CLI smart contract workflows,** such as the `contract invoke` behavior and associated - developer ergonomics that leapfrog, rather than ape, other blockchain ecosystems, simplifying - testing, deployment, and interaction. -- **JavaScript developer experience patterns,** including the **Contract Client** behavior in - **stellar-sdk-js**, which helps application developers interact with contracts more safely and - predictably. - -**Why we were selected for Scaffold Stellar and our SCF track record:** - -In early 2025, SDF searched for a team that could bring a ScaffoldETH-like end-to-end experience to -Stellar. They selected us based on: - -1. our deep **CLI & JS expertise** proven through shipped core tooling, and -2. our track record delivering developer infrastructure via SCF, including: - - **Smart Deploy**: - [https://communityfund.stellar.org/project/smart-deploy-yoj](https://communityfund.stellar.org/project/smart-deploy-yoj) - - **Loam**: - [https://communityfund.stellar.org/project/loam-qj5](https://communityfund.stellar.org/project/loam-qj5) - -Scaffold Stellar is a direct continuation of that work: turning the hard-won Developer Experience -(DevX) knowledge from core tooling into a “front door” experience that helps developers go from idea -to proof-of-concept quickly, with strong defaults and a convention-over-configuration approach. - -**Ongoing maintenance and production-grade integration experience:** - -Since then, we have remained engaged with SDF to support and maintain key tooling (most recently -improving Stellar CLI handling of **hardware-based keys**) and we continue to operate as an -integration partner on production deployments. Notably, we **architected and developed Société -Générale’s EURCV** on Stellar (now live), bringing a rigorous, real-world perspective to developer -tooling and reliability requirements. - -**Deep community participation and ecosystem leadership:** - -Our team includes well-known ecosystem contributors. Several members hold key community roles (e.g., -**SCF Pilot**, **category delegates**) and actively build their own SCF projects (e.g., **Moonlight, -Tansu, Stellar Merch Store, PG Atlas**). We contribute to protocol and tooling discussions, provide -developer support at hackathons and conferences, and invest heavily in community outreach and -education. We show up consistently at major events and actively communicate about Stellar, both its -strengths and the practical realities builders need to know. - -**Cross-ecosystem perspective (DevX benchmarking):** - -Beyond Stellar, The Aha Company is also an integration partner in other ecosystems (e.g., **Filecoin, -XRPL, Cardano, Canton, Starknet**). This gives us a unique ability to benchmark developer experience -across chains and bring proven patterns back to Stellar—while keeping Scaffold Stellar aligned with -what developers expect from modern, full-stack tooling. - - +_Copy/update rest of bio from [Q3 proposal](https://github.com/SCF-Public-Goods-Maintenance/scf-public-goods-maintenance.github.io/pull/117)_ ## Retroactive Impact - +In Q3 2026... -In Q2 2026 the Registry grew from a testnet prototype into production infrastructure — deployed to -mainnet at the close of the quarter — with its own organization, on-chain governance, verified -builds, and a real data platform behind rgstry.xyz. +## Q3 Deliverables -**The Registry is live on mainnet.** The registry contract is deployed to Stellar mainnet at its -deterministic, salt-derived ID `CDU4M3LDIOUJJ5F3YXKJ4EJEP5VPRPG6N2LJ5HOQIMN7MNGL3NS3EGUY` (baked into -the CLI) via the phased deploy pipeline (stellar-registry/contracts#14, merged 2026-07-06), seeded -with verified ecosystem contracts (circle, soroswap, blend, defindex, xlm). The mainnet indexer -pipeline and the rgstry.xyz mainnet cutover are rolling out this week. +### ✅ D1: Complete the Mainnet Launch (carried from Q2) -**Registry became standalone infrastructure.** The Registry was split out of the -theahaco/scaffold-stellar monorepo into its own GitHub organization, -[github.com/stellar-registry](https://github.com/stellar-registry), with four repos — `cli`, -`contracts`, `ui`, and `indexer` — each with full history preserved, scoped CI, dependabot, and -rewritten documentation. The Registry now stands on its own, as promised in our Q2 proposal ("the -Registry stands independently and is designed to serve the entire Soroban developer community"). - -**Five on-chain registry releases.** Registry contract versions v0.5.0 through v0.6.2 shipped in -April, adding contract flagging with a gas-optimized storage encoding (unflagged entries pay zero -overhead on the hot invocation path), `SubRegistry` events, cross-registry deploys -(`deploy_with_subregistry`) that record provenance on Deploy events, deterministic salt-derived -contract IDs, and dry-run deploy options. - -**On-chain governance shipped.** The Tansu-DAO-gated registry manager contract merged -(stellar-registry/contracts#5): a manager whose `trigger(proposal_id)` entry point executes an -approved Tansu DAO proposal (e.g. `registry.publish_hash` / `registry.deploy`) in a single -transaction. Verified live end-to-end on testnet: proposal → vote → trigger → publish, with -replay-guard rejection confirmed. - -**Verified builds are live.** We adopted the stellar-expert/soroban-build-workflow for releases -(stellar-registry/contracts#10), replacing 243 lines of bespoke CI with environment-gated, OIDC -build-provenance-attested releases, and published the first verified build of the registry contract. -We also submitted a Contract Source Verification RFP to the SCF Build Award RFP track and -collaborated with Ethan Frey (Confio) on its technical architecture. - -**The indexer went v1.** The first mainnet-ready pipeline & API (stellar-registry/indexer#5) moved -data into a versioned schema, added auto-discovery of named subregistries (oz, blend, soroswap, -defindex), and grew an archive pipeline exposing full per-contract version history -(stellar-registry/indexer#14), including versions that predate contract's addition to Stellar -Registry. June added structured logging with request-id tracing and a trigram index enabling fuzzy -server-side search (stellar-registry/indexer#23). +Description from last quarter: -**rgstry.xyz matured.** The UI gained a testnet/mainnet network switch with per-environment -Cloudflare Worker deploys, in-UI usage guides for the import macros, README/LICENSE rendering from a -contract's GitHub repo, contract metadata on detail pages, server-side search, and request-id-traced -error reporting — 18 merged PRs in the quarter. +> With the registry contract live on mainnet, finish the public rollout: run the mainnet indexer +pipeline, point rgstry.xyz at the mainnet API and remove the "Coming Soon" banner, and land +secure-store/Ledger signing in the CLI (stellar-registry/cli#14) so admin operations never expose a +raw secret key. +> +> Proof: mainnet data live and browsable at rgstry.xyz, the contract visible on Stellar Expert, and +named contracts resolvable via `stellar registry` CLI. -**Releases and toolchain.** Crates published: `stellar-registry` v0.0.8–v0.0.10, -`stellar-registry-cli` v0.0.20/v0.0.21, `stellar-registry-build` v0.0.8. The contracts and CLI both -moved to soroban-sdk v27 / stellar-cli v27 (stellar-registry/contracts#11, stellar-registry/cli#13). +#### ✅ Complete - +- Mainnet data is now fully indexed in Goldsky (https://github.com/stellar-registry/indexer/pull/25) and queryable via API calls at https://stellar-registry-mainnet.fly.dev/ +- [stellar.rgstry.xyz](https://stellar.rgstry.xyz) now live as the "primary" subdomain (with [rgstry.xyz](https://rgstry.xyz) redirecting to it) +- [Registry contract](https://stellar.rgstry.xyz/contracts/registry) visible [on Stellar Expert](https://stellar.expert/explorer/public/contract/CDU4M3LDIOUJJ5F3YXKJ4EJEP5VPRPG6N2LJ5HOQIMN7MNGL3NS3EGUY) +- All `stellar registry` commands working across both testnet and mainnet (see @kalepail's request at stellar-registry/gov#1 as proof) -## Past Deliverables +#### ⚠️ Pending - +Q3 stretch goal (not hard-committed in Q3 deliverables; nice-to-have): -Every deliverable below has merged, verifiable work behind it this quarter; where release mechanics -remain, the item states exactly what is left. We also shipped substantial infrastructure beyond the -proposed scope — see "Beyond the proposal" at the end of this section. +- stellar-registry/cli#14 -### D1. Mainnet Deploy of Stellar Registry +### ✅ D2: Release `import_contract!` (carried from Q2) Description from last quarter: -> Deploy the Registry smart contract to Stellar mainnet and confirm it is publicly accessible via -> `stellar registry` CLI and `rgstry.xyz`. +> Merge stellar-registry/cli#17 and publish the macro in released crates, documented with at least one working example and covered by integration tests. > -> Measure: the contract is deployed & the CLI points to it. +> Proof: a crates.io release containing `import_contract!`, linked docs and example, CI running the integration tests. -Proof of completion: +#### ✅ Complete -- https://stellar.expert/explorer/public/contract/CDU4M3LDIOUJJ5F3YXKJ4EJEP5VPRPG6N2LJ5HOQIMN7MNGL3NS3EGUY - — the registry contract live on mainnet at its deterministic, salt-derived ID -- https://github.com/stellar-registry/contracts/pull/14 — merged 2026-07-06: phased, - dry-run-by-default `deploy_mainnet.sh` plus verified mainnet seed data (circle, soroswap, blend, - defindex, xlm), with every contract ID resolved from authoritative sources and confirmed live on - Pubnet -- https://github.com/stellar-registry/indexer/pull/5 — "the first mainnet-ready pipeline & API" -- https://github.com/stellar-registry/ui/pull/1 — testnet/mainnet network switch and per-environment - Cloudflare Worker deploys; Mainnet UI scaffolding at stellar.rgstry.xyz +The macro has landed! This was a hefty engineering task that entailed two large-scale re-architectures, code consolidation from other repositories (`stellar-scaffold/cli` repo is no longer the home of related macros `import_contract_client!` and `import_asset!`), and the creation of a new [`stellar-registry-name` crate](https://crates.io/crates/stellar-registry-name). With this release, we declared all Stellar Registry crates to have reached official beta, marking them all as [version 0.1.0](https://github.com/stellar-registry/cli/releases). -**Deployed to mainnet.** The phased deploy pipeline merged and executed at the close of the quarter: -the registry contract is live on mainnet at its deterministic ID, seeded with verified ecosystem -contracts, and resolvable via the `stellar registry` CLI (the mainnet ID ships baked into the CLI). -Remaining for full public accessibility: the mainnet indexer pipeline and pointing -[rgstry.xyz](https://rgstry.xyz) at mainnet — rolling out this week — plus secure-store/Ledger -signing for admin operations (stellar-registry/cli#14). +- See `import_contract!` documentation and examples at both [crates.io](https://crates.io/crates/stellar-registry) and [docs.rs](https://docs.rs/stellar-registry) +- Comprehensive unit tests for `import_contract!` added in macro's [introductory PR at `crates/stellar-registry-macro/src/contract.rs`](https://github.com/stellar-registry/cli/pull/17/changes#diff-c9fd228d9177e15a059824ea2767bae20b7a7a80a87ddcbed776737b87f3b191); all tests run [on every commit to the GitHub repo](https://github.com/stellar-registry/cli/actions/workflows/rust.yml) -### D2. `import_contract!` Macro +#### ⚠️ Pending -Description from last quarter: - -> Publish a working `import_contract!` macro in the `stellar-registry` crate that allows -> cross-contract client instantiation with a single line of Rust. -> -> Measure: the macro is available in a released crate version, documented with at least one working -> example, and covered by integration tests. +Q3 stretch goal (not hard-committed in Q3 deliverables; nice-to-have): -Proof of completion: +- stellar-registry/contracts#24 -- https://github.com/stellar-registry/cli/pull/17 — full implementation: a proc-macro crate where - `stellar_registry::import_contract!(env, name)` returns a soroban Client pre-bound to the named - contract's deployed address, resolved at build time, with 13 unit tests -- https://github.com/stellar-registry/ui/pull/6 — in-UI usage guides for the import macros -- https://github.com/stellar-registry/ui/pull/10 — real contract IDs in the macro examples shown on - every contract page +Once this is done, people will have not just the documentation examples from crates.io and docs.rs, but a cookbook-style example using real working code. -**Shipped — release mechanics left.** The macro is implemented, tested (13 unit tests, -pedantic-clippy clean), and in final review, and rgstry.xyz already teaches developers how to use the -import macros on every contract page. The crates.io publish lands days into Q3. - -### D3. Flagged Contract Enforcement at Build Time +### ✅ D3: Flagged Contract Enforcement at Build Time (carried from Q2) Description from last quarter: -> Extend `import_contract!` and `import_contract_client!` to emit a compile-time error when the -> referenced Wasm or Contract is flagged in the Registry. +> Extend `import_contract!` / `import_contract_client!` to fail compilation when the referenced Wasm or Contract is flagged in the Registry, building on the on-chain flagging that shipped in April. > -> Measure: a test exists that demonstrates a flagged contract causes a build failure, and the -> behavior is documented. +> Proof: a test demonstrating a flagged contract causes a build failure, and documented behavior. -Proof of progress: +#### ✅ Complete -- https://github.com/stellar-registry/contracts/commit/de06277 — on-chain contract flagging with a - gas-optimized storage encoding (flag encoded in vec length, so unflagged entries pay zero overhead - on the hot path), `FlagContract` events, and error types -- https://github.com/stellar-registry/cli/pull/17 – PR for D2 implements compile-time error - mechanics, preventing contracts from building when their source contracts have been flagged. +- `import_contract!` introductory PR added flagged-contract handling (see [in PR's `crates/stellar-registry-macro/src/contract.rs#157`](https://github.com/stellar-registry/cli/pull/17/changes#diff-c9fd228d9177e15a059824ea2767bae20b7a7a80a87ddcbed776737b87f3b191R157-R161) or [on `main`](https://github.com/stellar-registry/cli/blob/a492843105391d401b5bab351a591dea2c6ca2d3/crates/stellar-registry-macro/src/contract.rs#L157-L161)) +- Integration test demonstrating/proving this behavior added in follow-up stellar-registry/cli#60 (Note that this test enforces `stellar registry fetch-contract-id` to fail-by-default for flagged contracts. Since `import_contract!` relies on `fetch-contract-id`, it also satisfies the requirement to prove the behavior for the macro.) -### D4. Server-Side Search, Pagination & Sorting on rgstry.xyz +### ✅ D4: Finish Search, Pagination & Sorting on rgstry.xyz (carried from Q2) Description from last quarter: -> Replace the current client-side full-data-fetch approach with API-backed search, pagination, and -> sorting on `rgstry.xyz`. +> Extend server-side search to contracts (stellar-registry/indexer#24), fix search-result updating (stellar-registry/ui#22), and ship pagination and sorting so the explorer handles 1,000+ entries without degraded load time. > -> Measure: the explorer handles at least 1,000 published Wasms/Contracts without degraded load time, -> search returns results server-side, and pages load incrementally. - -Proof of completion: +> Proof: live on rgstry.xyz; search, pagination, and sorting demonstrated against a 1,000+ entry dataset. -- https://github.com/stellar-registry/indexer/pull/23 — trigram index enabling fuzzy server-side - search -- https://github.com/stellar-registry/ui/pull/21 — wasm list wired to the backend search API with a - debounced search hook -- https://github.com/stellar-registry/indexer/pull/24 — (open) extends trigram/full-text search to - the contracts table +#### ✅ Complete -**Shipped for Wasms — live in production.** Server-side fuzzy search is merged and answering queries -on rgstry.xyz today, and the API already supports limit/cursor pagination. Remaining: the same -treatment for contracts (stellar-registry/indexer#24, open), the explorer's pagination/sorting UX, -and validation against a 1,000+ entry dataset. +- stellar-registry/indexer#24 -### D5. rgstry.xyz UI Enhancements +### ✅ D5: Contract Explorer, Deploy Button & Verified-Build Badges (carried from Q2) Description from last quarter: -> Ship three specific improvements to the Registry web explorer: +> Ship the remaining explorer features: the embedded Contract Explorer on contract detail pages, a "deploy this Wasm" button, the remaining `stellar contract info meta` fields surfaced on detail pages, and verified-build status from Stellar Expert on contract detail pages. > -> 1. Contract Explorer embedded on contract detail pages -> 2. `stellar contract info meta` metadata surfaced on Wasm and Contract detail pages -> 3. A "deploy this Wasm" button that initiates a Registry deploy from the UI -> -> Measure: all three features are live on the production `rgstry.xyz` site and manually verified -> against at least one mainnet contract. - -Proof of completion: +> Proof: all features live on production rgstry.xyz, manually verified against at least one mainnet contract. -- https://github.com/stellar-registry/indexer/pull/15 — `stellar contract info meta` metadata parsed - and exposed in the wasm-detail API (item 2, backend half — the API serves rsver, SDK, CLI, and - build versions plus source repo) -- https://github.com/stellar-registry/ui/pull/13 — README.md and LICENSE fetched and rendered from a - contract's GitHub repo -- https://github.com/stellar-registry/ui/pull/23 — (open) form for deploying unnamed (unregistered) - contract from a Wasm detail page, shipping days into Q3 -- https://github.com/stellar-registry/ui/pull/24 — (open) form for interacting with a deployed - contract from its rgstry.xyz detail page, shipping days into Q3 +#### ✅ Complete -**Backend and page richness shipped.** The metadata API (item 2's backend) is live and serving the -full `contract info meta` fields, and contract pages gained README/LICENSE rendering beyond the -proposed scope. Remaining: surfacing the rest of the metadata fields in the UI, the embedded Contract -Explorer (item 1), and the deploy button (item 3). +- https://github.com/stellar-registry/ui/pull/23, Deploy from Wasm + - prereq: https://github.com/stellar-registry/indexer/pull/32, Extract Wasm Details webhook +- https://github.com/stellar-registry/ui/pull/24, Contract Explorer +- https://github.com/stellar-registry/ui/pull/57, Verified Build (SEP-55) badge from Stellar Expert data + - prereq: https://github.com/stellar-registry/indexer/pull/40, Fetch data once-per-registered contract on the indexer side -### D6. Verified Build Integration with Stellar Expert +### ⚠️ D6: Governance Operations UI Description from last quarter: -> Display verified build status from Stellar Expert's API on Registry Wasm and Contract detail pages. +> Ship the governance proposal forms (stellar-registry/ui#51): propose adding a Wasm or contract to the root registry, creating a subregistry, or changing owners — executed through the Tansu-DAO-gated registry manager contract that merged in Q2. > -> Measure: the verified build badge or indicator is visible on at least one Wasm detail page with a -> known verified contract, and the integration is live in production on `rgstry.xyz`. +> Proof: a governance proposal created from rgstry.xyz, voted on in Tansu, and executed on-chain via `trigger`, with the transaction linked. + +#### ✅ Complete + +Tracking issue: https://github.com/stellar-registry/ui/issues/51. A new Governance section on rgstry.xyz hosts one form per operation. On testnet, a form builds the on-chain outcome transaction, pins `proposal.md` to IPFS, and creates a Tansu proposal signed with the user's wallet. On mainnet, the form opens a prefilled issue in https://github.com/stellar-registry/gov. -Proof of completion: +- https://github.com/stellar-registry/ui/pull/67, add contract to root registry (https://github.com/stellar-registry/ui/issues/53) +- https://github.com/stellar-registry/ui/pull/68, same-origin IPFS pinning route for governance proposals +- https://github.com/stellar-registry/ui/pull/71, add Wasm to root registry (https://github.com/stellar-registry/ui/issues/52); mainnet issue template https://github.com/stellar-registry/gov/pull/2 +- https://github.com/stellar-registry/ui/pull/81, create a new subregistry (https://github.com/stellar-registry/ui/issues/54); mainnet issue template https://github.com/stellar-registry/gov/pull/3 +- "Change wasm owner" / "change contract owner" forms dropped (https://github.com/stellar-registry/ui/issues/55, https://github.com/stellar-registry/ui/issues/56): Wasm authorship transfer is now handled via `preauthorize_author_transfer` (https://github.com/stellar-registry/contracts/pull/34), but long-term need for this as a governance form has been judged dubious upon further review. (In the short-term, Wasms & Contracts seeded as part of initial Registry rollout need to be transferred to their appropriate teams. Beyond this one-time mass authorship reassignment, there will be no steady-state demand for this governance operation.) -- https://github.com/stellar-registry/contracts/pull/10 — releases now use the - stellar-expert/soroban-build-workflow: environment-gated, with OIDC build-provenance attestation -- https://github.com/stellar-registry/contracts/releases — first verified build of the registry - contract published -- https://github.com/stellar-registry/cli/pull/9 — Contract Source Verification Service RFP submitted - to the SCF Build Award RFP track, with architecture collaboration from Ethan Frey (Confio) - (stellar-registry/cli#11, #12) +#### ⚠️ Pending -**Shipped — Registry releases are themselves verified builds.** Every registry contract release is -now built by the stellar.expert workflow with OIDC build-provenance attestation, and the first -attested release is public. Remaining: displaying the badge on rgstry.xyz detail pages — targeting -contract pages, since we established Stellar Expert has no Wasm-level pages (stellar-registry/ui#17). +- Proof still outstanding: create a proposal from rgstry.xyz, vote it through in Tansu, execute via `trigger`, and link the transaction here + - Will be provable at 3:09PM NYC 1 Oct by triggering the outcome for https://testnet.tansu.dev/proposal/?id=11&name=stellarregistry -### D7. Registry Documentation & Education +### ✅ D7: Registry Documentation & Education (carried from Q2) Description from last quarter: -> Publish complete Registry documentation and videos covering: +> Publish the Registry docs site and video series covering publishing a Wasm, deploying named and unnamed contracts, using `import_contract!`, and publishing/releasing via the verified-build CI workflow. > -> - publishing a Wasm -> - deploying a named contract -> - using `import_contract!` -> - deploying an unnamed contract -> - publishing/releasing using CI workflow -> - more! -> -> Measure: documentation is live on Registry's own docs site & The Aha Company's YouTube channel. - -Proof of completion: +> Proof: documentation live on the Registry docs site and videos on The Aha Company's YouTube channel. -- https://scaffoldstellar.org/docs/registry — the Registry Guide is live (overview, - verified/unverified registries, name resolution, publish/deploy CLI usage) and linked as "Guide" - from the rgstry.xyz nav -- https://github.com/stellar-registry/ui/pull/6 — in-UI usage guides for the import macros, shown on - every contract and wasm page -- https://github.com/stellar-registry/cli — README and contributor docs rewritten for the standalone - repo (likewise for contracts, ui, and indexer) -- https://github.com/stellar-registry/cli/pull/17 — design spec and implementation plan documents for - `import_contract!` +#### ✅ Complete -**Docs shipped in the product; the guide is live.** The Registry Guide is live and linked from the -rgstry.xyz nav, every contract and wasm page carries usage guides, and all four standalone repos got -rewritten documentation. Remaining: moving the guide to Registry's own docs site, `import_contract!` -coverage (follows the D2 release), and the video series. +- Stellar Registry Full Walk-Through published to The Aha Company YouTube, https://www.youtube.com/watch?v=xAlWmJOdMSQ, takes the place of originally-planned many-video approach (https://github.com/stellar-registry/cli/issues/46, https://github.com/stellar-registry/cli/issues/47, https://github.com/stellar-registry/cli/issues/48) +- https://github.com/stellar-scaffold/cli/issues/437, Scaffold Tutorial's Registry docs updated -### Beyond the proposal +#### ⚠️ Pending -Infrastructure we shipped this quarter that was not in the Q2 deliverables: +- https://github.com/stellar-registry/cli/issues/34, Present at Stellar Community Call: Kaan aware of intent to present; waiting to be scheduled -- **Standalone organization**: the Registry split out of the scaffold-stellar monorepo into - https://github.com/stellar-registry — four repos (cli, contracts, ui, indexer) with full history - preserved, scoped CI, and dependabot. -- **On-chain governance**: the Tansu-DAO-gated registry manager contract - (stellar-registry/contracts#5), merged and verified live on testnet end-to-end (proposal → vote → - trigger → publish, replay-guard confirmed). -- **Protocol currency**: contracts migrated to soroban-sdk v27 / stellar-cli v27 - (stellar-registry/contracts#11; stellar-registry/cli#13). -- **Contract version history**: an archive indexer pipeline capturing factory-pattern deploys and - exposing full per-contract version history beyond Registry's existence - (stellar-registry/indexer#14). -- **Source verification RFP**: a Contract Source Verification Service RFP submitted to the SCF Build - Award track, with architecture collaboration from Ethan Frey (Confio). +Q3 stretch goals: - +- https://github.com/stellar-registry/cli/issues/45, video: replace manual oz contract usage & deploy with The Registry Way +- https://github.com/stellar-registry/cli/issues/44, video: publishing/releasing using CI workflow -## Proposed Impact - +### ✅ D8: Support named G-addresses -**Complete the mainnet launch.** The Registry contract is live on mainnet as of this proposal. Q3 -finishes the public rollout: the mainnet indexer pipeline, rgstry.xyz serving mainnet data with the -"Coming Soon" banner removed, and secure-store/Ledger signing for admin operations -(stellar-registry/cli#14) so permanent ecosystem infrastructure is never administered from a raw -secret key — alongside the Tansu DAO-gated governance already in place. +Description from last quarter: -**Complete the composability story.** Releasing `import_contract!` (stellar-registry/cli#17) lets any -Soroban developer depend on Registry contracts the way they depend on Rust crates, and the -flagged-contract build-time enforcement extends that with compile-time guarantees that compromised -contracts won't ship. +> Just as Registry today allows giving names to Wasms and Contracts, expand it to also allow giving names to G-addresses. These will be displayed in the rgstry.xyz UI, so that the "Deployer" and "Admin" fields become human-friendly names. +> +> Value to ecosystem: a central, open, and collaborative system to add human-friendly names to G-addresses will allow other Stellar tools such as Stellar.Expert to also show friendly names, making the entire ecosystem more usable by existing participants and more welcoming to newcomers. +> +> Proof: code shipped; address system available, documented, and advertised to the community; more than just Aha addresses added and available. -**Make rgstry.xyz a real discovery platform.** Finish server-side search across contracts and Wasms, -pagination and sorting, verified-build badges from Stellar Expert, and governance proposal forms that -let anyone propose adding a Wasm or contract to the root registry directly from the browser — closing -the loop from "found a contract" to "deployed it" without leaving the site. +#### ✅ Complete -**Benefit to the Stellar ecosystem:** The Registry is ecosystem infrastructure, not a product -feature. A mainnet Registry with DAO governance, verified builds, and compile-time safety raises the -baseline security and auditability of every Soroban project that consumes shared contracts, and gives -the ecosystem its first crates.io-style package experience for on-chain code. +Scope was narrowed during Q3 to foundational contract-level support; see tracking issue https://github.com/stellar-registry/cli/issues/51. - +- https://github.com/stellar-registry/contracts/pull/37, register named G-addresses: new `account` namespace in the registry contract with `register_account` and `fetch_account_id`/`fetch_account_owner`, using the same auth style as `register_contract` +- https://github.com/stellar-registry/contracts/pull/38, account lifecycle management for named G-address entries +- M-addresses are out of scope: Soroban's `Address` has no muxed variant, so muxed IDs can't be represented on-chain -## Proposed Deliverables +Displaying names in the rgstry.xyz UI (e.g. "Deployer" and "Admin" fields), CLI support, documentation and community outreach, and onboarding non-Aha addresses will be proposed as Q4 work. - +### ✅ D9: Surface emerging Source Verification information -### D1: Complete the Mainnet Launch (carried from Q2) +Description from last quarter: -With the registry contract live on mainnet, finish the public rollout: run the mainnet indexer -pipeline, point rgstry.xyz at the mainnet API and remove the "Coming Soon" banner, and land -secure-store/Ledger signing in the CLI (stellar-registry/cli#14) so admin operations never expose a -raw secret key. +> The Registry team submitted a [proposal for the Source Verification system RFP](https://communityfund.stellar.org/dashboard/submissions/receWOpMjj7FxAydj). Whether or not our team is awarded this contract, Q3 will see the finalization of underlying SEP-58 and the launch of independent Source Verification services. Registry is a natural place to surface and organize this information and make it useful to the ecosystem. +> +> Value to ecosystem: As the hub that makes Wasms on Stellar discoverable and reusable, Registry is a natural place to surface the Wasm metadata added by SEP-58. Registry is also not _a source verification service_, but a neutral third party that hosts the information provided by many source verification services. A lot of information is being added to the blockchain by this new standard, and Registry gives everyone a way to view and make sense of this information. +> +> Proof: all SEP-58 fields viewable on rgstry.xyz; verification status of those fields by independent Source Verification services also shown in a way that exposes, rather than flattens, disagreement. -Proof: mainnet data live and browsable at rgstry.xyz, the contract visible on Stellar Expert, and -named contracts resolvable via `stellar registry` CLI. +#### ✅ Complete -### D2: Release `import_contract!` (carried from Q2) +- https://github.com/stellar-registry/indexer/pull/49, SEP-58 build fields exposed in the indexer's Wasm meta +- https://github.com/stellar-registry/ui/pull/82, SEP-58 Source Verification section on Wasm detail pages +- https://github.com/stellar-registry/ui/pull/83, same Source Verification section on contract detail pages -Merge stellar-registry/cli#17 and publish the macro in released crates, documented with at least one -working example and covered by integration tests. +#### ⚠️ Pending -Proof: a crates.io release containing `import_contract!`, linked docs and example, CI running the -integration tests. +- We did not receive the grant to work on this RFP. +- We continue to participate in [ongoing RFP discussions](https://github.com/orgs/stellar/discussions/1945#discussioncomment-17897997). +- Who won the RFP? Do they want us to do anything? +- A solution is needed —— "If anyone is sitting on reproduced builds with nowhere to publish them, we are glad to host the records and freeze the evidence behind them in the meantime." https://github.com/orgs/stellar/discussions/1945#discussioncomment-18179311 -### D3: Flagged Contract Enforcement at Build Time (carried from Q2) +### ✅ D10: guide Tansu evolution to support Registry needs -Extend `import_contract!` / `import_contract_client!` to fail compilation when the referenced Wasm or -Contract is flagged in the Registry, building on the on-chain flagging that shipped in April. +Description from last quarter: -Proof: a test demonstrating a flagged contract causes a build failure, and documented behavior. +> Harnessing Tansu for Registry's governance required significant effort and an unsatisfying technical workaround (see above discussion of Tansu-DAO-gated registry manager). We will collaborate with the Tansu team to guide Tansu's evolution, either obsolescing this workaround or sculpting it into a more general and generally-usable shape. +> +> Value to ecosystem: whether for security guarantees as in the case of Registry, or just for open & participatory governance of open-source projects, on-chain governance provides a crucial role to any blockchain ecosystem. Registry's partnership with Tansu ensures the maturity of this solution for all community projects. +> +> Proof: [Registry Tansu Manager contract](https://github.com/stellar-registry/contracts/tree/main/contracts/registry-tansu-manager) either migrates out of the stellar-registry repository to Tansu, becoming easier to use for all ecosystem projects, or becomes altogether unnecessary. -### D4: Finish Search, Pagination & Sorting on rgstry.xyz (carried from Q2) +#### ✅ Complete -Extend server-side search to contracts (stellar-registry/indexer#24), fix search-result updating -(stellar-registry/ui#22), and ship pagination and sorting so the explorer handles 1,000+ entries -without degraded load time. +- Tansu merged the manager into its own repo: [`841dd84`](https://radicle.network/nodes/radicle.consulting-manao.com/rad:zssaAF91kxuquZmZCV2SiK2FNX6s/commits/841dd84790f3b8f2c8ae4fbf65ca10d5a9adab69), "Add the registry manager to tansu itself", merged to Tansu `main` on 2026-09-02 (Radicle tracking issue https://radicle.network/nodes/radicle.consulting-manao.com/rad%3AzssaAF91kxuquZmZCV2SiK2FNX6s/issues/3111b944792c0b5da9f6c8f88e52cdeebd1a3d82) +- Tansu's copy builds against the real Tansu contract rather than our `tansu-stub` +- Documented in Tansu's governance docs: https://github.com/Consulting-Manao/tansu/blob/main/website/docs/developers/governance.mdx#acting-on-other-contracts -Proof: live on rgstry.xyz; search, pagination, and sorting demonstrated against a 1,000+ entry -dataset. +#### ⚠️ Pending -### D5: Contract Explorer, Deploy Button & Verified-Build Badges (carried from Q2) +- Remove the now-duplicate `registry-tansu-manager` and `tansu-stub` from stellar-registry/contracts: https://github.com/stellar-registry/contracts/issues/49 -Ship the remaining explorer features: the embedded Contract Explorer on contract detail pages, a -"deploy this Wasm" button, the remaining `stellar contract info meta` fields surfaced on detail -pages, and verified-build status from Stellar Expert on contract detail pages. +### ✅ D11: Registry GH Workflow to publish Wasms and upgrade contracts -Proof: all features live on production rgstry.xyz, manually verified against at least one mainnet -contract. +Description from last quarter: -### D6: Governance Operations UI +> Wrap the [stellar-expert/soroban-build-workflow](https://github.com/stellar-expert/soroban-build-workflow) and add Registry-specific things: +> +> - build with `stellar scaffold build` instead of `stellar contract build` to ensure inter-contract dependency build order correctness +> - when already-published Wasms are updated with new versions, publish these new versions to Registry +> +> We are intentionally leaving contract upgrades as future work, as this gets into the thorny issue of migrations. It is best to leave contract upgrades as a manual task until tooling around migrations has matured. +> +> This task requires research into how to securely provision keys which only have permission to invoke `publish` on the registry and can be stored in a GitHub workflow and which do not have risky privilege levels. +> +> Proof: new repository available at, say, `stellar-registry/gh-build-workflow`. Documented and tested in production with the Registry wasm itself. -Ship the governance proposal forms (stellar-registry/ui#16): propose adding a Wasm or contract to the -root registry, creating a subregistry, or changing owners — executed through the Tansu-DAO-gated -registry manager contract that merged in Q2. +#### ✅ Complete -Proof: a governance proposal created from rgstry.xyz, voted on in Tansu, and executed on-chain via -`trigger`, with the transaction linked. +- https://github.com/stellar-registry/contracts/pull/53 updates Registry's own contract to get auto-published Wasm on new merges to `main`, https://stellar.expert/explorer/testnet/tx/5793597e4fce5cc536d22263d57bd583d06da2d8e4a648e3b268bc29c0a52cbc demonstrates that it works +- secure on-GitHub keys accomplished via new product Perch, https://github.com/stellar-registry/perch, a "composable policy layer for Soroban smart accounts", which we designed and shipped this quarter in order to achieve this goal -### D7: Registry Documentation & Education (carried from Q2) +#### ⚠️ Pending -Publish the Registry docs site and video series covering publishing a Wasm, deploying named and -unnamed contracts, using `import_contract!`, and publishing/releasing via the verified-build CI -workflow. +- Stretch goal for Q3: https://github.com/stellar-registry/oz-combined-wasms/issues/1, adding new Registry GitHub workflow to our `oz-combined-wasms` repository -Proof: documentation live on the Registry docs site and videos on The Aha Company's YouTube channel. +### ✅ D12: UI: Expose full contract version history -### D8: Support named G-addresses +Description from last quarter: -Just as Registry today allows giving names to Wasms and Contracts, expand it to also allow giving -names to G-addresses. These will be displayed in the rgstry.xyz UI, so that the "Deployer" and -"Admin" fields become human-friendly names. +> The Registry API [now exposes full version history](https://stellar-registry-testnet.fly.dev/v1/contracts/registry), which notably extends into the full history of the blockchain, beyond the launch of the Registry contract itself. This information is not yet exposed [in the rgstry.xyz UI](https://testnet.rgstry.xyz/contracts/registry). This deliverable addresses that mismatch. +> +> Value to ecosystem: making contract upgrades easy to find and analyze aids in troubleshooting and full-blockchain comprehensibility. +> +> Proof: Contract detail pages on [rgstry.xyz/contracts](https://testnet.rgstry.xyz/contracts) display information about full contract history. -Value to ecosystem: a central, open, and collaborative system to add human-friendly names to -G-addresses will allow other Stellar tools such as Stellar.Expert to also show friendly names, making -the entire ecosystem more usable by existing participants and more welcoming to newcomers. +#### ✅ Complete -Issue: https://github.com/stellar-scaffold/cli/issues/421 +- Work completed in PR: https://github.com/stellar-registry/ui/pull/40 + - Some fixes: https://github.com/stellar-registry/ui/pull/62 +- Contract detail pages display contract history -Proof: code shipped; address system available, documented, and advertised to the community; more than -just Aha addresses added and available. +#### ⚠️ Pending -### D9: Surface emerging Source Verification information +Stretch Goal: UI improvements to make "Versions" experience consistent across app: https://github.com/stellar-registry/ui/issues/63 -The Registry team submitted a -[proposal for the Source Verification system RFP](https://communityfund.stellar.org/dashboard/submissions/receWOpMjj7FxAydj). -Whether or not our team is awarded this contract, Q3 will see the finalization of underlying SEP-58 -and the launch of independent Source Verification services. Registry is a natural place to surface -and organize this information and make it useful to the ecosystem. +### ✅ D13: Documentation consolidation & redesign; potential migration of rgstry.xyz -Value to ecosystem: As the hub that makes Wasms on Stellar discoverable and reusable, Registry is a -natural place to surface the Wasm metadata added by SEP-58. Registry is also not _a source -verification service_, but a neutral third party that hosts the information provided by many source -verification services. A lot of information is being added to the blockchain by this new standard, -and Registry gives everyone a way to view and make sense of this information. +Description from last quarter: -Proof: all SEP-58 fields viewable on rgstry.xyz; verification status of those fields by independent -Source Verification services also shown in a way that exposes, rather than flattens, disagreement. +> Implement new logo and design elements, secured in Q2, across rgstry.xyz site and other Registry properties such as GitHub. Organize videos created as part of D7 into landing page and other relevant locations throughout rgstry.xyz. +> +> Discuss with ecosystem partners and SDF potential for a new domain for Registry: rgstry.xyz was never intended to be permanent. Registry could live under an SDF-owned domain, such as registry.stellar.org. This, in turn, may require frontend redesign, swapping current subdomain-based network specification (`testnet.rgstry.xyz` / `stellar.rgstry.xyz`) for URL-based specification. Depending on scope, the actual implementation of any such plan may be a Q4 concern. +> +> Value to ecosystem: consolidates Registry documentation to a single, searchable place, making it simple to onboard and make the most of Registry. +> +> Proof: redesigned site live, videos highlighted throughout, and question of domain's permanent home settled with decision documented and justified. -### D10: guide Tansu evolution to support Registry needs +#### ✅ Complete -Harnessing Tansu for Registry's governance required significant effort and an unsatisfying technical -workaround (see above discussion of Tansu-DAO-gated registry manager). We will collaborate with the -Tansu team to guide Tansu's evolution, either obsolescing this workaround or sculpting it into a more -general and generally-usable shape. +- logo & icons: https://github.com/stellar-registry/ui/issues/41 +- docs consolidation: https://github.com/stellar-registry/ui/issues/42 -Value to ecosystem: whether for security guarantees as in the case of Registry, or just for open & -participatory governance of open-source projects, on-chain governance provides a crucial role to any -blockchain ecosystem. Registry's partnership with Tansu ensures the maturity of this solution for all -community projects. +#### ⚠️ Pending -Issue: https://github.com/stellar-scaffold/cli/issues/527 +- domain move discussion: no public link. History of discussion: -Proof: -[Registry Tansu Manager contract](https://github.com/stellar-registry/contracts/tree/main/contracts/registry-tansu-manager) -either migrates out of the stellar-registry repository to Tansu, becoming easier to use for all -ecosystem projects, or becomes altogether unnecessary. + - @chadoh raised the issue in a thread within [SDF Slack](https://theahaco.slack.com/archives/C04B02ABF37/p1783975268185649?thread_ts=1783975086.044619&cid=C04B02ABF37); no one responded + - @chadoh to raise again in Stellar Community Call when presenting Registry (see [D7](#d7-registry-documentation--education-carried-from-q2)) -### D11: Registry GH Workflow to publish Wasms and upgrade contracts +### ✅ D14: Extend `import_contract!` macro to support SAC and XLM -Wrap the -[stellar-expert/soroban-build-workflow](https://github.com/stellar-expert/soroban-build-workflow) and -add Registry-specific things: +Description from last quarter: -- build with `stellar scaffold build` instead of `stellar contract build` to ensure inter-contract - dependency build order correctness -- when already-published Wasms are updated with new versions, publish these new versions to Registry +> Currently it is difficult to work with Stellar Asset Contracts, you need to know the asset encoding or provide the contract Id. Furthermore, writing unit tests which use SACs, particularly the native `xlm` asset, are difficult. We have previous work which helped this and is our [guess the number contract](https://github.com/stellar-scaffold/ui/blob/main/contracts/guess-the-number/src/xlm.rs). The other big improvement is for testing on a standalone network. Currently the xlm SAC isn't deployed by default on standalone quickstart image, this work would make this happen lazily on a contract's deployment. +> +> Value to ecosystem: make it fun and easy for new developers to use and test SAC assets, especially the native. +> +> Proof: published macro which can detect if a contract is a stellar asset contract and generate the required code to make using and testing the asset easy. -We are intentionally leaving contract upgrades as future work, as this gets into the thorny issue of -migrations. It is best to leave contract upgrades as a manual task until tooling around migrations -has matured. +Note that `import_asset!` was already available and reasonable as an alternative at the end of Q2. The goal here is to ensure that `import_contract!(xlm)` and similar (such as `import_contract!("circle/usdc")`) work as-expected, so that users have a choice between `import_asset!` and `import_contract!`, where `import_contract!` alternative works for any SAC registered in [stellar.rgstry.xyz](https://rgstry.xyz). -This task requires research into how to securely provision keys which only have permission to invoke -`publish` on the registry and can be stored in a GitHub workflow and which do not have risky -privilege levels. +#### ✅ Complete -Proof: new repository available at, say, `stellar-registry/gh-build-workflow`. Documented and tested -in production with the Registry wasm itself. +- https://github.com/stellar-registry/cli/pull/64 -### D12: UI: Expose full contract version history +### ✅ D15: Verified Build Integration with Stellar Expert -The Registry API -[now exposes full version history](https://stellar-registry-testnet.fly.dev/v1/contracts/registry), -which notably extends into the full history of the blockchain, beyond the launch of the Registry -contract itself. This information is not yet exposed -[in the rgstry.xyz UI](https://testnet.rgstry.xyz/contracts/registry). This deliverable addresses -that mismatch. +This is copied from D6 in Q2, as outlined in the [Q3 Proposal discussion](https://github.com/SCF-Public-Goods-Maintenance/scf-public-goods-maintenance.github.io/pull/117#issuecomment-5125268576). It was not hard-committed in the Tansu vote, but was soft-committed in the linked discussion. -Value to ecosystem: making contract upgrades easy to find and analyze aids in troubleshooting and -full-blockchain comprehensibility. +Description from Q2: -Proof: Contract detail pages on [rgstry.xyz/contracts](https://testnet.rgstry.xyz/contracts) display -information about full contract history. +> Display verified build status from Stellar Expert's API on Registry Wasm and Contract detail pages. +> +> Measure: the verified build badge or indicator is visible on at least one Wasm detail page with a +> known verified contract, and the integration is live in production on `rgstry.xyz`. -### D13: Documentation consolidation & redesign; potential migration of rgstry.xyz +Extra details from [Q3 Proposal discussion](https://github.com/SCF-Public-Goods-Maintenance/scf-public-goods-maintenance.github.io/pull/117#issuecomment-5125268576): -Implement new logo and design elements, secured in Q2, across rgstry.xyz site and other Registry -properties such as GitHub. Organize videos created as part of D7 into landing page and other relevant -locations throughout rgstry.xyz. +> There was some real confusion amongst our team about the goal here. The initial Q2 D6 milestone was about helping our users implement the Verified Build workflow from Stellar Expert. In our write-up of what we did in the quarter, we instead referenced our own use of the Stellar Expert verified build workflow. +> +> While this served as useful research for how to help our users, it did not satisfy the original task. D6 should have also been marked as a carry-over for Q3. +> +> In addition, in our "completion notes" for D6, we stated that we were targeting contract pages, "since we established Stellar Expert has no Wasm-level pages." We've changed our thinking on this, as documented in a new issue, stellar-registry/ui#38. This is a sub-issue of our original tracking issue stellar-registry/cli#35, which we will continue to use as our tracking issue for Q3. -Discuss with ecosystem partners and SDF potential for a new domain for Registry: rgstry.xyz was never -intended to be permanent. Registry could live under an SDF-owned domain, such as -registry.stellar.org. This, in turn, may require frontend redesign, swapping current subdomain-based -network specification (`testnet.rgstry.xyz` / `stellar.rgstry.xyz`) for URL-based specification. -Depending on scope, the actual implementation of any such plan may be a Q4 concern. +#### ✅ Complete -Value to ecosystem: consolidates Registry documentation to a single, searchable place, making it -simple to onboard and make the most of Registry. +- https://github.com/stellar-registry/ui/pull/57, Verified Build (SEP-55) badge from Stellar Expert data for _Contracts_ (done to satisfy [D5](#d5-contract-explorer-deploy-button--verified-build-badges-carried-from-q2)) + - prereq: https://github.com/stellar-registry/indexer/pull/40, Fetch data once-per-registered contract on the indexer side +- stellar-registry/ui#38 + - stellar-registry/ui#57 + - stellar-registry/ui#64 + - stellar-registry/indexer#48 + - stellar-registry/indexer#40 +- stellar-registry/cli#35 -Proof: redesigned site live, videos highlighted throughout, and question of domain's permanent home -settled with decision documented and justified. +## Q3 Stretch Goals -### D14: Extend `import_contract!` macro to support SAC and XLM +- https://github.com/stellar-registry/contracts/issues/25 +- https://github.com/stellar-registry/ui/issues/35 +- https://github.com/stellar-registry/ui/issues/36 -Currently it is difficult to work with Stellar Asset Contracts, you need to know the asset encoding -or provide the contract Id. Furthermore, writing unit tests which use SACs, particularly the native -`xlm` asset, are difficult. We have previous work which helped this and is our -[guess the number contract](https://github.com/stellar-scaffold/ui/blob/main/contracts/guess-the-number/src/xlm.rs). -The other big improvement is for testing on a standalone network. Currently the xlm SAC isn't -deployed by default on standalone quickstart image, this work would make this happen lazily on a -contract's deployment. +## Proposed Q4 Impact -Value to ecosystem: make it fun and easy for new developers to use and test SAC assets, especially -the native. +... -Proof: published macro which can detect if a contract is a stellar asset contract and generate the -required code to make using and testing the asset easy. +## Proposed Q4 Deliverables - +... ## Metrics loaded from PG Atlas