Chrome extension for automated testing of Stripe checkout forms. Supports card generation with Luhn validation, address/name management, and IP-based geolocation.
- Automatic form filling for Stripe checkout pages
- Card number generation with configurable Luhn validation
- BIN template support (6-19 digit cards)
- Address generation with IP-based geolocation
- Custom address and name management
- Multi-theme UI (Dark, Light, Galaxy, Sky, Underground)
- IP blocker for 3DS challenge detection
- Local data storage (no external servers)
- BIN history with quick access
- Clone the repository:
git clone https://github.com/GofMan5/saf-extension.git-
Load extension in Chrome:
- Navigate to
chrome://extensions/ - Enable Developer mode
- Click "Load unpacked"
- Select the extension directory
- Navigate to
-
Pin extension to toolbar for quick access
- Navigate to Stripe checkout page
- Open extension popup
- Configure BIN template (optional)
- Click "Fill Everything"
Toggle Luhn algorithm validation for generated card numbers. When enabled, all cards pass checksum validation.
Static- Use predefined addressesManual- Use custom addresses from settingsAuto- Generate random US addresses with realistic data
When enabled with Auto address mode, generates addresses based on detected IP geolocation. Uses ip-api.com for location detection.
Static- Use predefined namesManual- Use custom names from settingsAuto- Generate names matching address data
The "Clear All Data" button removes:
- Cookies for stripe.com domains
- LocalStorage and SessionStorage
- IndexedDB entries
- Cache entries
- Service worker registrations
- BIN template parsing with 'x' placeholder support
- Luhn checksum calculation using lookup table optimization
- Expiry date generation (1-60 months from current date)
- CVV generation (3-4 digits based on card type)
- Card type detection via BIN ranges (Visa, Mastercard, Amex, Discover, JCB, UnionPay, Diners, Maestro)
- Batch generation with uniqueness verification
Built-in datasets:
- 50 US states with accurate ZIP code ranges
- 1000+ real US cities (20-40 per state)
- 100+ realistic street names with variations
- Multiple street types (Street, Avenue, Road, Drive, Lane, etc.)
- Address line 2 generation (apartments, suites, units)
- Weighted city selection for popular metropolitan areas
IP Geolocation (optional):
- Detects user location via IP address
- Maps region data to US state codes
- Falls back to random selection if detection fails
- Only active in Auto address mode
- 100+ weighted male/female first names
- 100+ weighted last names
- Middle name support (70% probability)
- Gender-appropriate name selection
- Realistic distribution based on US census data
- Automatic 3DS challenge modal detection
- IP blocking on challenge detection
- Country information via ip-api.com
- Blocked IP history with timestamps
- Manual IP management interface
Manifest V3 extension with following structure:
├── manifest.json # Extension manifest (v3)
├── popup.html/js # Extension UI and logic
├── styles.css # Multi-theme styling
├── background.js # Service worker (card/address generation)
├── content.js # Form detection and filling
├── dataGenerator.js # Address/name generation algorithms
├── cursorRegistration.js # Cursor AI integration (dev)
└── translations.json # i18n support (EN/RU)
Key permissions:
storage- Local data persistenceactiveTab- Access to current Stripe pagescripting- Content script injectioncookies- Cookie management for data clearingbrowsingData- Cache/storage clearing
Content script uses multiple detection strategies:
- Shadow DOM traversal for nested elements
- Autocomplete attribute matching
- Name/ID attribute scoring
- Placeholder and aria-label analysis
- Field synonym matching with weighted scoring
All data stored in chrome.storage.local:
currentBin- Active BIN templatebinHistory- Recent BIN list (max 20)customAddresses- User addressescustomNames- User namesaddressSource/nameSource- Generation modeuseIPLocation- IP geolocation toggleuseLuhnValidation- Luhn validation toggleblockedIPs- IP blocker datatheme/language- UI preferences
The extension makes HTTPS requests to:
ipwho.is- IP geolocation with CORS support (only when IP-based location is enabled in Auto mode)api.ipify.org- IP address detection (IP blocker feature)
All API calls use HTTPS for security. Card/address generation algorithms run locally.
Requires Chromium-based browser with Manifest V3 support:
- Chrome 88+
- Edge 88+
- Brave 1.20+
- Opera 74+
- Only works on Stripe checkout pages
- IP geolocation limited to US addresses
- Form detection may fail on heavily customized checkout implementations
- Shadow DOM elements require specific detection logic
- Luhn validation algorithm
- US address generation (50 states)
- Name generation with demographics
- IP-based geolocation
- Multi-theme UI
- IP blocker for 3DS
- i18n support (EN/RU)
- Settings import/export
- Keyboard shortcuts
- Additional country support
For testing purposes only. This tool is designed for Stripe test mode and should only be used with test API keys and test payment methods. Never use with real payment credentials or production Stripe accounts.
- IP-based address generation with geolocation
- Extended city database (1000+ real US cities)
- 3DS challenge detection and IP blocking
- Multi-theme support (5 themes)
- Bilingual interface (EN/RU)
- Name source configuration
- Improved form detection for nested elements
- Card accordion auto-selection
- Enhanced address accuracy with 20-40 cities per state
- Realistic name generation (demographics-based)
- Address generation for all 50 US states
- Initial city database (500+ cities)
- Weighted randomization for realistic data
- Custom name management
- Luhn validation with lookup table optimization
- BIN history (up to 20 entries)
- Custom address management
- Settings panel
- Data clearing functionality
- Initial release
- Basic card generation
- Static address support
- Dark theme UI
MIT License - see LICENSE file
Maksim Gofman
- GitHub: @GofMan5
- Telegram: @GofMan5
Pull requests welcome. For major changes, open an issue first to discuss proposed changes.
- Fork repository
- Create feature branch
- Commit changes
- Push to branch
- Open pull request