Skip to content

Commit

Permalink
v0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
vilenarios committed Aug 30, 2024
1 parent 174d27e commit 92769b7
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 5 deletions.
15 changes: 10 additions & 5 deletions arns-token-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,15 @@

The Arweave Name Token is created when layering the utilities needed to support token transferability, balances, and other helpful metadata on top of the **ARNS-CORE-01** and **ARNS-MANAGE-01** Specifications.

The **ARNS-TOKEN-01** Specification merges the specifications set in the AO Token Blueprint and is designed to act as a true non-fungible token. This means that there is a total, indivisible token supply of 1 for each ANT, and transferring it changes both the balance and ownership.
The **ARNS-TOKEN-01** Specification merges the protocols set in the AO Token and Subledger Specification except it is designed to act as a single, non-fungible token. This means that there is a total, indivisible token supply of 1 for each ANT, and transferring it changes both the balance and ownership.

For more information on the AO Token and Subledger Specification see https://hackmd.io/8DiMkhuNThOb_ooTWKqxaw#ao-Token-and-Subledger-Specification

## Language of Implementation

All examples and code snippets in this specification are written in Lua. This choice ensures compatibility with the AO Processes and the Arweave ecosystem.

However, developers are not restricted to using Lua exclusively when building new features or extending functionalities around ArNS. While Lua is recommended for direct integration with existing infrastructure, other programming languages can be used, provided they adhere to the protocols and specifications outlined in this document.

## Specification Requirements

Expand Down Expand Up @@ -37,9 +45,7 @@ The **ARNS-TOKEN-01** Specification does not include the ability to `Mint` or `B

## Objects

The **ARNS-TOKEN-01** specification includes all of the objects in **ARNS-MANAGE-01**, **ARNS-CORE-01**, and an adapted AO Token blueprint.

More information on the AO Token and Subledger specification: https://hackmd.io/8DiMkhuNThOb_ooTWKqxaw#ao-Token-and-Subledger-Specification
The **ARNS-TOKEN-01** specification leverages the general AO Token and Subledger specification, and includes all of the objects in **ARNS-MANAGE-01** and **ARNS-CORE-01**

### ARNS-TOKEN-01 Objects

Expand All @@ -62,7 +68,6 @@ Records = Records or {
ttlSeconds = 3600
}
}
```

## Handlers and Responses
Expand Down
6 changes: 6 additions & 0 deletions arns/arns-core-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@

The core Arweave Name specification for an AO process contains the specific details required by AR.IO Gateways to resolve the corresponding ArNS names and their Arweave Transaction IDs. This is the most basic building block and is primarily meant to be layered on top of or below other functionality.

## Language of Implementation

All examples and code snippets in this specification are written in Lua. This choice ensures compatibility with the AO Processes and the Arweave ecosystem.

However, developers are not restricted to using Lua exclusively when building new features or extending functionalities around ArNS. While Lua is recommended for direct integration with existing infrastructure, other programming languages can be used, provided they adhere to the protocols and specifications outlined in this document.

## Specification Requirements

The **ARNS-CORE-01** Specification includes the following requirements for valid, resolvable Records:
Expand Down
8 changes: 8 additions & 0 deletions arns/arns-manage-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@

The first layer added onto the ARNS-CORE-01 Specification includes the utilities needed to manage and control the ANT. This includes adding new records, modifying existing records, removing records, and configuring who else can control the ANT.

## Language of Implementation

All examples and code snippets in this specification are written in Lua. This choice ensures compatibility with the AO Processes and the Arweave ecosystem.

However, developers are not restricted to using Lua exclusively when building new features or extending functionalities around ArNS. While Lua is recommended for direct integration with existing infrastructure, other programming languages can be used, provided they adhere to the protocols and specifications outlined in this document.

## Specification Requirements

The **ARNS-MANAGE-01** Specification includes the following requirements:

- Must include a list of `Controllers` who act as secondary users who control the `Records` set in this ANT.
Expand Down
21 changes: 21 additions & 0 deletions arns/arns-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,24 @@ The Arweave Name System Specifications span across several specs that can be com
- **ARNS-ROUTING-01**: Describes the `ar://` schema and routing protocols for accessing permanent data and domain names via AR.IO Gateways.

Applications like `https://arns.ar.io` can leverage this framework via SDKs like the AR.IO SDK or extend them further to create a rich ecosystem of multi-functional AO processes and tooling that support the needs of ArNS name buying, management, and resolution.

### Language of Implementation

Many examples and references provided in the specification documents are written in Lua. This choice ensures compatibility with many AO Specs and Processes while making it easier for developers working within the AO and AR.IO ecosystems to implement and extend the functionalities defined by the ArNS specifications. The use of Lua also aligns with the existing infrastructure and toolsets used in the AOS environment.

However, developers are not restricted to using Lua exclusively when building new features or extending functionalities around ArNS. While Lua is recommended for direct integration with existing AO infrastructure, other programming languages can be used, provided they adhere to the protocols and specifications outlined in these documents.

## Implementations

The following implementations act as blueprints for deploying Arweave Name Processes and Tokens in AOS or other platforms. Developers can utilize these files to layer on the specification they need onto their new or existing process.

- ARNS-RESOLVER-01 https://github.com/ar-io/arns-resolver (Typescript, Node.js, Docker)
- ARNS-CORE-01 https://github.com/ar-io/ao-pilot/blob/develop/scripts/anp-resolve-01.lua (Lua)
- ARNS-MANAGE-01 https://github.com/ar-io/ao-pilot/blob/develop/scripts/anp-control-01.lua (Lua)
- ARNS-TOKEN-01 https://github.com/ar-io/ar-io-ant-process (Lua)
- AR.IO SDK https://github.com/ar-io/ar-io-sdk (Typescript)

## Other References

- The AO Token and Subledger Specification, which Arweave Name Tokens inherit https://hackmd.io/8DiMkhuNThOb_ooTWKqxaw#ao-Token-and-Subledger-Specification
- AO Token implementation in lua https://github.com/permaweb/aos/blob/main/blueprints/token.lua

0 comments on commit 92769b7

Please sign in to comment.