@joai/warps-wallet-remote
v1.2.0
Published
Generic remote wallet provider for signer services
Readme
@joai/warps-wallet-remote
Generic remote wallet provider package for Warps SDK.
This package is intentionally backend-agnostic. It supports any remote signer service by configuration.
Installation
npm install @joai/warps-wallet-remoteUsage
import { WarpClient, WarpChainName } from '@joai/warps'
import { createRemoteWalletProvider } from '@joai/warps-wallet-remote'
const providerKey = 'myRemoteSigner'
const client = new WarpClient({
env: 'devnet',
user: {
id: 'agent-1',
wallets: {
[WarpChainName.Ethereum]: {
provider: providerKey,
address: '0x...',
externalId: 'wallet-1',
},
},
},
walletProviders: {
[WarpChainName.Ethereum]: {
[providerKey]: createRemoteWalletProvider(
{
baseUrl: 'https://signer.example',
providerName: providerKey,
serviceToken: process.env.SIGNER_SERVICE_TOKEN,
getAccessToken: async ({ walletId, chain, nonce }) => {
return await issueSignerToken({ walletId, chain, nonce })
},
},
providerKey
),
},
},
})Register the provider under the same key you store on the wallet config.
If you use a custom provider key, pass it as providerName or the helper fallback so generated/imported wallets persist the correct provider.
Default Endpoints
POST /v1/wallets/generatePOST /v1/wallets/importPOST /v1/wallets/exportPOST /v1/wallets/deletePOST /v1/sign/transactionPOST /v1/sign/message
Override with endpoints when your signer API differs.
Advanced Customization
headers: static request headersgetHeaders(context): per-operation dynamic headerstransformPayload(context, payload): mutate payloads before sending
These hooks allow integrating heterogeneous signer APIs without modifying SDK internals.
Security Defaults
- HTTPS required by default (
allowInsecureHttponly for explicit local/dev use) - Relative endpoint paths only (prevents endpoint host override/SSRF)
- Strict token validation (non-empty service/access token)
- Request timeout (default
15000ms)
