Launch Week Day 2: Introducing Reports: An Extensible Reporting Framework for Socket Data.Learn More
Socket
Book a DemoSign in
Socket

@slide-computer/signer-agent

Package Overview
Dependencies
Maintainers
1
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@slide-computer/signer-agent

Initiate transactions with signers on the Internet Computer

latest
Source
npmnpm
Version
4.2.2
Version published
Weekly downloads
901
69.68%
Maintainers
1
Weekly downloads
 
Created
Source

@slide-computer/signer-agent

Initiate transactions with signers on the Internet Computer.

Installation

Using SignerAgent:

npm i --save @slide-computer/signer-agent

In the browser:

import { SignerAgent } from "@slide-computer/signer-agent";

To get started with the signerAgent, run

const accounts = await signer.accounts();
const agent = await SignerAgent.create({
    signer,
    account: accounts[0].owner
});

The signerAgent can initiate a transaction with

import {IcrcLedgerCanister} from "@dfinity/ledger-icrc";

const icpLedger = IcrcLedgerCanister.create({
    agent,
    canisterId: ICP_LEDGER_CANISTER_ID,
});
const blockIndex = await icpLedger.transfer({
    to: TARGET_ACCOUNT,
    amount: 100_000_000
});

The signerAgent can automatically batch calls with

import {IcrcLedgerCanister} from "@dfinity/ledger-icrc";

const icpLedger = IcrcLedgerCanister.create({
    agent,
    canisterId: ICP_LEDGER_CANISTER_ID,
});
const ckBtcLedger = IcrcLedgerCanister.create({
    agent,
    canisterId: CK_BTC_LEDGER_CANISTER_ID,
});

// If a signer does not support batch calls, signerAgent will 
// automatically fallback to executing the calls one by one.
const [icpBlockIndex, ckBtcBlockIndex] = await Promise.all([
    icpLedger.approve({
        spender: TARGET_ACCOUNT,
        amount: 70_000_000
    }),
    ckBtcLedger.approve({
        spender: TARGET_ACCOUNT,
        amount: 1_000_000
    })
]);

For more advanced use cases, the signerAgent can also manually batch calls with

import {IcrcLedgerCanister} from "@dfinity/ledger-icrc";

const icpLedger = IcrcLedgerCanister.create({
    agent,
    canisterId: ICP_LEDGER_CANISTER_ID,
});
const ckBtcLedger = IcrcLedgerCanister.create({
    agent,
    canisterId: CK_BTC_LEDGER_CANISTER_ID,
});

agent.batch(); // Below execution of calls needs to be triggered manually

const icpBlockIndexPromise = icpLedger.approve({
    spender: TARGET_ACCOUNT,
    amount: 70_000_000
});
const ckBtcBlockIndexPromise = ckBtcLedger.approve({
    spender: TARGET_ACCOUNT,
    amount: 1_000_000
});

agent.batch() // Indicate that below calls should be executed by the signer after the above

const swapResultPromise = backendActor.swapTokens(swapId);

// Trigger execution of all the above scheduled calls
// 
// If a signer does not support batch calls, signerAgent will 
// automatically fallback to executing the calls one by one.
await agent.execute();

// Get individual results
const icpBlockIndex = await icpBlockIndexPromise;
const ckBtcBlockIndex = await ckBtcBlockIndexPromise;
const swapResult = await swapResultPromise;

Keywords

internet computer

FAQs

Package last updated on 24 Feb 2026

Did you know?

Socket

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.

Install

Related posts