···327 throw new Error('Domain parameter required');
328 }
32900000000000000330 // Update wisp.place domain to point to this site
331- await updateWispDomainSite(domain, siteRkey);
332333 return { success: true };
334 } catch (err) {
···327 throw new Error('Domain parameter required');
328 }
329330+ // Verify domain belongs to user
331+ const domainLower = normalizeDomain(domain);
332+ const info = await isDomainRegistered(domainLower);
333+334+ if (!info.registered || info.type !== 'wisp') {
335+ set.status = 404
336+ throw new Error('Domain not found');
337+ }
338+339+ if (info.did !== auth.did) {
340+ set.status = 403
341+ throw new Error('Unauthorized: You do not own this domain');
342+ }
343+344 // Update wisp.place domain to point to this site
345+ await updateWispDomainSite(domainLower, siteRkey);
346347 return { success: true };
348 } catch (err) {