Stash a book's private key on the appview so the user can interact with the book (drop it, leave a note) from any device without re-scanning the QR. Stashed keys are wiped automatically when a drop event is ingested for that book.
Input
application/jsonbookId
string
Required
The book's short ID (as encoded in its QR code).
privateKey
string
Required
Multibase-encoded Ed25519 private key for the book. The appview verifies the key derives to the given bookId.
Output
application/jsonstashedAt
stringdatetime
Required
An RFC 3339 formatted timestamp.
Errors
BookKeyMismatch
The supplied privateKey does not derive to the supplied bookId. ProfileNotFound
The authenticated DID has no PassingReads profile indexed by the appview. Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"type": "procedure",
"input": {
"schema": {
"type": "object",
"required": [
"bookId",
"privateKey"
],
"properties": {
"bookId": {
"type": "string",
"description": "The book's short ID (as encoded in its QR code)."
},
"privateKey": {
"type": "string",
"description": "Multibase-encoded Ed25519 private key for the book. The appview verifies the key derives to the given bookId."
}
}
},
"encoding": "application/json"
},
"errors": [
{
"name": "BookKeyMismatch",
"description": "The supplied privateKey does not derive to the supplied bookId."
},
{
"name": "ProfileNotFound",
"description": "The authenticated DID has no PassingReads profile indexed by the appview."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"stashedAt"
],
"properties": {
"stashedAt": {
"type": "string",
"format": "datetime"
}
}
},
"encoding": "application/json"
},
"description": "Stash a book's private key on the appview so the user can interact with the book (drop it, leave a note) from any device without re-scanning the QR. Stashed keys are wiped automatically when a drop event is ingested for that book."
}