From Xojo Documentation

You are currently browsing the old Xojo documentation site. Please visit the new Xojo documentation site!

Class (inherits from Object)

Gives you access to the default macOS Keychains for your applications. It is a Macintosh-only feature. The Keychain class does not provide access to internet passwords.

Handle fa-lock-32.png

AddPassword Lock
FindPassword Unlock


Constructor(index as Integer)


The keychain is a system-wide facility on macOS to store account passwords for applications. By taking advantage of the built-in keychain facility, your users won’t have to type their password if their keychain is unlocked. You should always ask the user before storing something in the keychain.

An equivalent technology to the Mac OS Keychain doesn’t currently exist on other platforms, so the Keychain class is supported only on Macintosh.


The following example adds a KeychainItem for an application and assigns a password.

Var newItem As KeychainItem
If System.KeychainCount > 0 Then
newItem = New KeychainItem
// Indicate the name of the application
newItem.ServiceName = "MyApplication"

// Create a new keychain item for the application and assign the password
System.Keychain.AddPassword(newItem, "SecretPassword")
Catch error As KeychainException
MessageBox("Can't add item: " + error.Message)
End Try
MessageBox("You don't have a key chain.")
End If

The following example retrieves the password and displays it in a message box.

Var itemToFind As KeychainItem
Var password As String

itemToFind = New KeychainItem
// Indicate the name of the application whose keychain item you wish to find
itemToFind.ServiceName = "MyApplication"

// get application's password from the system keychain
password = System.Keychain.FindPassword(itemToFind)
MessageBox("The password for this item is: " + password)
Catch Exception error As KeychainException
MessageBox("Can't find item: " + error.Message)
End Try

See Also

KeychainItem class; KeychainException error; System module.