---
# System prepended metadata

title: '`web5` API'

---

# `web5` API

[TOC]


# Summary
API injected by the wallet onto the global window object at `window.web5`. Used to build web5 apps. The methods provided by this API should enable developers to:
- Initiate passwordless registration / login flows using DIDs
- Issue Verifiable Credentials to users
- Request verifiable Credentials from users
- Request access, read, write, and subscribe to independently verifiable user data

The methods provided by this API can be bucketed into 3 categories:
* `did`
* `vc`
* `dwn`


# Motivation
Our overall goal is for there to be many wallets developed by anyone who chooses to do so. In fact, we'll have failed if we're there's only one wallet in town. Defining a wallet agnostic `web5` API that can be implemented by any wallet will enable consistency and interoperability across clients and applications. Its functionality can easily be extended by defining new methods.

# API Reference

## DID
All DID-related methods fall under this category and are namespaced under `web5.did`

### `web5.did.supportedMethods`
Returns a list of DID methods supported by the wallet

### `web5.did.request`

### `web5.did.authn`

## VC
All methods related to Verifiable Credentials fall under this category and are namespaced under `web5.vc`

### `web5.vc.apply`

### `web5.vc.deliver`

### `web5.vc.request`

## DWN
All methods related to requesting access, reading, writing, and subscribing to independently verifiable user data fall under this category and are namespaced under `web5.dwn`
