Documentation
Entitle API & SDK
Use these endpoints to mint licenses and verify access. Follow the 10-minute integration path below.
10-minute integration
- Authenticate with
/v1/auth/loginto get a Basic token. - Create a product (chainId + contract + productId) via
/v1/products. - Mint a license with
/v1/licenses/mint. - Verify with
/v1/verifyor the SDK.
Auth
Authenticate with dashboard credentials to receive a Basic token for subsequent requests.
POST /v1/auth/login
{ "email": "dev@example.com", "password": "password123" }Products
Define SKUs tied to chainId + contract + productId.
POST /v1/products
{
"name": "Pro Access",
"description": "Lifetime unlock",
"chainId": 8453,
"contractAddress": "0x000...",
"productId": 1,
"tier": "Pro",
"rpcUrl": "https://rpc..."
}Mint
Issue a non-transferable license to a wallet.
POST /v1/licenses/mint
{
"wallet": "0x000000000000000000000000000000000000dEaD",
"productId": 1,
"tokenId": 0
}Verify
Check if a wallet has a license for a productId.
GET /v1/verify?wallet=0x...&productId=1
Response: { "hasLicense": true }SDK
Use the SDK to combine on-chain and API verification.
import { EntitleClient } from "@entitle/sdk";
const client = new EntitleClient({
chainId: 8453,
contractAddress: "0x...",
rpcUrl: process.env.ENTITLE_RPC_URL!,
apiBaseUrl: "https://api.entitle.dev"
});
await client.verifyWithApi("0x0000dEaD", 1);