Open Source — Apache 2.0
Portable identity for
the open web
TIP is a protocol, not a platform. Your identity and reputation travel with you — and no single company can take them away.
Why TIP exists
Platform lock-in vs. an open identity layer
The Problem
- Your identity is locked inside each platform
- Reputation doesn’t transfer between sites
- Platforms own and monetize your data
- Vendor lock-in makes switching painful
With TIP
- You own your identity — export it anytime
- Reputation travels with you, site to site
- Privacy by design — you control what’s shared
- Open standard — no vendor lock-in
Protocol features
Everything an open identity standard needs
Portable IdentityOne identity that works across every TIP-enabled site. No new accounts.
Transparent ReputationOpen algorithm. Published formula. No black boxes.
Privacy LayerSession hashing, consent management, cross-site visibility controls.
Open StandardApache 2.0 licensed. Anyone can implement. Open governance.
Reference SDKsTypeScript, Python, and Go implementations included in the repo.
Conformance SuiteTest suite to verify any implementation matches the spec.
How TIP works
Sign in once. Carry trust everywhere.
01
Sign In
User signs in to any TIP-enabled site using their TIP identity.
02
Verify
Site verifies the identity document’s cryptographic signature.
03
Reputation
Reputation score and level are available. Transparent, auditable.
04
Interact
User comments, reacts, builds reputation that travels to the next site.
For Developers
Reference SDKs for TypeScript, Python, and Go live under tip/reference-impl/sdk/. Same protocol surface — resolve identity, read reputation, update privacy.
Install
npm install @threadline/tip-sdk # or from the monorepo: # cd tip/reference-impl/sdk/javascript && npm install && npm run build
Resolve identity · reputation · privacyTypeScript
import { createTIPClient } from '@threadline/tip-sdk';
const tip = createTIPClient('https://tip.example.com', 'site_abc');
const identity = await tip.resolveIdentity('tip_user_123');
if (!identity) throw new Error('Identity not found');
console.log(identity.profile.display_name);
console.log(identity.reputation.level); // new | established | trusted | …
const rep = await tip.getReputation('tip_user_123');
// { score, level, last_computed, … }
await tip.setPrivacy('tip_user_123', {
cross_site_visible: false,
history_public: true,
}, accessToken);Build on the open web
Use Threadline Comments for the managed experience, or implement TIP yourself. Either way, you’re building on open standards.