# Example interaction
prompt = "Search if domain 'example.com' is available? If it is request a purchase and process the payment using credit card method."
response = chat.toolloop(prompt)
```

The agent can handle complex operations like:
- Domain availability checks
- Purchase requests with payment processing
- Contact information management
- DNS record configuration

Each tool includes detailed documentation in its docstring, allowing the agent to understand:
- Required parameters
- Expected behavior
- Valid input formats
- Common use cases


## Important Notes

1. Contact Information Requirements:
- All fields are required for domain registration
- Must be set before attempting domain purchases
- Validated by ICANN standards

2. Payment Methods:
- credit_card: Returns Stripe checkout URL
- lightning: Returns Lightning Network invoice

3. DNS Record Types:
- Supports standard record types: A, AAAA, CNAME, MX, TXT, etc.
- TTL is specified in seconds (default: 3600)

4. Error Handling:
- Methods raise exceptions for invalid inputs
- 402 status code is expected for payment required
- Contact validation occurs before purchase attempts

## Best Practices

1. Always verify domain availability before purchase
2. Set contact information early in the workflow
3. Store domain_id and record_id values for DNS management
4. Check payment link expiration (typically 30 minutes)
5. Validate DNS record values before creation/updates


## Integration Examples

The SDK includes several example integrations showing different ways to use Sherlock with various LLM platforms:

### FastMCP Integration
```bash