{"id":27429479,"url":"https://github.com/byteball/obyte-cascading-donations","last_synced_at":"2026-06-08T16:05:59.404Z","repository":{"id":45919157,"uuid":"305569225","full_name":"byteball/obyte-cascading-donations","owner":"byteball","description":"Cascading donations AA https://kivach.org","archived":false,"fork":false,"pushed_at":"2022-01-21T11:05:20.000Z","size":130,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-29T17:48:45.280Z","etag":null,"topics":["autonomous-agent","dag","dapp","dlt","donation","donations","github","open-source"],"latest_commit_sha":null,"homepage":"https://kivach.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/byteball.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-20T02:34:59.000Z","updated_at":"2022-10-30T17:42:35.000Z","dependencies_parsed_at":"2022-09-03T02:11:31.839Z","dependency_job_id":null,"html_url":"https://github.com/byteball/obyte-cascading-donations","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/byteball/obyte-cascading-donations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteball%2Fobyte-cascading-donations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteball%2Fobyte-cascading-donations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteball%2Fobyte-cascading-donations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteball%2Fobyte-cascading-donations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byteball","download_url":"https://codeload.github.com/byteball/obyte-cascading-donations/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteball%2Fobyte-cascading-donations/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34069530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autonomous-agent","dag","dapp","dlt","donation","donations","github","open-source"],"created_at":"2025-04-14T14:17:53.235Z","updated_at":"2026-06-08T16:05:59.377Z","avatar_url":"https://github.com/byteball.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obyte Cascading Donations AA\n\nAllow github repos to receive donations and forward them (or part thereof) down to other repos they depend upon and want to support.\n\n[kivach.org](https://kivach.org)\n\n## Methods\n\n### Set rules\n\nSet the donation distribution rules on a repo\n\n```javascript\ntrigger.data.set_rules - set this to 1\ntrigger.data.repo - repository to set rules on (owner/project). The first part of the repo (the owner) must be the attested github user for trigger.address\ntrigger.data.rules - object with distribution rules. Omit this param to receive 100% of donations\n\n{\n\t'owner1/repo1' : 10,\n\t'owner2/repo2' : 20,\n\t...\n}\n```\nMaximum number of nested repos is 10. The remainder of the undistributed funds will be sent to the owner.\n\n### Set notification AA\n\nSet the address of an AA to be notified about each new donation\n\n```javascript\ntrigger.data.repo - repository to set the notification AA for. The first part of the repo (the owner) must be the attested github user for trigger.address\ntrigger.data.notification_aa - address of the notification AA\n```\nExample notification AA: https://oscript.org/s/ayduFGpeBpnB7UYu7PUGYWorBL4UMkKS\n\n### Donate\n\nSend a donation to a repository. The donation can be in any asset.\n\n```javascript\ntrigger.data.donate - set this to 1\ntrigger.data.repo - repository to send donation to. Example: `owner/repo`\n```\n\n### Distribute\n\nDistribute the undistributed pool of a repository. If `trigger.address` is the attested owner of the repo, the owner will receive his payment. Otherwise, it will be stored in the repo's unclaimed pool.\n\n```javascript\ntrigger.data.distribute - set this to 1\ntrigger.data.repo - repository to trigger pool distribution on\ntrigger.data.asset - specifies asset to distribute. Default is `base`\ntrigger.data.to - optional address. The attested owner can specify the addres that will receive payment instead of him.\n```\n\n### Set nickname\n\nAssociate a donor's nickname with trigger.address. Previous nickname (if any) will be freed.\n\n```javascript\ntrigger.data.nickname - nickname string\n```\n\n## State Vars\n\n```javascript\nvar[${repo}*rules] - distribution rules of repo\nvar[${repo}*notification_aa] - optional notification AA of the repo to notify about the received donations\nvar[${repo}*pool*${asset}] - repo's undistributed pool in asset\nvar[${repo}*total_received*${asset}] - total received by repo in asset\nvar[${repo}*total_received_from_other_repos*${asset}] - total received by repo from other repos in asset\nvar[${repo1_or_user_address}*to*${repo2}*${asset}] - total received or forwarded from repo1_or_user_address to repo2 in asset\nvar[${repo2}*from*${repo1_or_user_address}*${asset}] - total received or forwarded from repo1_or_user_address to repo2 in asset\nvar[${repo_or_user_address}*total_donated*${asset}] - total donated by user or repo in asset\nvar[total_donated*${asset}] - grand total donated in asset\nvar[paid_to*${address}*${asset}] - total paid to repo owner\nvar[${repo}*unclaimed*${asset}] - unclaimed funds of attested owner\nvar[nickname*${address}] - donor ranking nickname\nvar[nickname_owner*${nickname}] - nickanme's owner address\n```\n\n## Donations\n\nKivach uses itself :) to accept donations and forward a portion of them to other open-source projects that made Kivach possible.\n\n[![Kivach](https://kivach.org/api/banner?repo=byteball/obyte-cascading-donations)](https://kivach.org/repo/byteball/obyte-cascading-donations)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyteball%2Fobyte-cascading-donations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyteball%2Fobyte-cascading-donations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyteball%2Fobyte-cascading-donations/lists"}