owned this note
owned this note
Published
Linked with GitHub
# AO Connect / AOS Mainnet Release Notes
This release introduces new versions of **AO Connect** and **AOS** with full support for AO’s mainnet (HyperBEAM). Developers can now spawn, message, and retrieve results from AOS processes directly on mainnet using the updated connect workflow in `@permaweb/aoconnect@0.0.93`. The latest AOS CLI release also adds direct mainnet compatibility.
## Key Differences from Legacynet
AO Mainnet interactions are designed to remain backward compatible with Legacynet. However, there is one edge case that prevents full compatibility. HyperBEAM normalizes certain tag names in a way that may affect existing AOS handlers. If a tag contains two consecutive uppercase letters (e.g., `ExampleTag`), HyperBEAM will transform it into `Exampletag`, altering the casing.
To ensure full compatibility, it is recommended to update any existing processes that rely on tags with consecutive uppercase characters. Using a dash-separated format (e.g., `Example-Tag`) prevents this transformation and preserves the intended casing.
## Usage
Install AO Connect: `npm install @permaweb/aoconnect`
Version: `0.0.93`
#### AO Connect Usage
```js
import { connect, createSigner } from '@permaweb/aoconnect';
/* Your running HyperBEAM Node URL */
const HYPERBEAM_URL = '<Your_Node_URL>'
/* Node Address: This address can be found on the
home page of your hyperbuddy explorer page
or in the startup logs of HyperBEAM in the console
*/
const HYPERBEAM_AUTHORITY = '<Your_Node_Address>'
/* Address of schedule.forward.computer */
const HYPERBEAM_SCHEDULER = 'n_XZJhUnmldNFo4dhajoPZWhBXuJk-OcQr5JQ49c4Zo'
/* Current AOS Module */
const AOS_MODULE = 'ISShJH1ij-hPPt9St5UFFr_8Ys3Kj5cyg7zrMGt7H9s'
const ao = connect({
MODE: 'mainnet',
URL: HYPERBEAM_URL,
SCHEDULER: HYPERBEAM_SCHEDULER,
signer: createSigner(jwk)
})
const process = await ao.spawn({
tags: [ { name: 'Example-Tag', value: 'Example Value' } ],
authority: HYPERBEAM_AUTHORITY,
module: AOS_MODULE,
data: '1984'
})
const message = await ao.message({
process: process,
tags: [ { name: 'Example-Tag', value: 'Example Value' } ],
data: '1984'
})
const result = await ao.result({
process: process,
message: message
})
```
#### AOS Usage
Install AOS: `npm install -g https://get_ao.arweave.net`
`aos <your_process_id> --url <your_node_url>`
##### Mainnet CLI Args
- `--url`: The URL of the HyperBEAM node to connect to. If `--url` is not passed, it will default to `https://push.forward.computer`.
- `--scheduler`: The address of the HyperBEAM scheduler node to use. If `--scheduler` is not passed, it will default to `n_XZJhUnmldNFo4dhajoPZWhBXuJk-OcQr5JQ49c4Zo` (https://schedule.forward.computer).
For full documentation on AOS, read the [cookbook](https://cookbook_ao.arweave.net/guides/aos/index.html).
---
###### Changes to Legacy AOS
With the mainnet release of AOS, the default behavior is now to connect directly to mainnet. Therefore, an additional flag has been introduced to connect to legacy processes. In order to spawn a legacy process, you can use the following `--legacy` flag. If you are connecting to an existing legacy process directly by ID, then AOS will connect to Legacynet automatically.
**Example**
`aos <your_legacy_process_id> --wallet <path_to_your_wallet> --legacy`