> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clicker.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# About Profiles

> How we assign addresses to people

<Note>We do not infer profiles from usage patterns.</Note>

## Background

Many crypto apps and APIs are based on *addresses* interacting with *other addresses*, but an important insight of the Feed API is that users want to follow *people*, not *addresses*.

As a result, many of our API endpoints return *profiles*, which is an identity with one or more associated addresses.

## How to think about profiles and addresses

Our goal is to make things as easy as possible for you. So we have a simple mental model for addresses and profiles: *you send us addresses*, and *our API returns profiles*.

### You send us addresses (or external IDs)

Examples:

* To bulk-upload your internal follower network to us, send us each address and the addresses they follow.
* When a user sees a profile and wants to follow it, use the [Follow endpoint](/api-reference/follow).
* To request a user's feed, send the user's addresses to the [Feed endpoint](/api-reference/feed).
* If you identify users by an internal ID rather than a wallet address, you can use [External IDs](/guides/external-ids) with the `ext:` prefix in place of addresses.

### Our API returns profiles

Examples:

* The discovery endpoint recommends lists of profiles.
* When a user sends us one or more addresses to follow, we return each profile that was followed.
* Our feed endpoint always returns the profile of the actor (along with the specific address that performed the swap).

## Profile object

```ts theme={null}
export type Profile = {
  id: string;
  name: string;
  images: {
    raw: string | null;
    sm: string | null;
    xs: string | null;
  };
  addresses: string[];
  externalId?: string;  // Your app's internal user ID, if set
  metadata: { ... };    // Social identities (Farcaster, ENS, Twitter) and trading metrics (PnL, win rate, trade count)
  metrics?: { ... };    // Follower counts, comment activity, and copytrade stats
};
```

See [ProfileExtended](/response-types/profile-extended) for the full schema.

## Profile rules

We only associate addresses into a profile if there's *proven, public associations* between those addresses. For now, we only associate addresses together if they're verified under a single Farcaster account, or a user verifies their addresses in the Clicker mobile app.

Right now, we support EVM addresses (returned lowercased) and Solana addresses in profiles.
