SLAAC, or Stateless Address Autoconfiguration, is a way of automatically assigning IPv6 addresses.
Stateless just means that nothing will keep track of the IP addresses that have been assigned. This is in contrast to DHCP, which keeps a database of assigned IPs.
When a client needs an IP address, it will use NDP to request one. It will send a Router Solicitation message to the ‘all IPv6 routers’ group from its link-local address. The client is really asking which prefix is in use on the local link
The client generates the host portion itself, using EUI-64. This is why SLAAC can be stateless. With each device generating its own IP, there’s no need to track anything.
The client then combines the prefix with the host portion to get a full IP. It then confirms its uniqueness using Duplicate Address Detection.
The downside to SLAAC, is it doesn’t give the client any extra information. This includes DNS server IPs, and other options that a DHCP server may provide.