vaultum / sdk
PHP SDK for Vaultum smart account - ERC-4337 account abstraction wallet
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/vaultum/sdk
Requires
- php: ^8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
This package is auto-updated.
Last update: 2025-09-30 10:13:21 UTC
README
PHP SDK for Vaultum Smart Account - ERC-4337 Account Abstraction Wallet
Installation
Install via Composer:
composer require vaultum/sdk
Quick Start
<?php require_once 'vendor/autoload.php'; use VaultumSDK\Configuration; use VaultumSDK\ApiException; use VaultumSDK\Api\AccountApi; use VaultumSDK\Api\UserOpApi; // Configure API client $config = Configuration::getDefaultConfiguration() ->setApiKey('Authorization', 'your-api-key') ->setApiKeyPrefix('Authorization', 'Bearer'); // Initialize APIs $accountApi = new AccountApi(null, $config); $userOpApi = new UserOpApi(null, $config); // Deploy a smart account try { $deployRequest = [ 'owner' => '0x...', 'modules' => ['social-recovery', 'session-keys', 'spending-limits'] ]; $account = $accountApi->deployAccount($deployRequest); echo "Account deployed at: " . $account->getAddress() . "\n"; } catch (ApiException $e) { echo "Error: " . $e->getMessage() . "\n"; } // Submit a UserOperation try { $userOp = [ 'account' => $account->getAddress(), 'calls' => [ [ 'to' => '0x...', 'value' => '0', 'data' => '0x...' ] ] ]; $opId = $userOpApi->submitUserOp($userOp); echo "Operation ID: " . $opId->getId() . "\n"; } catch (ApiException $e) { echo "Error: " . $e->getMessage() . "\n"; }
Features
- 🔐 Smart Account Management: Deploy and manage ERC-4337 smart accounts
- 🔑 Session Keys: Grant time-bound, limited permissions
- 👥 Social Recovery: Recover accounts with guardian approvals
- 💰 Spending Limits: Set daily spending caps per token
- ⛽ Gasless Transactions: Submit UserOps with paymaster support
- 🔗 Cross-chain Support: Works on Ethereum, Polygon, Arbitrum, Optimism, Base
API Reference
Account Management
// Deploy new account $account = $accountApi->deployAccount($params); // Get account info $info = $accountApi->getAccount($address);
UserOperations
// Submit UserOp $opId = $userOpApi->submitUserOp($userOp); // Get status $status = $userOpApi->getOpStatus($opId); // Wait for completion $receipt = $userOpApi->waitForOp($opId);
Recovery Module
// Initiate recovery $recoveryApi->initiateRecovery($account, $newOwner); // Support recovery $recoveryApi->supportRecovery($account, $nonce); // Execute recovery $recoveryApi->executeRecovery($account, $nonce); // Get recovery status $status = $recoveryApi->getRecoveryStatus($account);
Session Keys
// Grant session key $sessionApi->grantSessionKey($account, $key, $expiry, $selectors); // Revoke session key $sessionApi->revokeSessionKey($account, $key); // Update selectors $sessionApi->updateSelectors($account, $key, $selectors);
Spending Limits
// Set limit $limitsApi->setSpendingLimit($account, $token, $cap); // Get limits status $status = $limitsApi->getLimitsStatus($account); // Enable owner bypass $limitsApi->enableOwnerBypass($account, $duration);
Configuration
Authentication
The SDK uses Bearer token authentication:
$config = Configuration::getDefaultConfiguration() ->setApiKey('Authorization', 'your-api-key') ->setApiKeyPrefix('Authorization', 'Bearer');
Custom API Endpoint
$config = Configuration::getDefaultConfiguration() ->setHost('https://api.vaultum.io');
Request Timeout
$config = Configuration::getDefaultConfiguration() ->setApiKey('Authorization', 'your-api-key') ->setApiKeyPrefix('Authorization', 'Bearer') ->setTempFolderPath(sys_get_temp_dir()) ->setDebug(true);
Networks Supported
- Ethereum Mainnet
- Ethereum Sepolia (testnet)
- Polygon
- Arbitrum
- Optimism
- Base
Requirements
- PHP 8.1 or higher
- ext-curl
- ext-json
- ext-mbstring
Testing
Run the test suite:
composer test
License
MIT
Links
Support
For issues and feature requests, please visit our GitHub Issues.