
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
@etherspot/remote-signer
Advanced tools
Etherspot Permissioned Signer SDK - signs the UserOp with SessionKey and sends it to the Bundler
The signUserOperation function will handle the signing process and return the signed user operation.
import { signUserOperation } from './path/to/remote-signer';
const extendedLocalAccount: ExtendedLocalAccount = await toRemoteSigner({
account: createLocalAccount(etherspotWalletAddress),
chainId: chainId,
apiKey: apiKey,
sessionKey: sessionKey
});
SessionKeys are stored in AWS Secrets in this format
SessionKey is stored as a secret with secretName: sessionKey-${account}
account is the EtherspotWalletAddress
an account can have multiple sessionkeys under a chainId
{
1: [
{
chainId,
account,
apiKey,
publicKey,
privateKey,
nonce,
validUntil,
validAfter
}
],
100: [
{
chainId,
account,
apiKey,
publicKey,
privateKey,
nonce,
validUntil,
validAfter
},
{
chainId,
account,
apiKey,
publicKey,
privateKey,
nonce,
validUntil,
validAfter
}
],
}
developers can do remote sign an UserOp using SessionKeys and send the signedUserOp to Etherspot Bundler
etherspot-permissions-backendremote-signer-sdk is to be installed from the npm public repoSample Usage Script: session-key-signer-script-for-erc20-transfer
toRemoteSigner
Initialize an ExtendedLocalAccount which is an extended version of Viem's LocalAccount
This is a closure created with functions to sign the Userop using SessionKey of the etherspotWalletAddress
const extendedLocalAccount: ExtendedLocalAccount = await toRemoteSigner({
account: createLocalAccount(etherspotWalletAddress),
chainId: chainId,
apiKey: apiKey,
sessionKey: sessionKey
});
const op = await generateSignedUserOp();
const signedUserOp: UserOperation = await extendedLocalAccount.signUserOpWithRemoteSigner(op);
signUserOp
extracts the sessionKey Data and privateKey from Cloud KMS Storage
sign the userOp using the privateKey associated with SessionKey
const externalViemAccount = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as string as Hex);
const bundlerProvider = new EtherspotBundler(chainId, bundlerApiKey);
const remoteSignerSdk = await RemoteSignerSdk.create(externalViemAccount, {
etherspotWalletAddress: etherspotWalletAddress,
chainId: chainId,
apiKey: apiKey,
sessionKey: sessionKey,
bundlerProvider: bundlerProvider
});
const signedUserOp = await remoteSignerSdk.signUserOp(op);
getSessionKey
let url = `<permissionedBackendURL>/account/getSessionKey?account=${accountAddress}&chainId=${chainId}&apiKey=${apiKey}&sessionKey=${sessionKey}`;
response = await fetch(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
});
SignUserOp with SessionKey
let url = `<permissionedBackendURL>/account/signUserOp?account=${accountAddress}&chainId=${chainId}&sessionKey=${sessionKey}&apiKey=${apiKey}`;
response = await fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(deepHexlify(await resolveProperties(userOp))),
});
FAQs
Etherspot Permissioned Signer SDK - signs the UserOp with SessionKey and sends it to the Bundler
We found that @etherspot/remote-signer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.