> For the complete documentation index, see [llms.txt](https://fifo-docs.gitbook.io/colibri/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fifo-docs.gitbook.io/colibri/colibri-core/address.md).

# Addresses

Use [`StrKey`](/colibri/colibri-core/strkeys.md) for validation and branding, [`NativeAccount`](/colibri/colibri-core/account.md) for classic account identities, and the `address` namespace for muxed-address normalization. Parsing an address is local: it does not prove that an account or contract exists.

```ts
import { address, NativeAccount, StrKey } from "@colibri/core";
import { Keypair } from "npm:@stellar/stellar-sdk";

const publicKey = Keypair.random().publicKey();
if (!StrKey.isEd25519PublicKey(publicKey)) {
  throw new Error("Expected a G-address");
}

// A muxed address embeds an ID alongside a base G-address.
const account = NativeAccount.fromAddress(publicKey);
const muxed = account.muxedAddress("12345");
console.log(muxed);
console.log(address.muxedAddressToBaseAccount(muxed)); // Original G-address
```

The snippet creates an identity only; it neither funds nor writes an account. For a validated `MuxedAddress`, call `address.muxedAddressToBaseAccount(muxedAddress)` to obtain its underlying Ed25519 account. The muxed ID is routing information, not a separate signing key. Do not discard that ID when the destination service needs it.

## Related concepts

* [Account](/colibri/colibri-core/account.md): the [`NativeAccount`](/colibri/colibri-core/account.md) constructor and muxed ID options.
* [StrKeys](/colibri/colibri-core/strkeys.md): validation and branded address types.
* [Authorization](/colibri/colibri-core/authorization.md): account requirements versus exact signer keys.
* [WebAuth routing](/colibri/colibri-webauth/discovery.md): protocol-specific restrictions.
* [Address errors](/colibri/reference/errors/core-address-muxed-to-base-account.md).
