To set up credential sharing across multiple websites:

- **Designate a primary domain**: Choose one domain as the primary reference point for links.
- **Create and host `assetlinks.json` files** :
  - **Primary domain** : Create and host an `assetlinks.json` file on your primary domain listing *all* domains sharing credentials.
  - **Other domains** : Create and host an `assetlinks.json` file on each of the other domains, each linking back to the primary domain.

> [!IMPORTANT]
> **Important:** While Google treats credential sharing relationships as transitive, individual [Digital Asset Links are not](https://developers.google.com/digital-asset-links/reference/rpc/google.digitalassetlinks.v1)

In the following example, we designated
[example.com](https://example.com/) as the primary domain. All other
listed domains share credentials with
[example.com](https://example.com/) and with each other.

- [example.com](https://example.com/) (primary domain)
- [example.org](https://example.jp/)
- [example.net](https://example.de/)
- [myownpersonaldomain.com](https://myownpersonaldomain.com/)

Before setting up credential sharing ensure you have [completed the prerequisites](https://developers.google.com/identity/credential-sharing/set-up#prerequisites).

To declare credential sharing across these websites:

1. Create an `assetlinks.json` file for the primary domain with the following
   content:

         [
           {
             "relation": ["delegate_permission/common.get_login_creds"],
             "target": {
               "namespace": "web",
               "site": "https://example.com"
             }
           },
           {
             "relation": ["delegate_permission/common.get_login_creds"],
             "target": {
               "namespace": "web",
               "site": "https://example.org"
             }
           },
           {
             "relation": ["delegate_permission/common.get_login_creds"],
             "target": {
               "namespace": "web",
               "site": "https://example.net"
             }
           },
           {
             "relation": ["delegate_permission/common.get_login_creds"],
             "target": {
               "namespace": "web",
               "site": "https://myownpersonaldomain.com"
             }
           }
         ]

2. Host the Digital Asset Links JSON file at the following location on the
   primary URL: `https://example.com/.well-known/assetlinks.json`.

3. Create a simplified `assetlinks.json` file for the other domains referencing
   the main domain's `assetlinks.json` file:

         [
           {
             "relation": ["delegate_permission/common.get_login_creds"],
             "target": {
               "namespace": "web",
               "site": "https://example.com"
             }
           }
         ]

4. Host copies of this Digital Asset Links JSON file at the following location
   on all other domains, in this case:

   - `example.org/.well-known/assetlinks.json`
   - `example.net/.well-known/assetlinks.json`
   - `mypersonaldomain.com/.well-known/assetlinks.json`

After following these steps, you have successfully set up seamless credential
sharing across multiple websites. All listed websites can now share credentials.

This approach simplifies the process of adding new websites to your seamless
credential sharing network.

## Add a new website to the credential sharing network

To add a new website to the credential sharing network:

1. Update the `assetlinks.json` file hosted on your primary domain (in this
   case, <https://example.com>) adding a new statement
   to the list that includes the new domain's URL:

         ...
         {
           "relation": ["delegate_permission/common.get_login_creds"],
           "target": {
             "namespace": "web",
             "site": https://NEW_DOMAIN
           }
         }
         ...

   Where `NEW_DOMAIN` is the new domain name.
2. Create and host an `assetlinks.json` file on the new domain, linking back to
   the primary domain (in this case, <https://example.com>),
   with the following content:

         [
           {
             "relation": ["delegate_permission/common.get_login_creds"],
             "target": {
               "namespace": "web",
               "site": "https://example.com"
             }
           }
         ]

   > [!NOTE]
   > **Note:** This is the same file that all domains host, with exception of the main domain.

All other `assetlinks.json` files remain unchanged. This approach promotes code
reusability and reduces the potential for errors during updates.