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

# Access contacts

> Let players see which friends are already playing PixelGames.

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block font-sans whitespace-pre-wrap break-words">
      <div className="pr-7">
        {children}
      </div>
    </CodeBlock>;
};

export const contactsPrompt = "Let players pick friends from their contacts with the system contact picker. Show which of them already play PixelGames, along with their high scores.";

<AiPrompt>
  {contactsPrompt}
</AiPrompt>

Players choose who to share with the system picker, so PixelGames only sees the contacts they
select. Both iOS and Android use this picker instead of a blanket address-book permission.
PixelGames matches shared phone numbers or emails to existing players and shows their scores,
unmatched contacts are left alone.

<Frame caption="Friends who already play PixelGames show up on the leaderboard; others can be invited.">
  <img src="https://mintcdn.com/replit/WuaQIOfW5oxRlxex/images/pixelgames/mobile/add-contacts.png?fit=max&auto=format&n=WuaQIOfW5oxRlxex&q=85&s=963768dce4840362b5eb8ac382bcc7dc" alt="PixelGames My friends tab with a leaderboard and invite buttons for contacts not on the app yet" data-path="images/pixelgames/mobile/add-contacts.png" width="1516" height="918" data-path="images/pixelgames/mobile/add-contacts.png" />
</Frame>

## What's next

<CardGroup cols={2}>
  <Card title="Use iOS native components" icon="apple" href="/build/mobile-native-components">
    See other native iOS patterns used across PixelGames.
  </Card>

  <Card title="Store images in your mobile app" icon="image" href="/build/mobile-store-images">
    Save profile photos to App Storage.
  </Card>
</CardGroup>
