Skip to main content
In order to execute a regulated transfer, Crossmint is required to screen recipients against OFAC sanctions lists. To perform these required checks, you must provide Crossmint with certain information you must collect from them.

Step 1: Create a User

First, you must register the transfer’s recipient as a user within your Crossmint project, and associate them with a Crossmint wallet address. There are two ways to create a user:
Create a wallet for a user and associate it to a userLocator by setting the owner property. This method creates in a single API call both the wallet, and the user associated with it.The owner property accepts a userLocator. This associates the wallet with the user identifier in your system.
  • If you have your own user IDs, set the wallet's "owner" property using the userId format (userId:<userId>, e.g., userId:johnd-123).
  • If you bring your own auth, Crossmint automatically extracts the user ID from your JWT and assigns it to the wallet's "owner" property.
const userLocator = "userId:johnd-123";

const options = {
    method: 'POST',
    headers: {'X-API-KEY': '<x-api-key>', 'Content-Type': 'application/json'},
    body: JSON.stringify({
        chainType: "evm",
        config: {
            adminSigner: {
                type: "email",
                email: "johnd@example.com"
            }
        },
        owner: userLocator
    })
};

fetch('https://staging.crossmint.com/api/2025-06-09/wallets', options)
    .then(response => response.json())
    .then(response => console.log(response))
    .catch(err => console.error(err));
Register a user with Crossmint without creating a wallet yet. Later, when you create a wallet for that registered user, you can link the wallet’s owner property to that user’s registered userLocator value. This will associate the wallet with the user identifier in your system.
  • If you have your own user IDs, set the wallet's "owner" property using the userId format (userId:<userId>, e.g., userId:johnd-123).
  • If you bring your own auth, Crossmint automatically extracts the user ID from your JWT and assigns it to the wallet's "owner" property.
Step 1: Register the user
const userLocator = "userId:johnd-123";

const options = {
    method: 'PUT',
    headers: {'X-API-KEY': '<x-api-key>', 'Content-Type': 'application/json'}
};

fetch(`https://staging.crossmint.com/api/2025-06-09/users/${userLocator}`, options)
    .then(response => response.json())
    .then(response => console.log(response))
    .catch(err => console.error(err));
Step 2: Create wallet and link to registered userWhen you’re ready to create a wallet for the registered user, use the same userLocator in the owner field:
const userLocator = "userId:johnd-123";

const options = {
    method: 'POST',
    headers: {'X-API-KEY': '<x-api-key>', 'Content-Type': 'application/json'},
    body: JSON.stringify({
        chainType: "evm",
        config: {
            adminSigner: {
                type: "email",
                email: "johnd@example.com"
            }
        },
        owner: userLocator
    })
};

fetch('https://staging.crossmint.com/api/2025-06-09/wallets', options)
    .then(response => response.json())
    .then(response => console.log(response))
    .catch(err => console.error(err));

Step 2: Register User Data

Now use the Create User API to attach basic user information. Data required for each activity and region can be seen here. For regulated transfers, the only inforation needed is the userDetails object.

const userLocator = "userId:johnd-123";

const options = {
   method: 'PUT',
   headers: {'X-API-KEY': '<x-api-key>', 'Content-Type': 'application/json'},
   body: JSON.stringify({
       userDetails: {
           firstName: "John",
           lastName: "Doe",
           dateOfBirth: "2007-01-01",
           countryOfResidence: "DE"
       }
   })
};

fetch(`https://staging.crossmint.com/api/2025-06-09/users/${userLocator}/`, options)
   .then(response => response.json())
   .then(response => console.log(response))
   .catch(err => console.error(err));

Next Steps