-
Notifications
You must be signed in to change notification settings - Fork 102
Add atto namespace and CAIP-2 specification
#178
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
Open
rotilho
wants to merge
4
commits into
ChainAgnostic:main
Choose a base branch
from
rotilho:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
01e62cf
Add `atto` namespace and CAIP-2 specification
rotilho a45f57f
Link `discussions-to` field in Atto CAIP-2 specification
rotilho 30aca52
purely editorial - add a few links and line breaks per style guide
bumblefudge 4392b9a
Clarify Atto governance and network semantics
rotilho File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| --- | ||
| namespace-identifier: atto | ||
| title: Atto Ecosystem | ||
| author: Felipe Rotilho (@rotilho) | ||
| status: Draft | ||
| type: Informational | ||
| created: 2026-03-18 | ||
| --- | ||
|
|
||
| # Namespace for Atto Networks | ||
|
|
||
| ## Introduction | ||
|
|
||
| The `atto` namespace refers to the Atto ecosystem: | ||
| a fee-less account-chain payment network where value transfers are represented as native Atto blocks and transactions. | ||
|
|
||
| Atto is a native layer-1 system with its own chain model, transaction encoding, and account addressing, all defined by the Atto protocol. | ||
|
|
||
| The purpose of this namespace is to provide stable chain identifiers for Atto networks and a neutral reference point for cross-chain tooling built on CAIPs. | ||
|
|
||
| ## Rationale | ||
|
|
||
| Atto needs its own namespace because it introduces a distinct execution and validation model. | ||
| Native account-chain semantics, address encoding, and transaction serialization do not fit under existing namespaces such as EVM, Solana, or Stellar. | ||
| A dedicated namespace allows tools to refer to Atto deployment environments consistently using human-readable CAIP-2 identifiers. | ||
|
|
||
| ## Governance | ||
|
|
||
| This namespace tracks the public Atto protocol as documented by the ecosystem's maintainers. | ||
| Protocol-level changes and governance-relevant decisions should be validated against public Atto materials, especially the whitepaper and official documentation, and against the implementation history in the public GitHub repositories. | ||
| Future updates to this namespace should cite those sources when describing changes to network behavior, distribution, staking, or other community-facing protocol decisions. | ||
|
|
||
| ## References | ||
|
|
||
| - [Documentation][] - Official documentation for the Atto ecosystem. | ||
| - [Whitepaper][] - Public protocol and governance context, including decentralization and representative voting. | ||
| - [Node API Reference][] - Reference for the Atto node RPC and REST interfaces. | ||
| - [Integration Guide][] - Overview of Atto components, integration model, and operational guidance. | ||
| - [Blog][] - Public announcements and writeups for major ecosystem and protocol changes. | ||
| - [GitHub][] - Source code, issues, and pull requests for implementation history and concrete protocol updates. | ||
| - [Node Repository][] - Reference implementation of the Atto node and consensus behavior. | ||
|
|
||
| [Documentation]: https://atto.cash/docs | ||
| [Whitepaper]: https://atto.cash/docs/whitepaper | ||
| [Node API Reference]: https://atto.cash/api/node | ||
| [Integration Guide]: https://atto.cash/docs/integration | ||
| [Blog]: https://atto.cash/blog | ||
| [GitHub]: https://github.com/attocash | ||
| [Node Repository]: https://github.com/attocash/node | ||
|
|
||
| ## Copyright | ||
|
|
||
| Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,138 @@ | ||
| --- | ||
| namespace-identifier: atto-caip2 | ||
| title: Atto Namespace - Blockchain ID Specification | ||
| author: Felipe Rotilho (@rotilho) | ||
| discussions-to: https://github.com/ChainAgnostic/namespaces/pull/178 | ||
| status: Draft | ||
| type: Standard | ||
| created: 2026-03-18 | ||
| requires: CAIP-2 | ||
| --- | ||
|
|
||
| # CAIP-2 | ||
|
|
||
| *For context, see the [CAIP-2][] specification.* | ||
|
|
||
| ## Introduction | ||
|
|
||
| The `atto` namespace identifies Atto chains. | ||
| Atto is a native layer-1 payment network with an account-chain model, native address format, native transaction serialization, and lightweight proof-of-work used for anti-spam rather than consensus. | ||
|
|
||
| A CAIP-2 identifier in this namespace takes the form `atto:<reference>`. | ||
| The reference identifies a concrete Atto network environment such as mainnet, beta/test, a shared development network, or an ephemeral local/private development network. | ||
|
|
||
| ## Specification | ||
|
|
||
| ### Semantics | ||
|
|
||
| The `atto` namespace is intended for chains that use the native Atto protocol and validation model. | ||
| A valid CAIP-2 identifier in this namespace refers to an Atto network that shares Atto's block model, address model, signing rules, and proof-of-work rules. | ||
|
|
||
| The following references are defined by this draft: | ||
|
|
||
| - `live` — Atto mainnet | ||
| - `beta` — Atto public beta / test network | ||
| - `dev` — Atto public development network | ||
| - `local` — ephemeral local/private network | ||
|
|
||
| `atto:dev` is intended for a development deployment that is reachable by multiple participants and stable enough for shared testing, integration work, or external references. | ||
| `atto:local` is reserved for local-only, such as integration tests, benchmarks, and developer machines, where a fresh genesis may be created and no persistence or public discoverability is assumed. | ||
|
|
||
| ### Syntax | ||
|
|
||
| An Atto blockchain ID is a CAIP-2 string with namespace `atto` and a lowercase network reference. | ||
|
|
||
| Canonical format: | ||
|
|
||
| ```text | ||
| atto:<reference> | ||
| ``` | ||
|
|
||
| Reference values currently defined by this draft: | ||
|
|
||
| ```text | ||
| live | beta | dev | local | ||
| ``` | ||
|
|
||
| Suggested validation regex: | ||
|
|
||
| ```text | ||
| ^atto:(live|beta|dev|local)$ | ||
| ``` | ||
|
|
||
| Implementations MUST treat the namespace component as exactly `atto`. | ||
| Implementations SHOULD treat the reference component as lowercase. | ||
| Unknown future references within the `atto` namespace SHOULD be rejected unless explicitly supported by the implementation. | ||
|
|
||
| ### Resolution Mechanics | ||
|
|
||
| Resolution of an Atto CAIP-2 identifier is performed by selecting a node or service configured for the corresponding Atto network environment. | ||
| The identifier therefore resolves operationally through network-specific Atto infrastructure rather than through on-chain contract registries. | ||
|
|
||
| For public/shared environments, implementations SHOULD map the following identifiers to their corresponding Atto deployments: | ||
|
|
||
| - `atto:live` → mainnet infrastructure | ||
| - `atto:beta` → public beta/test infrastructure | ||
| - `atto:dev` → shared development infrastructure | ||
| - `atto:local` → local/private development infrastructure | ||
|
|
||
| Implementations SHOULD treat `atto:local` similarly to a localhost-style environment: it is not expected to name a globally shared network, and identifiers using it are not expected to remain reusable outside the local context in which they were created. | ||
|
|
||
| If an implementation exposes multiple Atto environments, it MUST ensure that transactions, account state reads, and address validation are performed against infrastructure for the selected Atto chain only. | ||
|
|
||
| ## Rationale | ||
|
|
||
| Atto needs a dedicated namespace because its interoperability assumptions are not those of any existing namespace. | ||
| The same client or wallet logic used for EVM, Stellar, or Solana cannot be reused without Atto-specific validation logic. | ||
| Atto-native tooling must understand native account-chain state, native address encoding, and Atto-native transaction verification. | ||
|
|
||
| The references `live`, `beta`, `dev`, and `local` are chosen because they are short, operationally intuitive, and consistent with how integrators commonly distinguish production, test, development, and local environments. | ||
| This draft uses stable, human-readable environment names instead of genesis-derived identifiers, because Atto deployments are intended to be referenced operationally by role. | ||
| This draft gives `local` stronger semantics than a generic development label: it is reserved for ephemeral or operator-scoped environments, while `dev` refers to a shared Atto development network that other participants may also target. | ||
| This draft intentionally avoids deriving chain identifiers from opaque hashes or environment-specific values that are less legible for wallet and payment tooling. | ||
|
|
||
| ### Backwards Compatibility | ||
|
|
||
| Not applicable. | ||
|
|
||
| ## Test Cases | ||
|
|
||
| ```text | ||
| # Atto mainnet | ||
| atto:live | ||
|
|
||
| # Atto public beta / test network | ||
| atto:beta | ||
|
|
||
| # Atto shared development network | ||
| atto:dev | ||
|
|
||
| # Atto ephemeral local / private development network | ||
| atto:local | ||
| ``` | ||
|
|
||
| ## Additional Considerations | ||
|
|
||
| This draft only defines CAIP-2 identifiers for Atto chains. | ||
| Additional Atto namespace profiles may later define: | ||
|
|
||
| - CAIP-10 account identifiers for Atto addresses | ||
| - CAIP-19 asset identifiers for the native Atto asset and future asset models, if any | ||
| - Other Atto-specific profiles where cross-chain tooling benefits from explicit namespace guidance | ||
|
|
||
| ## References | ||
|
|
||
| - [Documentation][] - Official documentation for the Atto ecosystem. | ||
| - [Node API Reference][] - Reference for the Atto node RPC and REST interfaces. | ||
| - [Integration Guide][] - Overview of Atto components, integration model, and operational guidance. | ||
| - [GitHub][] - Source code and development resources. | ||
|
|
||
| [Documentation]: https://atto.cash/docs | ||
| [Node API Reference]: https://atto.cash/api/node | ||
| [Integration Guide]: https://atto.cash/docs/integration | ||
| [GitHub]: https://github.com/attocash | ||
| [CAIP-2]: https://chainagnostic.org/CAIPs/caip-2 | ||
|
|
||
| ## Copyright | ||
|
|
||
| Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
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.
Does this mean the same private key will be able to sign for the same address on different chainIds, i.e., that it has an EVM-style replay vulnerability if a transaction is valid on multiple chains?
If so, you might want a MUST not a SHOULD here (and a warning about replays and using a given key on multiple networks!) 😅
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.
Yes, the same private key can be used to control the same address across different chain. However, transactions include the network ID in the signed payload so a transaction signed for one chain is not valid on another and cannot be replayed across chains.
Source: https://atto.cash/docs/integration/advanced/protocol-offline-signing-reference#overview-of-atto-blocks