Official Node.js SDK for UnveilPass — zero-knowledge password manager.
- Agent Gateway — Request credentials from your vault with human-in-the-loop approval
- CryptoLink — Send encrypted files with end-to-end encryption (AES-256-GCM)
- Zero-knowledge — All encryption happens client-side. The server never sees your data.
npm install @unveilpass/sdkconst { UnveilPassAgent } = require('@unveilpass/sdk');
const agent = new UnveilPassAgent('uvp_agent_your_key_here');
// Request a credential (blocks until manager approves)
const cred = await agent.getCredential('entry-uuid-here', { ttl: 300, timeout: 120 });
console.log(cred.username, cred.password);const { UnveilPassAgent } = require('@unveilpass/sdk');
const agent = new UnveilPassAgent('uvp_agent_your_key_here');
// Send a file with PIN protection
const result = await agent.sendFile('contract.pdf', {
ttl: 86400, // 24 hours
pin: '482916',
message: 'Please sign and return'
});
console.log(result.link); // Share with recipient
console.log(result.pin); // Share separately
// With download limit
const result2 = await agent.sendFile('report.xlsx', {
ttl: 604800, // 7 days
maxDownloads: 5
});
// List and delete
const sends = await agent.listSends();
await agent.deleteSend(sends[0].id);Create an agent client. Default server: https://unveilpass.com.
| Method | Description |
|---|---|
requestCredential(entryId, ttl?) |
Request access. Returns requestId. |
checkStatus(requestId) |
Check status (pending, approved, denied, expired). |
fetchCredential(requestId) |
Fetch credential after approval (one-time). |
getCredential(entryId, options?) |
Request and wait (blocking). Options: { ttl, timeout, pollInterval }. |
| Method | Description |
|---|---|
sendFile(filepath, options?) |
Encrypt and upload. Options: { ttl, maxDownloads, singleUse, pin, message }. Returns { link, id, pin? }. |
listSends() |
List all CryptoLink sends. |
deleteSend(sendId) |
Delete a CryptoLink send. |
- Files encrypted client-side with AES-256-GCM (Node.js
cryptomodule) - Decryption key in URL fragment — never sent to server
- PIN hashed with SHA-256 — server never sees the PIN
- Agent credentials are one-time use with TTL
- Node.js 16+
- No external dependencies (uses built-in
cryptoandfsmodules)
MIT