@coinstats/connectkit
v1.0.0
Published
Browser SDK for opening CoinStats ConnectKit popup flows.
Readme
CoinStats ConnectKit SDK
Browser SDK for opening hosted CoinStats ConnectKit popup flows from partner apps.
npm install @coinstats/connectkitimport { openCoinStatsConnect } from "@coinstats/connectkit";
const handle = openCoinStatsConnect({
id: "pcw_123",
redirectUri: "https://your-app.example.com/coinstats/callback",
state: "opaque-user-state",
mode: "both",
appearance: "dark",
accentColor: "#F7931A",
onSuccess(result) {
console.log("Connected portfolio", result.portfolioId);
},
onError(error) {
console.error(error);
},
onClose() {
console.log("User closed the popup");
},
});
handle.close();Why ConnectKit
ConnectKit lets your app send users into a CoinStats-hosted wallet or exchange connection flow without exposing your CoinStats Public API key in browser code. Your frontend uses only the public ConnectKit id, redirect URL, and optional state value.
Options
| Option | Required | Description |
| --- | --- | --- |
| id | Yes, unless connectUrl is provided | Public ConnectKit ID from the CoinStats dashboard. |
| redirectUri | Yes with id | URL where the user returns after the hosted flow. |
| state | No | Opaque value returned in the final result. |
| mode | No | Connection mode: wallet, exchange, or both. |
| appearance | No | Popup theme: light or dark. |
| accentColor | No | Hex color for partner styling. |
| onSuccess | No | Called when the popup posts a successful result. |
| onError | No | Called when the popup cannot be opened or the session cannot be created. |
| onClose | No | Called when the user closes the popup before completion. |
If your backend already created a ConnectKit session, open the returned URL directly:
openCoinStatsConnect({
connectUrl,
onSuccess(result) {
console.log(result);
},
});Browser Script
The package ships a standalone browser bundle exposing window.openCoinStatsConnect:
<script src="https://unpkg.com/@coinstats/connectkit/dist/connect.global.js"></script>
<script>
window.openCoinStatsConnect({
id: "pcw_123",
redirectUri: "https://your-app.example.com/coinstats/callback",
onSuccess: function (result) {
console.log(result);
}
});
</script>Development
npm install
npm test
npm run typecheck
npm run build
npm run smokeLicense
MIT
