The listing owner's attestation of an exchange: who was chosen to give/receive the listed gift, and when it was completed. The counterparty attests via community.gifthood.exchangeResponse; a mutually confirmed pair is follow-through evidence. Public, like the interest record.
tid
Timestamp-based ID
Properties
completedAt
string
datetime
Optional
Set (via record update) when the owner marks the gift complete — the item handed over or the service rendered. Absence means the exchange is still pending.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
giver
string
did
Required
DID of the member giving the item. Exactly one of giver/receiver is the record author (the listing owner): on an offer listing the author is the giver; on a request listing the author is the receiver.
interest
ref
com.atproto.repo.strongRef
Optional
Optional strong reference to the counterparty's interest record, when they raised a hand. Absent when the counterparty was chosen from a listing-scoped conversation.
receiver
string
did
Required
DID of the member receiving the item.
returnedAt
string
datetime
Optional
Set (via record update) by the owner when a lent item comes home. Only meaningful when the subject listing has mode 'lend'; indexers ignore it on gift exchanges and ignore a returnedAt without completedAt (an item cannot come back before it was handed over). Owner-attested only — the mutual response pair already attests the handover; disputes go through reporting.
subject
ref
com.atproto.repo.strongRef
Required
Strong reference (URI + CID) to the listing this exchange is for. Must be a listing authored by this record's author.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"subject",
"giver",
"receiver",
"createdAt"
],
"properties": {
"giver": {
"type": "string",
"format": "did",
"description": "DID of the member giving the item. Exactly one of giver/receiver is the record author (the listing owner): on an offer listing the author is the giver; on a request listing the author is the receiver."
},
"subject": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference (URI + CID) to the listing this exchange is for. Must be a listing authored by this record's author."
},
"interest": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Optional strong reference to the counterparty's interest record, when they raised a hand. Absent when the counterparty was chosen from a listing-scoped conversation."
},
"receiver": {
"type": "string",
"format": "did",
"description": "DID of the member receiving the item."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"returnedAt": {
"type": "string",
"format": "datetime",
"description": "Set (via record update) by the owner when a lent item comes home. Only meaningful when the subject listing has mode 'lend'; indexers ignore it on gift exchanges and ignore a returnedAt without completedAt (an item cannot come back before it was handed over). Owner-attested only — the mutual response pair already attests the handover; disputes go through reporting."
},
"completedAt": {
"type": "string",
"format": "datetime",
"description": "Set (via record update) when the owner marks the gift complete — the item handed over or the service rendered. Absence means the exchange is still pending."
}
}
},
"description": "The listing owner's attestation of an exchange: who was chosen to give/receive the listed gift, and when it was completed. The counterparty attests via community.gifthood.exchangeResponse; a mutually confirmed pair is follow-through evidence. Public, like the interest record."
}