Bookmarklet tools for extracting claims from any web page and linking them into a decentralized web of trust. Extract attestations, claims, and trust signals from articles, social profiles, forums, or any web content.
TrustClip enables users to:
- Extract claims from any web content (articles, posts, profiles, documents)
- Link claims into a decentralized trust graph
- Preserve context by maintaining source URLs and metadata
- Build trust networks from existing web content
npm install @linked-claims/trustclipSpecialized bookmarklet for verifying LinkedIn account age:
import { LinkedInBookmarklet } from '@linked-claims/trustclip';
const linkedInBookmarklet = new LinkedInBookmarklet({
apiEndpoint: 'https://your-api.com/linkedin/verify-age',
tokenKey: 'linkedin_verification_token' // optional, defaults to this
});
// Get bookmarklet code
const code = linkedInBookmarklet.getBookmarkletCode();
// Get as data URI for links
const uri = linkedInBookmarklet.getBookmarkletURI();The primary use case - extract claims from any web content:
import { ClaimExtractionBookmarklet } from '@linked-claims/trustclip';
// Extract claims from news articles, blog posts, forum discussions, etc.
const claimBookmarklet = new ClaimExtractionBookmarklet({
apiEndpoint: 'https://your-api.com/process',
enableOnSelect: false // click to activate
});
// Auto-extract when text is selected (for power users)
const autoClaimBookmarklet = new ClaimExtractionBookmarklet({
apiEndpoint: 'https://your-api.com/process',
enableOnSelect: true
});Use cases:
- Extract claims from news articles
- Capture attestations from blog posts
- Save endorsements from recommendation letters
- Collect statements from research papers
- Archive promises from company announcements
Load a more complex script from your server (useful for development):
import { DynamicLoaderBookmarklet } from '@linked-claims/trustclip';
const loaderBookmarklet = new DynamicLoaderBookmarklet(
'https://your-server.com' // will load from /bookmarklet.js
);<!-- LinkedIn Age Verification -->
<a href="javascript:(function(){...})"
class="bookmarklet">
🔍 Verify LinkedIn Age
</a>
<!-- Claim Extraction -->
<a href="javascript:(function(){...})"
class="bookmarklet">
📋 Extract Claims
</a>Or in React:
function BookmarkletButtons() {
const linkedIn = new LinkedInBookmarklet({
apiEndpoint: '/api/linkedin/verify'
});
const claims = new ClaimExtractionBookmarklet({
apiEndpoint: '/api/claims/extract'
});
return (
<div>
<a href={linkedIn.getBookmarkletURI()}>
Verify LinkedIn
</a>
<a href={claims.getBookmarkletURI()}>
Extract Claims
</a>
</div>
);
}Your API endpoints should accept:
POST /api/linkedin/verify-age
Headers: {
'X-Verification-Token': 'token-from-session'
}
Body: {
memberSince: string, // "Member since March 2018"
year: number, // 2018
month: string, // "March"
profileUrl: string, // Full LinkedIn URL
profileId: string, // LinkedIn ID
timestamp: string // ISO timestamp
}POST /api/claims/extract
Body: {
text: string, // Selected text
source_url: string // Current page URL
}npm install
npm run build-
Build and link this package:
cd /Users/gv/parent/linked-trust/trustClip npm install npm run build npm link -
Link in the talent app (when ready to test):
cd /Users/gv/parent/linked-trust/talent npm link @linked-claims/trustclip -
To unlink later:
cd /Users/gv/parent/linked-trust/talent npm unlink @linked-claims/trustclip
Note: The talent app currently has its own embedded version of the bookmarklet code. This package structure is for future migration.