# Link Anatomy

The Universal Access Schema (UAS) is a standardized, permissionless URL format that enables direct execution into an on-chain asset at the moment of intent.

A UAS link is not a redirect or deep link into an application.

It is a self-contained execution instruction that can be generated by any surface — wallets, bots, launchpads, dashboards, explorers, or static pages — without backend infrastructure.

***

### The Universal Access Schema (UAS)

The most common integration pattern for UAS is to dynamically generate a link using the following base format:

```
https://buy.onchain.money/[chain]/[token]
```

This link alone is sufficient to initiate execution.

* No backend required
* No API keys
* No authentication
* No listings or approvals

Even a static site or bot can generate valid UAS links.

***

### Base Format

```
https://buy.onchain.money/[chain]/[token]
```

#### Components

| Component         | Description                        |
| ----------------- | ---------------------------------- |
| buy.onchain.money | ONCHAIN Gateway execution endpoint |
| \[chain]          | Chain identifier (slug)            |
| \[token]          | Token contract address             |

Example:

```
https://buy.onchain.money/ethereum/0xabc123...
```

This path encodes the execution target directly in the URL.

***

### How UAS Links Work

A UAS link encodes all required execution context in the URL itself:

* The chain determines where execution occurs
* The token address determines what asset is accessed
* Execution is evaluated at click time, not link creation time
* There is no session state or stored user context

If execution is possible at the moment of intent, it proceeds.

If not, the link fails gracefully.

***

### Dynamic Link Generation

UAS links are designed to be generated dynamically based on user context.

```
https://buy.onchain.money/ethereum/0xabc123...
```

***

#### Example: Telegram bot

```
"Buy now → https://buy.onchain.money/" + chain + "/" + contract
```

***

#### Example: Web (React)

```
const link = `https://buy.onchain.money/${chain}/${address}`;
return <a href={link}>Buy</a>;
```

***

#### Example: Node / backend

```
function buildSchemaLink(chain, token) {
  return `https://buy.onchain.money/${chain}/${token.toLowerCase()}`;
}
```

***

### Recommended Practices

Use lowercase token addresses

Contract addresses should always be lowercase to avoid checksum or parsing issues.

***

#### Validate the chain slug

Only supported chain identifiers should be used.

If a chain is not supported, hide the execution surface or fall back to native behavior.

***

#### Do not URL-encode

The schema accepts raw hex addresses without encoding.

***

#### Keep links simple

The base format is the integration:

```
https://buy.onchain.money/[chain]/[token]
```

Avoid unnecessary parameters unless explicitly required (e.g. attribution).

***

#### Generate dynamically when possible

Bots, dashboards, wallets, and scanners should construct the link directly using user-selected context.

***

#### No backend required

All logic can run client-side.

There are no API keys, no rate limits, and no authentication requirements.

***

#### Fail gracefully

If a chain or token is not supported, hide the button or defer to native behavior rather than forcing execution.

***

### Attribution Parameters (Optional)

UAS links may include optional attribution parameters (such as UTMs) to provide execution context.

Attribution parameters:

* Are optional
* Do not affect execution behavior
* Do not change routing, pricing, or settlement

See [Optional Attribution Parameters (UTM)](https://docs.onchain.money/getting-started/integrating-uas/dynamic-link-generation/optional-attribution-parameters-utm) for details.
