Documentation Index
Fetch the complete documentation index at: https://tfh-murph-idkit-intro.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Use IDKit for native iOS/macOS integrations backed by the same Rust core as other SDKs.
Requirements
- iOS 15+ / macOS 12+
- Xcode 16+
Install
Use Swift Package Manager with the published idkit-swift repository:
.package(url: "https://github.com/worldcoin/idkit-swift.git", from: "<version>")
Request flow
import IDKit
let rpContext = try RpContext(
rpId: "rp_xxxxx",
nonce: backend.nonce,
createdAt: backend.createdAt,
expiresAt: backend.expiresAt,
signature: backend.sig
)
let config = IDKitRequestConfig(
appId: "app_xxxxx",
action: "my-action",
rpContext: rpContext,
allowLegacyProofs: true,
returnTo: "myapp://verify-done", // Optional: mobile deep-link callback URL
environment: .production
)
let request = try IDKit.request(config: config).preset(orbLegacy(signal: "user-123"))
let connectURL = request.connectorURL
let requestID = request.requestID
Presets
import IDKit
let request = try IDKit.request(config: config).preset(
orbLegacy(signal: "user-123")
)
Polling API
pollStatusOnce() async -> IDKitStatus
pollUntilCompletion(options:) async -> IDKitCompletionResult
IDKitPollOptions(pollIntervalMs:timeoutMs:)
let completion = await request.pollUntilCompletion(
options: IDKitPollOptions(pollIntervalMs: 2_000, timeoutMs: 120_000)
)
switch completion {
case .success(let result):
print(result)
case .failure(let error):
print(error)
}