@zerohash-sdk/crypto-account-link-js
v1.3.1
Published
A JavaScript SDK that enables frontend applications to seamlessly integrate with the Connect Crypto Account Link product.
Readme
@zerohash-sdk/crypto-account-link-js
A JavaScript SDK that enables frontend applications to seamlessly integrate with the Connect Crypto Account Link product.
Connect Crypto Account Link provides a secure, customizable flow for linking external crypto accounts (for deposits or payouts) directly within your application.
Installation
Via NPM (recommended)
npm install @zerohash-sdk/crypto-account-link-jsimport { CryptoAccountLink } from '@zerohash-sdk/crypto-account-link-js';Via CDN
<script
type="module"
src="https://sdk.connect.xyz/crypto-account-link-web/index.js"
></script>Or import directly in your JavaScript code:
import { CryptoAccountLink } from 'https://sdk.connect.xyz/crypto-account-link-web/index.js';Getting Started
1. Import the CryptoAccountLink module
import { CryptoAccountLink } from '@zerohash-sdk/crypto-account-link-js';2. Initialize and render the widget
const cryptoAccountLink = new CryptoAccountLink({
jwt: 'your-jwt-token',
env: 'prod',
theme: 'auto',
isPayouts: false, // true for payouts/withdrawals, false for deposits
onCompleted: ({ externalAccountId, address, nickname, asset, network }) => {
console.log('Account linked:', externalAccountId, address);
},
onExternalAccountCreated: () => {
console.log('External account created');
},
onError: ({ errorCode, reason }) => {
console.error('Error:', errorCode, 'Reason:', reason);
},
onClose: () => console.log('Widget closed'),
onEvent: ({ type, data }) => console.log('Event:', type, data),
onLoaded: () => console.log('Widget loaded and ready'),
});
await cryptoAccountLink.render(document.getElementById('crypto-account-link-container'));
cryptoAccountLink.destroy();2.1 Using TypeScript (optional)
import { CryptoAccountLink, CryptoAccountLinkConfig } from '@zerohash-sdk/crypto-account-link-js';
const config: CryptoAccountLinkConfig = {
jwt: 'your-jwt-token',
env: 'cert',
isPayouts: false,
onCompleted: ({ externalAccountId, address }) => {
console.log(externalAccountId, address);
},
};
const cryptoAccountLink = new CryptoAccountLink(config);
await cryptoAccountLink.render(document.getElementById('container')!);API Reference
Configuration
| Prop | Type | Required | Default | Description |
| -------------------------- | ------------------------------------------------------------------------- | -------- | -------- | ----------------------------------------------------------- |
| jwt | string | Yes | - | JWT token for authentication with Connect |
| env | "prod" \| "cert" \| "dev" \| "local" | No | "prod" | Target environment |
| theme | "auto" \| "light" \| "dark" | No | "auto" | Theme mode for the interface |
| isPayouts | boolean | No | false | Set to true for payouts/withdrawals, false for deposits |
| onCompleted | ({ externalAccountId?, address?, nickname?, asset?, network? }) => void | No | - | Callback when account linking completes successfully |
| onExternalAccountCreated | () => void | No | - | Callback when an external account is created |
| onError | ({ errorCode, reason }) => void | No | - | Callback for error events |
| onClose | () => void | No | - | Callback when the widget is closed |
| onEvent | ({ type, data }) => void | No | - | Callback for general events |
| onLoaded | () => void | No | - | Callback when the widget is loaded and ready |
Methods
render(container: HTMLElement): Promise<void>
updateConfig(config: Partial<CryptoAccountLinkConfig>): void
destroy(): void
isRendered(): boolean
getConfig(): CryptoAccountLinkConfig
Browser Support
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- All modern browsers with Web Components support
More Information & Support
For comprehensive documentation or support about Connect, visit our Documentation Page.
