> For the complete documentation index, see [llms.txt](https://docs.karrier.one/karrier-one-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.karrier.one/karrier-one-api/caller-verification-api/call-verification-flow.md).

# Call Verification Flow

Each phone number can be registered as an NFT, enabling secure verification of calls by mapping identities to digital keys on the Sui blockchain.

### How It Works

#### 🧾 KNS NFT Registration

* End users register their phone numbers (e.g., `+17025551234`), which are minted as **KNS NFTs** and stored in their wallet.
* These NFTs can be branded and optionally display phone number metadata.

***

#### 🔐 Signing Key Registration (For Telecom Operators)

* Telecom operators can generate and register **signing keys**.
* The keys and associated certificate repository are managed by the operator from their own wallet.
* This process is handled on the **Sui blockchain**.
* Operators can automate this via CLI or integrate it into their own systems using: [register-keystore.ts](https://github.com/Karrier-One/caller-verification)

***

#### 🔄 KNS to Registry Mapping

* Karrier One provides a secure, authenticated API to **map phone numbers** to their KNS NFT IDs or certificate registry IDs.
* Phone numbers are **not stored on-chain** (ensuring privacy).
* Off-chain logic (e.g., vendor defaults) is supported.
* Mapping data can be exported to S3/CDN-like systems for high performance.

**API Endpoint:**\
<https://kns-api.karrier.dev>

***

#### 🗂️ Certificate Registry Linking

* A **global shared object** maps a KNS NFT to one or more certificate repositories.
* KNS holders have full control over who is authorized to sign on their behalf:
  * Telcos
  * PBX systems
  * Dialers

***

### 🛠️ Operational Workflow

**📌 Key Registration & Certificate Setup**

1. Generate ES256 key pair
2. Register keys on-chain
3. Assign to repositories
4. Upload public keys (S3/IPFS/etc.)
5. Done

**📞 Signing & Authenticating a Call**

1. **Sign a Call**
   * Generate `JWT (STIR/SHAKEN)`-like identity header
   * Sign with private key
2. **Authenticate Call**
   * Lookup repository
   * Verify signature using public key

**🔁 Repository Lookup**

1. Decode JWT
2. Map phone number to KNS ID
3. Resolve KNS ID to registry
4. Retrieve public key
5. Verify signature

***

### Conclusion

The Call Verification Flow by Karrier One ensures cryptographic authenticity of telecom calls using NFTs, public key infrastructure, and blockchain registries. It provides an interoperable, privacy-focused, and fully decentralized approach to secure communication.

For help or integration support, reach out to <support@karrier.one>.

## Flow Chart & Overview

<figure><img src="https://1343437234-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2J36Me8m3Rq5gwWD8Fvi%2Fuploads%2FMHJaptnBIHZ0JxYOUeyY%2FSTIR_SHAKEN.png?alt=media&amp;token=dd4337bb-d9c3-4591-bae8-59e4d4c1648a" alt=""><figcaption><p>Flow Chart of Call Verification Flow</p></figcaption></figure>
