SEPs are ideas, standards, and specifications in the form of proposals that the author is intending to be adopted by participants in the Stellar ecosystem.
All SEPs have individuals fulfilling the following roles:
- Author - The author is the individual(s) who created the proposal. The author is responsible for writing the SEP, encouraging adoption of the SEP, and the general success of the SEP.
- Maintainer - The maintainer is optional. If not present, the maintainer is the author. The maintainer is responsible for reviewing changes to the SEP. For SEPs that have ecosystem adoption, SDF may identify or become a maintainer of last resort. A maintainer of last resort steps in and acts as the maintainer if the maintainer ceases to respond or engage.
- Draft - A SEP that is currently open for consideration, iteration and actively being discussed. It may change.
- FCP - A SEP that has entered a Final Comment Period (FCP). An author
places their SEP in FCP when they wish to signal that they plan to cease
making changes. After at least one week has passed the SEP's status should
move to
ActiveorFinal, or back toDraft. If changes are required, it should be moved back toDraft. - Active - A SEP ready to be adopted, and the proposal is a living document and may still receive changes. The author intends the SEP in its current form to be actively adopted. Changes can be made without changing the SEP number, although in the interest of growing an ecosystem of interopable participants the author should endeavor to make changes backwards compatible so that participants who have already adopted the SEP can continue to participate. Where changes cannot be backwards compatible, the major version should be updated to clearly distinguish new incompatible versions.
- Final - A SEP ready to be adopted, and the proposal is an immutable document and will no longer receive changes, other than minor errata. The author intends to make no further changes. Adopters can expect significant changes to be proposed in a new SEP.
- Abandoned - A SEP has been abandoned by the author. SDF may move a SEP into this state if the SEP has no activity, no visible adoption, and the author is not responsive.
| Number | Title | Author | Status |
|---|---|---|---|
| SEP-0001 | Stellar Info File | SDF | Active |
| SEP-0002 | Federation Protocol | SDF | Final |
| SEP-0004 | Tx Status Endpoint | SDF | Final |
| SEP-0005 | Key Derivation Methods for Stellar Accounts | SDF | Final |
| SEP-0006 | Deposit and Withdrawal API | SDF | Active |
| SEP-0007 | URI Scheme to facilitate delegated signing | Interstellar | Final |
| SEP-0008 | Regulated Assets | Interstellar | Final |
| SEP-0009 | Standard KYC Fields | SDF | Active |
| SEP-0010 | Stellar Authentication | Sergey Nebolsin, Tom Quisel | Active |
| SEP-0011 | Txrep: Human-Readable Low-Level Representation of Stellar Transactions | David Mazières | Active |
| SEP-0012 | KYC API | Interstellar | Active |
| SEP-0014 | Dynamic Asset Metadata | OrbitLens, Paul Tiplady | Draft |
| SEP-0018 | Data Entry Namespaces | Mister.Ticot | Active |
| SEP-0020 | Self-verification of validator nodes | Johan Stén | Active |
| SEP-0023 | Muxed Account Strkeys | David Mazières, Tomer Weller, Leigh McCulloch, Alfonso Acosta | Active |
| SEP-0024 | Hosted Deposit and Withdrawal | SDF | Active |
| SEP-0028 | XDR Base64 Encoding | SDF | Final |
| SEP-0029 | Account Memo Requirements | OrbitLens, Tomer Weller, Leigh McCulloch, David Mazières | Active |
| SEP-0031 | Cross-Border Payments API | SDF | Active |
| SEP-0033 | Identicons for Stellar Accounts | Lobstr.co, Gleb Pitsevich | Active |
| SEP-0046 | Contract Meta | Leigh McCulloch | Active |
| SEP-0048 | Contract Interface Specification | Leigh McCulloch | Active |
| Number | Title | Author | Status |
|---|---|---|---|
| SEP-0015 | Attachment Convention | Interstellar | Draft |
| SEP-0016 | Account Transfer Permissionless Payment Protocol (@p2p) | Jeremy Rubin | Draft |
| SEP-0017 | Issuer account funding protocol (CAP-13 Based) | Tom Quisel | Draft |
| SEP-0019 | Bootstrapping Multisig Transaction Submission | Paul Selden, Nikhil Saraf | Draft |
| SEP-0021 | On-chain signature & transaction sharing | Mister.Ticot | Draft |
| SEP-0022 | IPFS Support | Samuel B. Sendelbach | Draft |
| SEP-0030 | Recoverysigner: multi-party key management of Stellar accounts | Leigh McCulloch, Lindsay Lin | Draft |
| SEP-0032 | Asset Address | Leigh McCulloch | Draft |
| SEP-0034 | Wallet Attribution for Anchors | Jake Urban and Leigh McCulloch | Final Comment Period |
| SEP-0035 | Operation IDs | Isaiah Turner, Debnil Sur, Scott Fleckenstein | Draft |
| SEP-0037 | Address Directory API | OrbitLens | Draft |
| SEP-0038 | Anchor RFQ API | Jake Urban and Leigh McCulloch | Draft |
| SEP-0039 | Interoperability Recommendations for NFTs | SDF, Litemint.io | Active |
| SEP-0040 | Oracle Consumer Interface | Alex Mootz, OrbitLens, Markus Paulson-Luna | Draft |
| SEP-0041 | Soroban Token Interface | Jonathan Jove, Siddharth Suresh | Draft |
| SEP-0045 | Stellar Web Authentication for Contract Accounts | Philip Liu, Marcelo Salloum, Leigh McCulloch | Draft |
| SEP-0047 | Contract Interface Discovery | Leigh McCulloch | Draft |
| SEP-0049 | Upgradeable Contracts | OpenZeppelin, Boyan Barakov, Özgün Özerk | Draft |
| SEP-0050 | Non-Fungible Tokens | OpenZeppelin, Boyan Barakov, Özgün Özerk | Draft |
| SEP-0051 | XDR-JSON | Leigh McCulloch | Draft |
| SEP-0052 | Key Sharing Method for Stellar Keys | Pamphile Roy, Jun Luo | Draft |
| SEP-0053 | Sign and Verify Messages | Jun Luo, Pamphile Roy, OrbitLens, Piyal Basu | Draft |
| SEP-0054 | Ledger Metadata Storage | Tamir Sen | Draft |
| SEP-0055 | Contract Build Info | Nando Vieira | Draft |
| SEP-0056 | Tokenized Vault Standard | OpenZeppelin, Boyan Barakov, Özgün Özerk, Sentinel | Draft |
| Number | Title | Author | Status |
|---|---|---|---|
| SEP-0003 | Compliance Protocol | SDF | Abandoned |
| SEP-0013 | DEPOSIT_SERVER proposal | @no, @ant, @manran, @pacngfar | Abandoned |
| SEP-0026 | Non-interactive Anchor/Wallet Asset Transfer | SDF, Fritz Ekwoge (@efritze), Ernest Mbenkum (@cameroon) | Abandoned |
The Stellar Ecosystem, like most software ecosystems in the world, continues to evolve over time to meet the needs of our network's participants and to drive technology forward into new territory.
Unlike Stellar's Core development (CAPs), Stellar's Ecosystem Proposals are intended to be a more dynamic way of introducing standards and protocols utilized in the ecosystem that are built on top of the Stellar Network. It uses a lightweight process.
A SEPs author is responsible for a proposals adoption. Other ecosystem participants, including SDF, may encourage adoption of a proposal, but authors should expect each proposal to stand on its own merits and authors and maintainers should plan to drive adoption themselves.
Before contributing, consider the following:
- Gather feedback from discussion on the GitHub discussion forum, Stellar Dev Discord, or stellar-dev mailing list, and utilize it to begin a draft proposal.
- Follow the proposal process listed below. If you're having difficulty moving the proposal forward, talk to folks in the ecosystem, or folks at SDF; they'll often have guidance on how to move things forward, as well as feedback regarding feasibility and how the proposal does or does not align with the Stellar Network's goals.
Introduce your idea on the GitHub discussion forum, Stellar Dev Discord, or stellar-dev mailing list and other community forums dedicated to Stellar.
- Make sure to gather feedback and alternative ideas — it's useful before putting together a formal draft!
- Consider contacting experts in a particular area for feedback while you're hashing out the details.
- Prototype, demo, and build confidence in the idea.
- Iterate as much as possible in this stage — making changes is easier before participants start adopting.
Draft a formal proposal using the SEP Template, and submit a PR to this repository. You should make sure to adhere to the following:
- Use the following format for the filename of your draft:
sep_{shorttitle}.md, for examplesep_newaccountdeposit.md - Make sure to place your SEP in the
ecosystem/folder. - Include GitHub handles or emails for all authors listed. GitHub handles are preferred.
- Set the version to
v0.0.1. - Submit a PR of your draft via your fork of this repository.
- Enable the GitHub feature
Maintainers are allowed to edit this pull requeston the PR so that a maintainer can assign a SEP number and merge the PR. - A maintainer of the stellar-protocol repository will:
- Review the PR to ensure the SEP follows the template and does not introduce any abuse to the repository.
- If the template is followed and the change does not introduce any abuse to
the repository:
- Assign a SEP number.
- Merge the PR.
- If your SEP requires images or other supporting files, they should be
included in a subdirectory of the
contentsfolder for that SEP, such ascontents/sep_happycoder_b274f73c/. Links should be relative, for example a link to an image from SEP-X would be../contents/sep_happycoder_b274f73c/image.png.
From there, the following process will happen:
- You should continue the discussion of the draft SEP on the GitHub discussion forum, Stellar Dev Discord, or stellar-dev mailing list to gather additional feedback. We welcome any additional PRs that iterate on the draft.
- Keep the version of the SEP as a
v0.y.zversion while in draft. - Increment the minor or patch versions on each change while in draft. See SEP Versioning.
When you're ready for others to adopt the proposal:
- Decide if the proposal should be a living document and move to
Active, or an immutable document and move toFinal. - Submit a PR changing the status in the draft to
Final Comment Period (Active)orFinal Comment Period (Final). - Keep the proposal in FCP for at least one week, then submit a PR changing the
status to
Active,Final, or back toDraft.
You choose whether your proposal targets an Active or Final status.
Active proposals are living documents that the author intends to iterate on and maintain over time, such as a specification that expects evolution in a responsible manner with regards to backwards compatibility, and semver usage.
Final documents are immutable documents that the author intends to write once, but do not intend to maintain over time.
After at least one week in FCP:
- Submit a PR changing the status to
Activeand setting the version tov1.0.0. - A maintainer of the stellar-protocol repository will review the PR to ensure the changes are limited to changing the status and updating the version.
- Increment the major, minor, or patch versions on each change. See SEP Versioning.
- Patch changes may be made to address bugs, errors, clarifications, or to fix errata.
- Minor changes may be made as more implementations are brought online highlighting any edge cases.
- Major changes, and breaking changes, should be considered with care as they may reduce interoperability.
- Submit a PR changing the status to
Finaland update the version tov1.0.0.
- No changes will be made to a finalized SEP aside from fixing errata.
- Fixing errata should be so minor it is not accompanied by a version change.
- Much consideration should be given before moving to Final status, it is OK for SEPs to live in Draft or Active status for a long time.
- Any significant changes should be proposed as a new SEP.
SEPs may stay in Draft status for an extended period of time. They are are
assigned versions so that the ecosystem can communicate about which version
they are implementing or discussing. SEPs use semantic versioning in the form
vMAJOR.MINOR.PATCH to determine an appropriate version for each change.
During draft a SEP should have a major version of 0 to indicate that anything
in the SEP may change at anytime. Once a SEP moves to Active it should be
changed to v1.0.0 and the rules of semantic versioning apply.
All changes to a SEP should be accompanied by an update to its version, no matter how small even typographical corrections. The exceptions that do not require version updates:
- Correcting metadata in the
Pragmasection. - Updating broken links.
- Updating links to implementations.
- Final SEPs where very minor errata is being corrected.
Proposals in the Final status should not be changed and should not see their
version number change once moved into the status.