-
Notifications
You must be signed in to change notification settings - Fork 238
🧮 Manage data public info #1496
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
I'll polish this off in stellar#723
|
Hey there, @JFWooten4!! Thanks as always for the contribution! I think it would certainly be a useful/interesting document describing some of the uses that the ecosystem has found for I thought we had "somewhere" that mentioned like the way applications could make use of "domain-specific" data entries, but i can't seem to find it now... 🤔 In any case, the changes you make here look generally good to me. I think the relative links you've place on the |
|
also, i'm not really sure what you mean by "first google searches." can you elaborate a little bit? |
I just want a clear explanation to show up when someone looks up the `ManageData` function of Stellar. It's not exactly something to write a whole Medium article on. More generally, it has technical nuances which could be updated over time, lending itself to a community documentation page like this. Relevantly, I've found that the `#` hash page entries on list-of-operations don't show up well in SEO. While they make a great reference for cross-linking the guides (and generally I've sincerely appreciated a single place to learn all the functionality over the years), standalone references help simplify new discoverability!
|
This completes my reference implementation, and a next step post-merge can be linking into LE specification at |
Really great work there from Bri, and I love the use of a draft PR when scope expands based on collaboration from Jane!
|
LE points handled in JFWooten4@9de3478 and JFWooten4@c1f251e. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request adds new documentation for the ManageData operation, which allows attaching key-value data to classic Stellar accounts. The PR creates a new documentation page explaining this functionality and updates several existing pages to reference the new documentation.
Changes:
- Creates new documentation page explaining ManageData operation for classic accounts
- Updates references to ManageData across documentation files
- Removes deprecated
<head>tags from storage documentation files - Adds cross-references to the new documentation page
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| routes.txt | Adds route for new manage-data documentation page |
| docs/learn/fundamentals/transactions/list-of-operations.mdx | Updates ManageData operation description and adds reference to new documentation page |
| docs/learn/fundamentals/stellar-data-structures/accounts.mdx | Adds link to new documentation page for data entries |
| docs/learn/fundamentals/contract-development/storage/state-archival.mdx | Removes deprecated <head> tags with metadata |
| docs/learn/fundamentals/contract-development/storage/persisting-data.mdx | Removes deprecated <head> tags with metadata |
| docs/learn/fundamentals/contract-development/storage/manage-data.mdx | Creates new documentation page explaining ManageData operation |
| docs/data/apis/rpc/api-reference/methods/getLedgerEntries.mdx | Standardizes formatting of parenthetical references to use italics |
| docs/data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx | Updates description to reference new documentation page |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| description: Associate information with a classic account. | ||
| --- | ||
|
|
||
| You can manage data associated with [accounts](../../stellar-data-structures/accounts.mdx) using the [`ManageData` operation](../../transactions/list-of-operations.mdx#manage-data), no smart contract needed! The data entry uses up one account subentry, increasing base reserves. In exchange for this slight cost, you can retrieve an account with [user-defined](../../../../data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx) key-value pairs. |
Copilot
AI
Feb 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This documentation file is placed in the "contract-development/storage" directory, but it describes the ManageData operation for classic Stellar accounts, not smart contract storage. This creates a conceptual mismatch - the file explicitly states "no smart contract needed!" while being located within contract development documentation. While the file title "Native Data" attempts to clarify this distinction, placing it in the storage directory alongside persisting-data.mdx and state-archival.mdx (which are about smart contract storage) may confuse readers. Consider placing this documentation in a more appropriate location such as under stellar-data-structures or transactions, or creating a separate section for classic account operations.
| description: Associate information with a classic account. | |
| --- | |
| You can manage data associated with [accounts](../../stellar-data-structures/accounts.mdx) using the [`ManageData` operation](../../transactions/list-of-operations.mdx#manage-data), no smart contract needed! The data entry uses up one account subentry, increasing base reserves. In exchange for this slight cost, you can retrieve an account with [user-defined](../../../../data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx) key-value pairs. | |
| description: Associate information with a classic (non-contract) account as an alternative to smart contract storage. | |
| --- | |
| In addition to smart contract storage, you can use the network’s native facilities to manage data associated with classic [accounts](../../stellar-data-structures/accounts.mdx) via the [`ManageData` operation](../../transactions/list-of-operations.mdx#manage-data)—no smart contract required. The data entry uses up one account subentry, increasing base reserves. In exchange for this slight cost, you can retrieve an account with [user-defined](../../../../data/apis/horizon/api-reference/resources/operations/object/manage-data.mdx) key-value pairs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lemme sleep on this. I suppose you're right. And I've made a lot of progress documenting ledger entries, which are a different class of protocol data. This was written closer to my section 2.2 concerns, which seem to be all good
docs/learn/fundamentals/contract-development/storage/manage-data.mdx
Outdated
Show resolved
Hide resolved
| @@ -0,0 +1,20 @@ | |||
| --- | |||
| sidebar_position: 10 | |||
Copilot
AI
Feb 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The sidebar_position value is set to 10, which conflicts with persisting-data.mdx in the same directory that also has sidebar_position: 10. This will cause unpredictable ordering in the documentation sidebar. Since state-archival.mdx uses 20, this file should use a different value such as 15 to maintain proper ordering.
| sidebar_position: 10 | |
| sidebar_position: 15 |
docs/learn/fundamentals/contract-development/storage/manage-data.mdx
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Some of the first Google search pages of managing data lead to these pages, which don't really explain how it works. Wholistically, might it be worth an entire page explaining the incredibly useful operations in use by many community projects including our own?