Create anchor
Anchors are pure data — they do not hold balances or trigger balance movements. They can be forwarded to other ledgers through bridge processing policies.
Amounts are stored as integers scaled by the symbol's factor.
When forwarding is configured, this request may be validated or proxied through a bridge before being committed locally. See Anchor Forwarding for details.
Broadcasts the anchor-created signal. Use
effects to subscribe.
Usage Examples
curl -X POST "http://localhost:3000/v2/anchors" \ -H "x-ledger: <YOUR LEDGER HANDLE>" \ -H "Content-Type: application/json" \ -d '{ "hash": "dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2", "data": { "handle": "tel:+1234567890", "target": { "handle": "svgs:1001001234@tesla-bank.com", "custom": { "name": "John Doe" } }, "symbol": "usd", "custom": { "title": "Personal phone alias" } }, "meta": { "proofs": [ { "method": "ed25519-v2", "digest": "007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428", "public": "RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=", "result": "yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==", "custom": { "moment": "2025-04-05T14:30:00.000Z", "status": "created" } } ] } }'{
"luid": "$anc.-01xK1rTtU2dS4wX3",
"hash": "dee7cd9ae3aff0395882aee8b26469fb0e43d8e34e3892ed086026eb6ee866e2",
"data": {
"handle": "tel:+1234567890",
"target": {
"handle": "svgs:1001001234@tesla-bank.com",
"custom": {
"name": "John Doe"
}
},
"symbol": "usd",
"custom": {
"title": "Personal phone alias"
}
},
"meta": {
"status": "created",
"moment": "2025-04-05T14:30:00.050Z",
"owners": [
"RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA="
],
"proofs": [
{
"signer": "tesla-bank-bridge",
"method": "ed25519-v2",
"digest": "007bcda73c53833fc209da63c99be93e9aefbe01455486d7a8db9d7d5a24b428",
"public": "RyXTVL6wSgoBMSZRmTnnKBc82dQGLn5y4Nlp8KRwMLA=",
"result": "yWJp/GUOqlXEFS4wgewjEjR5LxX3hftminmAL89i2D9qKNAR0jCVPJDsZUKUlq1uvDgWQpkUSButR3liRLtbBw==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z",
"status": "created"
}
},
{
"signer": "system",
"method": "ed25519-v2",
"digest": "4f5911b29aebfbd497be5fc1ff21225adaf868ac68fd411b0bafb9367e6a15a9",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "LOdSC5TT8TY5iZZU0GgWSJm7sB3g/aLQ55BIh00SvCzdXa5Ibsk8ca3kXPN/TPuGZ3dKiZc8XKeFn5GqrusoDw==",
"custom": {
"luid": "$anc.-01xK1rTtU2dS4wX3",
"moment": "2025-04-05T14:30:00.050Z",
"status": "created"
}
}
]
}
}{
"hash": "b7eb7ccf5ffc126951e13e29a8dcfdaf95db859715d4edfc2d16f59a79d4cd58",
"data": {
"reason": "auth.unauthorized",
"detail": "Invalid token."
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "3acece870c4118bfe4223118e4d2f3cfd5b8947a7093785b66d49aa57fa2890a",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "gnK63DqqWDY/UXvnZHixDKPKS6tfeGHgdARylnPiJLwQGyYxuD97TYbSg2wrzsf/bDrHwQYZaf8Gu5ryYP0UAA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "9ec02726b50650add8acfd124c6defeb978a9ac252a5de888f9493ddc701e927",
"data": {
"reason": "auth.forbidden",
"detail": "Request is not authorized"
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "4f8cbdc38d73348de0c31805c783c84a0fecc6be736d7e187004ba68cd00e675",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "P3hRnveehtuobb4AIO56XBmiduvmYJbpdmOHltG/IifBEH7QSWdv/0pqled4SO9x1Ne3oXuWxJy40DzMvx1MBA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "dc973d46dd35baa27b0ec5a107e2ee3a8cc57116d086dd868dd0f044a8de7d92",
"data": {
"reason": "record.duplicated",
"detail": "Ledger with handle instant-payments already exists."
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "3e1317cc165d132f95ec2f6374890063c162d905d86b33270f97416f8441a872",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "b+0gSDCUzjEKlZQ/c40yqNpZoyQxCFsbV1Ut5/0zM2wM46xmHMBj3qeo3/GDaFD4NgSNm2G8n1f9c9rfvkl3BA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "1c084e8dcfb9bb84bc8ea96e9e137b149a34b2bbd85f8e60b4263f5aba980476",
"data": {
"custom": {
"errors": [
{
"instancePath": "/handle",
"schemaPath": "#/properties/handle/pattern",
"keyword": "pattern",
"params": {
"pattern": "^[a-zA-Z0-9_\\-+.]+$"
},
"message": "must match pattern \"^[a-zA-Z0-9_\\-+.]+$\""
}
]
},
"reason": "record.schema-invalid",
"detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\-+.]+$\""
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "7a5febb431719b6f43d7e88e79211308e16ac651b71b339276373fdb4e7c3760",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "2/1zYw4AaIzsIHfOIC6V/CHw6owbjYHt48cwmFOig0ibeT0IbojLmj1RCRi8W00ka0udPa9WsacWDd7ObMY8CA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}{
"hash": "93a5f4d97a42c2df97f827c58ff7768d02568c15aca931e22b81fa3160ba0df3",
"data": {
"reason": "api.unexpected-error",
"detail": "An unexpected error occurred"
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "efaf5360143b586917d9636779ad6e08571c5b06909a20dd0f5eba4bf3be7eae",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "hERh6Aecj59iR+Fb25OQsHJScOi4t8EiffKSfjlMQdjHMccTnfDlgZFdaJzXzUtpSwy/NHq0l+7ydh3HSWCoAg==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z"
}
}
]
}
}Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Anchor body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
Anchor
Discover payment details from simple identifiers: phone numbers, emails, QR codes, and more.
List anchors GET
Use this endpoint to search the directory of user-friendly identifiers like phone numbers, emails, or account numbers. Filter by wallet, target, source, or symbol to find the payment details associated with a specific identifier. When forwarding is configured with the `proxy` strategy, results are fetched from the bridge instead of the local database. With `fallback`, the bridge is only queried when no local results match. See [Anchor Forwarding](/ledger/moving-money/anchor-forwarding). Supported filters: - `data.wallet` — wallet address - `data.target` — target address - `data.source` — source address - `data.symbol` — symbol address - `data.schema` — anchor schema - `meta.status` — record status - `meta.labels` — record labels - `meta.domain` — domain scope - `data.custom.payload` — custom payload - `data.custom.paymentId` — custom payment ID - `data.custom.<field>` — other custom fields (may be slower on large datasets)