Add bridge proof
Appends a signed proof to the record. The proof must be signed against the record's current hash. Use proofs to change status, update labels, or record custom data — see About Proofs for details.
Returns the updated record with the new proof in meta.proofs.
Broadcasts the bridge-proofs-added signal. Use
effects to subscribe.
Usage Examples
curl -X POST "http://localhost:3000/v2/bridges/<HANDLE>/proofs" \ -H "x-ledger: <YOUR LEDGER HANDLE>" \ -H "Content-Type: application/json" \ -d '{ "luid": "$brg.-01xK2sTuV3eT5xY4", "hash": "a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a", "data": { "handle": "tesla-bank-bridge", "schema": "rest", "secure": [], "custom": { "description": "Bridge to Tesla Bank API" }, "config": { "server": "https://tesla-bank.com/api/v2" } }, "meta": { "status": "active", "moment": "2025-04-05T14:30:10.020Z", "owners": [ "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=" ], "proofs": [ { "signer": "tesla-bank-admin", "method": "ed25519-v2", "digest": "64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596", "public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=", "result": "kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==", "custom": { "moment": "2025-04-05T14:30:00.000Z", "status": "created" } }, { "signer": "system", "method": "ed25519-v2", "digest": "e35f4c68ec4416457d8f09710c23142083299d635bd48f584e6dfd3120784db5", "public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=", "result": "Vi92MvGIfzCTbnLxd2d6n/s4SlJBDicVi5yxnvMX5HDw3ahHA4jHkf4dSdZbVp7f2WWTi9uXsd5maoNTUigjBg==", "custom": { "luid": "$brg.-01xK2sTuV3eT5xY4", "moment": "2025-04-05T14:30:00.050Z", "status": "created" } }, { "signer": "tesla-bank-admin", "method": "ed25519-v2", "digest": "488d2bcc43c373708b167e35ec7e68220254010b7d4d5f27509a12a0fcde27b4", "public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=", "result": "EzYdA0gesXqNSRNysDFD/bnQUGdek2bwRUkMbNmpOsO7uj5nMSe8ouAi1GW3CEpIfmIbXJRrJVww8JYYezpSAg==", "custom": { "moment": "2025-04-05T14:30:10.000Z", "status": "active" } } ] } }'{
"luid": "$brg.-01xK2sTuV3eT5xY4",
"hash": "a852957e02c3f47aecca687f49b6c4195d00ad7235c1f10be154aa0dff98076a",
"data": {
"handle": "tesla-bank-bridge",
"schema": "rest",
"secure": [],
"custom": {
"description": "Bridge to Tesla Bank API"
},
"config": {
"server": "https://tesla-bank.com/api/v2"
}
},
"meta": {
"status": "active",
"moment": "2025-04-05T14:30:10.020Z",
"owners": [
"dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk="
],
"proofs": [
{
"signer": "tesla-bank-admin",
"method": "ed25519-v2",
"digest": "64d20cdcf09e7a9d7ba6f61889d89fe4249c2fb962731f15d37145420dc44596",
"public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=",
"result": "kjUtGmvYVDKSdJsb/We56l51LLfYGI5+O5VqdZlu+SnGTJzfVHdC/tjE7VMf1+NjKemG+w/jM1ZJVRmo4qk8BA==",
"custom": {
"moment": "2025-04-05T14:30:00.000Z",
"status": "created"
}
},
{
"signer": "system",
"method": "ed25519-v2",
"digest": "e35f4c68ec4416457d8f09710c23142083299d635bd48f584e6dfd3120784db5",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "Vi92MvGIfzCTbnLxd2d6n/s4SlJBDicVi5yxnvMX5HDw3ahHA4jHkf4dSdZbVp7f2WWTi9uXsd5maoNTUigjBg==",
"custom": {
"luid": "$brg.-01xK2sTuV3eT5xY4",
"moment": "2025-04-05T14:30:00.050Z",
"status": "created"
}
},
{
"signer": "tesla-bank-admin",
"method": "ed25519-v2",
"digest": "488d2bcc43c373708b167e35ec7e68220254010b7d4d5f27509a12a0fcde27b4",
"public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=",
"result": "EzYdA0gesXqNSRNysDFD/bnQUGdek2bwRUkMbNmpOsO7uj5nMSe8ouAi1GW3CEpIfmIbXJRrJVww8JYYezpSAg==",
"custom": {
"moment": "2025-04-05T14:30:10.000Z",
"status": "active"
}
}
]
}
}{
"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": "d6c59a6df7165fa4a75159799ca5f5e26e544cbb8769eced3d35d8021f6f7935",
"data": {
"reason": "record.not-found",
"detail": "Signer not found"
},
"meta": {
"proofs": [
{
"signer": "system",
"method": "ed25519-v2",
"digest": "78cf86f34aefcf9da6ed4167a38aac0a2739f68f7bafb1d3e033c01ed1b6cdf1",
"public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
"result": "9Ledk+/iAAtj+uLjGe2afq4kID7n8UQD6UpRpLBCujxFjxddq0uZ2tnYRTAXmYdHDkbF0uXqtNM9qO3xhEtpAA==",
"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"
}
}
]
}
}Path Parameters
The unique identifier of the record - it is luid or handle (address).
Header Parameters
The unique identifier of ledger in context for multi tenant requests.
Request Body
application/json
Proof body
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
Delete bridge DELETE
The bridge cannot be deleted while it is referenced by wallets, effects, forwarding configurations, or unfinished intents. Remove all dependencies before deleting the bridge. The [change history](/ledger/reference/api/bridge/list-bridge-changes) remains accessible after deletion — use the record's LUID to query it. Previous record versions can be retrieved for auditing. A [POST alternative](/ledger/reference/api/bridge/drop-bridge-post) is available for clients that cannot send request bodies with DELETE requests. Broadcasts the `bridge-dropped` signal. Use [effects](/ledger/reference/api/effect) to subscribe.
Activate bridge POST
**Kept for backward compatibility.** Use `POST /bridges/{id}/events/retry` instead, which is the preferred endpoint going forward. Retries bridge event deliveries that have failed or are still scheduled but not delivered. For each affected event to be delivered, any existing scheduled jobs are cancelled and a new delivery is queued with the retry backoff reset to its initial value. Use the `maxAge` parameter to limit retries to events whose last delivery attempt was created within the past N minutes (default: 60, max: 48 hours enforced server-side). Set `maxAge` to 0 to retry all events for the bridge regardless of age. **Required access action:** `activate`