
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.
@teller-protocol/teller-widget
Advanced tools
Welcome to the Teller Widget! This widget allows any dapp to integrate Teller's front end into their app and allow users to do cash advances with either the tokens in their wallets or a specified token list. _Please note that a subgraph studio api key is
Welcome to the Teller Widget! This widget allows any dapp to integrate Teller's front end into their app and allow users to do cash advances with either the tokens in their wallets or a specified token list. Please note that a subgraph studio api key is required to use the widget. Please refer below for instructions.
THIS REQUIRES WAGMI IN THE CONSUMER APP
@tanstack/react-query
alchemy-sdk
graphql
graphql-request
react
react-dom
@teller-protocol/v2-contracts
Install the widget (and required packages) by using npm or yarn
yarn add @teller-protocol/teller-widget @tanstack/react-query alchemy-sdk graphql graphql-request react react-dom @teller-protocol/v2-contracts
npm i --save @teller-protocol/teller-widget @tanstack/react-query alchemy-sdk graphql graphql-request react react-dom @teller-protocol/v2-contracts
Please refer to this guide
To use the widget, import the TellerWidget component. None of the props are required.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget />;
};
The widget works out of the box with no configuration. However, you can pass in the following props to customize the widget.
subgraphApiKeyA mandatory api key to be able to use our subpgrah.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget subgraphApiKey="xxxxx" />;
};
buttonLabelA string to replace the default Cash Advance button label.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget buttonLabel="Get a loan now!" />;
};
whitelistedTokensAn object grouped by chainId, made up of a list of token addresses. By default these tokens show on additionally to the ones in the user's wallet.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const whiteListedTokens = {
[137]: [
"0x61299774020da444af134c82fa83e3810b309991",
"0x692ac1e363ae34b6b489148152b12e2785a3d8d6",
],
[1]: ["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"],
};
const App = () => {
return <TellerWidget whiteListedTokens={whiteListedTokens} />;
};
showOnlyWhitelistedTokensA boolen to only show the tokens defined in the whitelistedTokens prop.
Must be used together with the whitelistedTokens prop.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const whiteListedTokens = {
[137]: [
"0x61299774020da444af134c82fa83e3810b309991",
"0x692ac1e363ae34b6b489148152b12e2785a3d8d6",
],
[1]: ["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"],
};
const App = () => {
return (
<TellerWidget
whiteListedTokens={whiteListedTokens}
showOnlyWhitelistedTokens
/>
);
};
buttonColorPrimaryA string to change the background color for the primary button. Must be in hex format, including the #, ie #ffffff
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget buttonColorPrimary="#000000" />;
};
buttonTextColorPrimaryA string to change the text color for the primary button. Must be in hex format, including the #, ie #ffffff
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget buttonTextColorPrimary="#ffffff" />;
};
buttonClassNameA string to be passed to the main button for adding a css class. Use this for customizing the button to match your app's design.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget buttonClassName="button-v2" />;
};
isButtonBareA boolean for additional styling control. This resets the buttons's style to the browser's default.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget buttonClassName="button-v2" isButtonBare />;
};
whitelistedChainsAn optional array to show desired chains. By default, the widget shows all chains.
Available chains:
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget whitelistedChains={[1, 137]} />;
};
referralFeeA number to set the referral fee %, passed in basis points. For example, 100 = 1%, max 500 = 5%. Note, referral fee on rollover loans is capped at 5% of the original loan repayment.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget referralFee={100} />;
};
referralAddressA string to set the widget host wallet address, which receives the referral fee.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget referralAddress={"0x..."} />;
};
welcomeScreenLogoA string, of an image URL, to set as the widget host logo on the widget welcome screen. This is displayed on the widget's welcome screen. Must include the "https://" and image file ending. Image types include .png, .jpg, .jpeg, .svg.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget welcomeScreenLogo={"https://img-url.png"} />;
};
welcomeScreenTitleA string which sets the bold, header text on the widget's welcome screen.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return <TellerWidget welcomeScreenTitle={"DeFi's cash advance"} />;
};
welcomeScreenParagraphA string which sets the body, paragraph text on the widget's welcome screen.
import { Widget as TellerWidget } from "@teller-protocol/teller-widget";
const App = () => {
return (
<TellerWidget
welcomeScreenParagraph={
"Time-based loans, up to thirty days, with no margin-call liquidations."
}
/>
);
};
Run storybook by doing
yarn storybook
FAQs
Welcome to the Teller Widget! This widget allows any dapp to integrate Teller's front end into their app and allow users to do cash advances with either the tokens in their wallets or a specified token list. _Please note that a subgraph studio api key is
The npm package @teller-protocol/teller-widget receives a total of 16 weekly downloads. As such, @teller-protocol/teller-widget popularity was classified as not popular.
We found that @teller-protocol/teller-widget demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 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.