Metadata Schema
By AnchorFactory ·
Anchors are discovered via on-chain metadata published by resolver accounts. This page documents the metadata format.
Master Metadata Endpoint
https://static.network.keeta.com/metadata/servicesThis is the source of truth for all registered anchor services.
Top-Level Structure
{
"version": 1,
"currencyMap": {
"$KTA": "keeta_anqdilpaz...",
"$USDC": "keeta_amnkge74...",
"$EURC": "keeta_apblhar4..."
},
"services": {
"fx": { ... },
"kyc": { ... },
"banking": { ... },
"assetMovement": { ... },
"username": { ... },
"storage": { ... },
"notification": { ... }
},
"resolvers": ["keeta_..."]
}Fields
Field | Type | Description |
|---|---|---|
| number | Schema version |
| object | Shorthand symbol → full token address mapping |
| object | Service category → anchor definitions |
| string[] | Child resolver account addresses (for delegation) |
Service Categories
Each key in services represents a category of anchor:
`fx` — Currency exchange (token swaps)
`kyc` — Identity verification
`banking` — Bank account integration
`assetMovement` — Cross-chain bridges
`username` — Human-readable name resolution
`storage` — Encrypted data storage
`notification` — Push notifications
Reading Metadata in Code
const { Resolver } = await import("@keetanetwork/anchor/lib/resolver");
const resolver = new Resolver({
root: resolverAccount,
client: userClient
});
// Look up FX anchors
const fxServices = await resolver.lookup('fx', criteria);
// Look up KYC providers for a specific country
const kycProviders = await resolver.lookup('kyc', {
countryCodes: ['US']
});
// List known tokens
const tokens = await resolver.listTokens();Publishing Your Anchor's Metadata
To make your anchor discoverable, you need to publish metadata on-chain. This is done via SET_INFO operations on your resolver account.
Full guide: [Publishing Metadata](/cookbook/publishing-metadata/)