main 97b78dc201d5 cached
624 files
1.1 MB
309.1k tokens
543 symbols
1 requests
Download .txt
Showing preview only (1,329K chars total). Download the full file or copy to clipboard to get everything.
Repository: Chimoney/chimoney-community-projects
Branch: main
Commit: 97b78dc201d5
Files: 624
Total size: 1.1 MB

Directory structure:
gitextract_639vv6hg/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.yml
│   │   ├── config.yml
│   │   ├── enhancement.yml
│   │   ├── feature.yml
│   │   └── other.yml
│   ├── PULL_REQUEST_TEMPLATE/
│   │   └── pull_request_template.md
│   ├── scripts/
│   │   └── badge-automation.js
│   └── workflows/
│       ├── badge-automation.yml
│       └── translate.yml
├── .gitignore
├── .gitmodules
├── .idea/
│   ├── .gitignore
│   ├── chimoney-community-project.iml
│   ├── misc.xml
│   ├── modules.xml
│   └── vcs.xml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── GSOC/
│   ├── Contributor Guide.md
│   └── Project Ideas.md
├── LICENSE
├── README-BN.md
├── README-CN.md
├── README-ES.md
├── README-GM.md
├── README-HN.md
├── README-JP.md
├── README-KO.md
├── README.md
├── ai-passport-and-wallet-examples/
│   ├── .gitignore
│   ├── README.md
│   ├── crewai-support-agent/
│   │   ├── README.md
│   │   ├── requirements.txt
│   │   └── support_agent.py
│   ├── data-processing-agent/
│   │   ├── README.md
│   │   ├── data_agent.py
│   │   └── requirements.txt
│   └── langchain-research-agent/
│       ├── README.md
│       ├── requirements.txt
│       └── research_agent.py
└── submissions/
    ├── .gitkeep
    ├── Articles/
    │   ├── Contributing-to-Chimoney-Hacktoberfest.md
    │   ├── Flexible-payout-solutions.md
    │   ├── GlobalPayoutGuide.md
    │   ├── Quickstart_Guide.md
    │   ├── README.md
    │   ├── Update-Authentication-page.md
    │   ├── chimoney-global-data-annotators.md
    │   ├── global-payouts-non-profits.md
    │   ├── payout-digital-marketplaces.md
    │   └── tutorial_on_sending_p2p_Interledger _payments.md
    ├── Chimoney-Python/
    │   ├── LICENSE
    │   ├── README.md
    │   ├── build/
    │   │   └── lib/
    │   │       └── pychimoney/
    │   │           └── __init__.py
    │   ├── chimoney/
    │   │   ├── AI.py
    │   │   ├── Account.py
    │   │   ├── Base.py
    │   │   ├── Chimoney.py
    │   │   ├── Errors.py
    │   │   ├── Info.py
    │   │   ├── Payments.py
    │   │   ├── Payouts.py
    │   │   ├── Redeem.py
    │   │   ├── SubAccount.py
    │   │   ├── Wallet.py
    │   │   └── __init__.py
    │   ├── examples/
    │   │   ├── chimoney_examples.py
    │   │   └── test.py
    │   ├── setup.py
    │   └── tests/
    │       └── __init__.py
    ├── Chimoney-Slackbot/
    │   ├── .gitignore
    │   ├── Readme.md
    │   ├── main.py
    │   └── utils/
    │       ├── app/
    │       │   ├── __init__.py
    │       │   ├── models.py
    │       │   └── views.py
    │       ├── bot.py
    │       ├── collation.py
    │       ├── functions.py
    │       ├── rtm.py
    │       └── run.py
    ├── Chimoney-Slackbot-V2/
    │   ├── .gitignore
    │   ├── Dockerfile
    │   ├── README.md
    │   ├── modules/
    │   │   ├── choices.py
    │   │   ├── giveaway.py
    │   │   ├── sendchimoney.py
    │   │   └── validators.py
    │   ├── requirements.txt
    │   ├── slackbot.py
    │   └── tests/
    │       ├── __init__.py
    │       └── validator_tests.py
    ├── Chisend/
    │   ├── .gitignore
    │   ├── Dockerfile
    │   ├── README.md
    │   ├── bots/
    │   │   ├── chisend.py
    │   │   ├── entrypoint.sh
    │   │   ├── main.py
    │   │   ├── oauth-key-gen.py
    │   │   └── utils.py
    │   └── requirements.txt
    ├── Dev focused articles/
    │   └── top-3-payment-challenges-solutions-ifeoluwa-favour
    ├── FAQs/
    │   └── FAQs.md
    ├── GetStarted/
    │   ├── Blogs.html
    │   ├── README.md
    │   └── style.css
    ├── Proposed-Chimoney-Copy/
    │   └── ChimoneyUXCopy.md
    ├── chiconnect-bank-api-payout/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.cjs
    │   ├── src/
    │   │   ├── App.jsx
    │   │   ├── index.css
    │   │   ├── main.jsx
    │   │   └── service/
    │   │       └── fetchApi.js
    │   ├── tailwind.config.cjs
    │   └── vite.config.js
    ├── chiconnect-giftcard-payout/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.cjs
    │   ├── src/
    │   │   ├── App.jsx
    │   │   ├── components/
    │   │   │   ├── Giftcard.jsx
    │   │   │   └── Giftcards.jsx
    │   │   ├── index.css
    │   │   ├── main.jsx
    │   │   └── service/
    │   │       └── fetchApi.js
    │   ├── tailwind.config.cjs
    │   └── vite.config.js
    ├── chiconnect-laravel-web-app/
    │   ├── .editorconfig
    │   ├── .gitattributes
    │   ├── .gitignore
    │   ├── Laravel SDK Installation and Setup Guide.md
    │   ├── Procfile
    │   ├── README.md
    │   ├── app/
    │   │   ├── Console/
    │   │   │   └── Kernel.php
    │   │   ├── Exceptions/
    │   │   │   └── Handler.php
    │   │   ├── Http/
    │   │   │   ├── Controllers/
    │   │   │   │   ├── AccountController.php
    │   │   │   │   ├── Auth/
    │   │   │   │   │   ├── AuthenticatedSessionController.php
    │   │   │   │   │   ├── ConfirmablePasswordController.php
    │   │   │   │   │   ├── EmailVerificationNotificationController.php
    │   │   │   │   │   ├── EmailVerificationPromptController.php
    │   │   │   │   │   ├── NewPasswordController.php
    │   │   │   │   │   ├── PasswordResetLinkController.php
    │   │   │   │   │   ├── RegisteredUserController.php
    │   │   │   │   │   └── VerifyEmailController.php
    │   │   │   │   ├── Controller.php
    │   │   │   │   ├── PayoutController.php
    │   │   │   │   └── ProfileController.php
    │   │   │   ├── Kernel.php
    │   │   │   ├── Livewire/
    │   │   │   │   ├── Auth/
    │   │   │   │   │   └── RegisterUser.php
    │   │   │   │   ├── ProcessAirtime.php
    │   │   │   │   ├── ProcessBank.php
    │   │   │   │   └── Username.php
    │   │   │   ├── Middleware/
    │   │   │   │   ├── Authenticate.php
    │   │   │   │   ├── EncryptCookies.php
    │   │   │   │   ├── PreventRequestsDuringMaintenance.php
    │   │   │   │   ├── RedirectIfAuthenticated.php
    │   │   │   │   ├── TrimStrings.php
    │   │   │   │   ├── TrustHosts.php
    │   │   │   │   ├── TrustProxies.php
    │   │   │   │   ├── ValidateSignature.php
    │   │   │   │   └── VerifyCsrfToken.php
    │   │   │   └── Requests/
    │   │   │       └── Auth/
    │   │   │           └── LoginRequest.php
    │   │   ├── Models/
    │   │   │   ├── Payout.php
    │   │   │   ├── Transaction.php
    │   │   │   ├── TransactionReference.php
    │   │   │   └── User.php
    │   │   ├── Providers/
    │   │   │   ├── AppServiceProvider.php
    │   │   │   ├── AuthServiceProvider.php
    │   │   │   ├── BroadcastServiceProvider.php
    │   │   │   ├── EventServiceProvider.php
    │   │   │   └── RouteServiceProvider.php
    │   │   ├── Support/
    │   │   │   ├── Chiconnect/
    │   │   │   │   ├── Account.php
    │   │   │   │   ├── Info.php
    │   │   │   │   ├── Payout.php
    │   │   │   │   ├── SubAccount.php
    │   │   │   │   └── Wallet.php
    │   │   │   └── Helpers.php
    │   │   └── View/
    │   │       └── Components/
    │   │           ├── AppLayout.php
    │   │           └── GuestLayout.php
    │   ├── artisan
    │   ├── bootstrap/
    │   │   ├── app.php
    │   │   └── cache/
    │   │       └── .gitignore
    │   ├── composer.json
    │   ├── config/
    │   │   ├── app.php
    │   │   ├── auth.php
    │   │   ├── broadcasting.php
    │   │   ├── cache.php
    │   │   ├── chimoney.php
    │   │   ├── cors.php
    │   │   ├── country_code.php
    │   │   ├── database.php
    │   │   ├── filesystems.php
    │   │   ├── hashing.php
    │   │   ├── logging.php
    │   │   ├── mail.php
    │   │   ├── queue.php
    │   │   ├── sanctum.php
    │   │   ├── services.php
    │   │   ├── session.php
    │   │   └── view.php
    │   ├── database/
    │   │   ├── .gitignore
    │   │   ├── factories/
    │   │   │   └── UserFactory.php
    │   │   ├── migrations/
    │   │   │   ├── 2014_10_12_000000_create_users_table.php
    │   │   │   ├── 2014_10_12_100000_create_password_resets_table.php
    │   │   │   ├── 2019_08_19_000000_create_failed_jobs_table.php
    │   │   │   ├── 2019_12_14_000001_create_personal_access_tokens_table.php
    │   │   │   ├── 2022_10_17_080103_add_username_to_users_table.php
    │   │   │   ├── 2022_10_17_194518_create_transactions_table.php
    │   │   │   ├── 2022_10_20_180113_add_chi_wallet_id_to_users_table.php
    │   │   │   ├── 2022_10_20_204612_create_payouts_table.php
    │   │   │   ├── 2022_10_22_165728_create_transaction_references_table.php
    │   │   │   └── 2022_10_22_171931_alter_type_column_in_payouts_table.php
    │   │   └── seeders/
    │   │       └── DatabaseSeeder.php
    │   ├── lang/
    │   │   └── en/
    │   │       ├── auth.php
    │   │       ├── pagination.php
    │   │       ├── passwords.php
    │   │       └── validation.php
    │   ├── package.json
    │   ├── phpunit.xml
    │   ├── postcss.config.js
    │   ├── public/
    │   │   ├── .htaccess
    │   │   ├── index.php
    │   │   └── robots.txt
    │   ├── resources/
    │   │   ├── css/
    │   │   │   └── app.css
    │   │   ├── js/
    │   │   │   ├── app.js
    │   │   │   └── bootstrap.js
    │   │   └── views/
    │   │       ├── account/
    │   │       │   └── topup-user.blade.php
    │   │       ├── auth/
    │   │       │   ├── confirm-password.blade.php
    │   │       │   ├── forgot-password.blade.php
    │   │       │   ├── login.blade.php
    │   │       │   ├── register.blade.php
    │   │       │   ├── reset-password.blade.php
    │   │       │   └── verify-email.blade.php
    │   │       ├── components/
    │   │       │   ├── application-logo.blade.php
    │   │       │   ├── auth-card.blade.php
    │   │       │   ├── auth-session-status.blade.php
    │   │       │   ├── dropdown-link.blade.php
    │   │       │   ├── dropdown.blade.php
    │   │       │   ├── input-error.blade.php
    │   │       │   ├── input-label.blade.php
    │   │       │   ├── modal.blade.php
    │   │       │   ├── nav-link.blade.php
    │   │       │   ├── primary-button.blade.php
    │   │       │   ├── responsive-nav-link.blade.php
    │   │       │   └── text-input.blade.php
    │   │       ├── dashboard.blade.php
    │   │       ├── layouts/
    │   │       │   ├── app.blade.php
    │   │       │   ├── guest.blade.php
    │   │       │   └── navigation.blade.php
    │   │       ├── livewire/
    │   │       │   ├── auth/
    │   │       │   │   └── register-user.blade.php
    │   │       │   ├── process-airtime.blade.php
    │   │       │   ├── process-bank.blade.php
    │   │       │   └── username.blade.php
    │   │       ├── payout/
    │   │       │   ├── airtime.blade.php
    │   │       │   ├── bank.blade.php
    │   │       │   └── history.blade.php
    │   │       ├── profile/
    │   │       │   ├── index.blade.php
    │   │       │   └── show.blade.php
    │   │       ├── transfer/
    │   │       │   ├── create.blade.php
    │   │       │   └── history.blade.php
    │   │       └── welcome.blade.php
    │   ├── routes/
    │   │   ├── api.php
    │   │   ├── auth.php
    │   │   ├── channels.php
    │   │   ├── console.php
    │   │   └── web.php
    │   ├── storage/
    │   │   ├── app/
    │   │   │   └── .gitignore
    │   │   └── framework/
    │   │       ├── .gitignore
    │   │       ├── cache/
    │   │       │   └── .gitignore
    │   │       ├── sessions/
    │   │       │   └── .gitignore
    │   │       ├── testing/
    │   │       │   └── .gitignore
    │   │       └── views/
    │   │           └── .gitignore
    │   ├── tailwind.config.js
    │   ├── tests/
    │   │   ├── CreatesApplication.php
    │   │   ├── Feature/
    │   │   │   ├── Auth/
    │   │   │   │   ├── AuthenticationTest.php
    │   │   │   │   ├── EmailVerificationTest.php
    │   │   │   │   ├── PasswordConfirmationTest.php
    │   │   │   │   ├── PasswordResetTest.php
    │   │   │   │   └── RegistrationTest.php
    │   │   │   └── ExampleTest.php
    │   │   ├── TestCase.php
    │   │   └── Unit/
    │   │       └── ExampleTest.php
    │   └── vite.config.js
    ├── chiconnect-mobile-money-payout/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.cjs
    │   ├── src/
    │   │   ├── App.jsx
    │   │   ├── index.css
    │   │   ├── main.jsx
    │   │   └── service/
    │   │       └── fetchApi.js
    │   ├── tailwind.config.cjs
    │   └── vite.config.js
    ├── chimap/
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── README.md
    │   ├── components/
    │   │   ├── card/
    │   │   │   └── service.card.js
    │   │   └── map/
    │   │       └── global.map.js
    │   ├── helpers/
    │   │   └── query.js
    │   ├── hooks/
    │   │   └── getInfo.js
    │   ├── next.config.js
    │   ├── package.json
    │   ├── pages/
    │   │   ├── _app.js
    │   │   ├── api/
    │   │   │   └── hello.js
    │   │   └── index.js
    │   ├── postcss.config.js
    │   ├── styles/
    │   │   └── globals.css
    │   ├── tailwind.config.js
    │   └── utils/
    │       └── countries.json
    ├── chimoney-discord-bot/
    │   ├── .dockerignore
    │   ├── .gitignore
    │   ├── app.js
    │   ├── bot-client.js
    │   ├── commands/
    │   │   └── sendChimoney.js
    │   ├── controllers/
    │   │   └── webhook.controller.js
    │   ├── deploy-commands.js
    │   ├── dockerfile
    │   ├── index.js
    │   ├── package.json
    │   ├── procfile
    │   ├── readme.md
    │   ├── routes/
    │   │   └── webhooks.js
    │   └── utils/
    │       └── helpers.js
    ├── chimoney-github-bot/
    │   ├── .gitignore
    │   ├── CODE_OF_CONDUCT.md
    │   ├── CONTRIBUTING.md
    │   ├── Dockerfile
    │   ├── LICENSE
    │   ├── README.md
    │   ├── app.yml
    │   ├── index.js
    │   ├── package.json
    │   ├── test/
    │   │   ├── fixtures/
    │   │   │   └── issues.opened.json
    │   │   └── index.test.js
    │   └── utils.js
    ├── chimoney-interledger-wallet-transfer/
    │   ├── .gitignore
    │   ├── CONTRIBUTING.md
    │   ├── PROJECT_SUMMARY.md
    │   ├── README.md
    │   ├── SCREENSHOTS.md
    │   ├── __tests__/
    │   │   ├── TransferForm.test.tsx
    │   │   ├── api/
    │   │   │   └── transfer.test.ts
    │   │   └── utils.test.ts
    │   ├── app/
    │   │   ├── api/
    │   │   │   ├── transactions/
    │   │   │   │   └── route.ts
    │   │   │   └── transfer/
    │   │   │       └── route.ts
    │   │   ├── globals.css
    │   │   ├── layout.tsx
    │   │   └── page.tsx
    │   ├── components/
    │   │   ├── Providers.tsx
    │   │   ├── TransactionHistory.tsx
    │   │   ├── TransferForm.tsx
    │   │   └── ui/
    │   │       ├── button.tsx
    │   │       ├── card.tsx
    │   │       ├── dialog.tsx
    │   │       ├── input.tsx
    │   │       └── label.tsx
    │   ├── lib/
    │   │   └── utils.ts
    │   ├── next.config.js
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── tailwind.config.js
    │   ├── tsconfig.json
    │   ├── types/
    │   │   └── index.ts
    │   ├── vitest.config.ts
    │   └── vitest.setup.ts
    ├── chimoney-js/
    │   ├── .gitignore
    │   ├── Errors.js
    │   ├── index.js
    │   ├── modules/
    │   │   ├── Account.js
    │   │   ├── Info.js
    │   │   ├── MobileMoney.js
    │   │   ├── Payouts.js
    │   │   ├── Redeem.js
    │   │   ├── SubAccount.js
    │   │   └── Wallet.js
    │   ├── package.json
    │   ├── readme.md
    │   ├── tests/
    │   │   ├── account.test.js
    │   │   ├── info.test.js
    │   │   ├── mobileMoney.test.js
    │   │   ├── payouts.test.js
    │   │   ├── redeem.test.js
    │   │   ├── subAccount.test.js
    │   │   └── wallet.test.js
    │   └── utils/
    │       └── helpers.js
    ├── chimoney-lib/
    │   ├── .editorconfig
    │   ├── .gitignore
    │   ├── .vscode/
    │   │   ├── extensions.json
    │   │   ├── launch.json
    │   │   └── tasks.json
    │   ├── README.md
    │   ├── angular.json
    │   ├── package.json
    │   ├── projects/
    │   │   └── ngx-chimoney-airtime-payouts/
    │   │       ├── README.md
    │   │       ├── ng-package.json
    │   │       ├── package.json
    │   │       ├── src/
    │   │       │   ├── lib/
    │   │       │   │   ├── components/
    │   │       │   │   │   ├── airtime/
    │   │       │   │   │   │   ├── airtime.component.css
    │   │       │   │   │   │   ├── airtime.component.html
    │   │       │   │   │   │   ├── airtime.component.spec.ts
    │   │       │   │   │   │   └── airtime.component.ts
    │   │       │   │   │   ├── bank/
    │   │       │   │   │   │   ├── bank.component.css
    │   │       │   │   │   │   ├── bank.component.html
    │   │       │   │   │   │   ├── bank.component.spec.ts
    │   │       │   │   │   │   └── bank.component.ts
    │   │       │   │   │   └── payouts/
    │   │       │   │   │       ├── payouts.component.css
    │   │       │   │   │       ├── payouts.component.html
    │   │       │   │   │       ├── payouts.component.spec.ts
    │   │       │   │   │       └── payouts.component.ts
    │   │       │   │   ├── ngx-chimoney-airtime-payouts.component.spec.ts
    │   │       │   │   ├── ngx-chimoney-airtime-payouts.component.ts
    │   │       │   │   ├── ngx-chimoney-airtime-payouts.service.spec.ts
    │   │       │   │   └── ngx-chimoney-airtime-payouts.service.ts
    │   │       │   └── public-api.ts
    │   │       ├── tsconfig.lib.json
    │   │       ├── tsconfig.lib.prod.json
    │   │       └── tsconfig.spec.json
    │   └── tsconfig.json
    ├── chimoney-payout-airtime/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── package.json
    │   ├── public/
    │   │   ├── index.html
    │   │   ├── manifest.json
    │   │   └── robots.txt
    │   └── src/
    │       ├── App.css
    │       ├── App.js
    │       ├── PayChimoney.js
    │       ├── index.css
    │       ├── index.js
    │       ├── reportWebVitals.js
    │       └── style.js
    ├── chimoney-react-components/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── src/
    │   │   ├── ChimoneyReactComponents.jsx
    │   │   ├── components/
    │   │   │   ├── ChimoneyAccountUpdate.tsx
    │   │   │   ├── ChimoneyPaymentForm.tsx
    │   │   │   ├── ChimoneyTransactionList.tsx
    │   │   │   ├── chimoneyButton.tsx
    │   │   │   └── chimoneyInput.tsx
    │   │   ├── index.js
    │   │   └── styles/
    │   │       └── tailwind.css
    │   ├── tailwind.config.js
    │   └── vite.config.js
    ├── chimoney-redeem-airtime/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── package.json
    │   ├── public/
    │   │   ├── index.html
    │   │   ├── manifest.json
    │   │   └── robots.txt
    │   └── src/
    │       ├── App.css
    │       ├── App.js
    │       ├── components/
    │       │   ├── Home.js
    │       │   └── Redeem.js
    │       ├── index.css
    │       ├── index.js
    │       └── reportWebVitals.js
    ├── chimoney-telegram/
    │   ├── package.json
    │   └── src/
    │       ├── payments.json
    │       ├── start.js
    │       └── users.json
    ├── chispend-presentation/
    │   └── README.md
    ├── chispend-proposed-copy/
    │   └── README.md
    ├── chispend_app/
    │   ├── .gitignore
    │   ├── .metadata
    │   ├── README.md
    │   ├── analysis_options.yaml
    │   ├── android/
    │   │   ├── .gitignore
    │   │   ├── app/
    │   │   │   ├── build.gradle
    │   │   │   └── src/
    │   │   │       ├── debug/
    │   │   │       │   └── AndroidManifest.xml
    │   │   │       ├── main/
    │   │   │       │   ├── AndroidManifest.xml
    │   │   │       │   ├── kotlin/
    │   │   │       │   │   └── com/
    │   │   │       │   │       └── example/
    │   │   │       │   │           └── chispend_app/
    │   │   │       │   │               └── MainActivity.kt
    │   │   │       │   └── res/
    │   │   │       │       ├── drawable/
    │   │   │       │       │   └── launch_background.xml
    │   │   │       │       ├── drawable-v21/
    │   │   │       │       │   └── launch_background.xml
    │   │   │       │       ├── values/
    │   │   │       │       │   └── styles.xml
    │   │   │       │       └── values-night/
    │   │   │       │           └── styles.xml
    │   │   │       └── profile/
    │   │   │           └── AndroidManifest.xml
    │   │   ├── build.gradle
    │   │   ├── gradle/
    │   │   │   └── wrapper/
    │   │   │       └── gradle-wrapper.properties
    │   │   ├── gradle.properties
    │   │   └── settings.gradle
    │   ├── ios/
    │   │   ├── .gitignore
    │   │   ├── Flutter/
    │   │   │   ├── AppFrameworkInfo.plist
    │   │   │   ├── Debug.xcconfig
    │   │   │   └── Release.xcconfig
    │   │   ├── Runner/
    │   │   │   ├── AppDelegate.swift
    │   │   │   ├── Assets.xcassets/
    │   │   │   │   ├── AppIcon.appiconset/
    │   │   │   │   │   └── Contents.json
    │   │   │   │   └── LaunchImage.imageset/
    │   │   │   │       ├── Contents.json
    │   │   │   │       └── README.md
    │   │   │   ├── Base.lproj/
    │   │   │   │   ├── LaunchScreen.storyboard
    │   │   │   │   └── Main.storyboard
    │   │   │   ├── Info.plist
    │   │   │   └── Runner-Bridging-Header.h
    │   │   ├── Runner.xcodeproj/
    │   │   │   ├── project.pbxproj
    │   │   │   ├── project.xcworkspace/
    │   │   │   │   ├── contents.xcworkspacedata
    │   │   │   │   └── xcshareddata/
    │   │   │   │       ├── IDEWorkspaceChecks.plist
    │   │   │   │       └── WorkspaceSettings.xcsettings
    │   │   │   └── xcshareddata/
    │   │   │       └── xcschemes/
    │   │   │           └── Runner.xcscheme
    │   │   └── Runner.xcworkspace/
    │   │       ├── contents.xcworkspacedata
    │   │       └── xcshareddata/
    │   │           ├── IDEWorkspaceChecks.plist
    │   │           └── WorkspaceSettings.xcsettings
    │   ├── lib/
    │   │   ├── data/
    │   │   │   ├── common/
    │   │   │   │   └── helper_functions.dart
    │   │   │   ├── constant/
    │   │   │   │   └── api_constants.dart
    │   │   │   ├── models/
    │   │   │   │   └── api/
    │   │   │   │       └── initiate_chimoney.dart
    │   │   │   └── services/
    │   │   │       ├── api/
    │   │   │       │   ├── payout.dart
    │   │   │       │   └── request_helper/
    │   │   │       │       └── index.dart
    │   │   │       └── navigation/
    │   │   │           └── index.dart
    │   │   ├── di/
    │   │   │   └── get_it.dart
    │   │   ├── main.dart
    │   │   └── presentation/
    │   │       └── ui/
    │   │           └── webview/
    │   │               └── index.dart
    │   ├── pubspec.yaml
    │   ├── test/
    │   │   └── widget_test.dart
    │   ├── web/
    │   │   ├── index.html
    │   │   └── manifest.json
    │   └── windows/
    │       ├── .gitignore
    │       ├── CMakeLists.txt
    │       ├── flutter/
    │       │   ├── CMakeLists.txt
    │       │   ├── generated_plugin_registrant.cc
    │       │   ├── generated_plugin_registrant.h
    │       │   └── generated_plugins.cmake
    │       └── runner/
    │           ├── CMakeLists.txt
    │           ├── Runner.rc
    │           ├── flutter_window.cpp
    │           ├── flutter_window.h
    │           ├── main.cpp
    │           ├── resource.h
    │           ├── runner.exe.manifest
    │           ├── utils.cpp
    │           ├── utils.h
    │           ├── win32_window.cpp
    │           └── win32_window.h
    ├── chispend_widget/
    │   ├── .flutter-plugins
    │   ├── .flutter-plugins-dependencies
    │   ├── .gitignore
    │   ├── .metadata
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── analysis_options.yaml
    │   ├── lib/
    │   │   └── chispend_widget.dart
    │   ├── pubspec.yaml
    │   └── test/
    │       └── chispend_widget_test.dart
    ├── github-bot/
    │   ├── .github/
    │   │   └── workflows/
    │   │       └── main.yml
    │   ├── index.js
    │   ├── package.json
    │   ├── payments.json
    │   └── readme.md
    ├── pay-paddy/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.cjs
    │   ├── src/
    │   │   ├── App.jsx
    │   │   ├── components/
    │   │   │   ├── Banner.jsx
    │   │   │   ├── Feature.jsx
    │   │   │   ├── Footer.jsx
    │   │   │   ├── Hero.jsx
    │   │   │   ├── Layout.jsx
    │   │   │   ├── MoreInfo.jsx
    │   │   │   ├── Navbar.jsx
    │   │   │   └── auth/
    │   │   │       ├── LoginModal.jsx
    │   │   │       └── SignUpModal.jsx
    │   │   ├── firebase/
    │   │   │   └── firebase-config.js
    │   │   ├── index.css
    │   │   ├── main.jsx
    │   │   ├── pages/
    │   │   │   └── Home.jsx
    │   │   ├── service/
    │   │   │   └── createAccount.js
    │   │   └── store/
    │   │       ├── modalReducer.js
    │   │       └── userReducer.js
    │   ├── tailwind.config.cjs
    │   ├── vite.config.js
    │   └── vite.config.js.timestamp-1666936810916.mjs
    ├── readme-translator/
    │   ├── .github/
    │   │   └── workflow/
    │   │       └── translate.yml
    │   └── README.md
    ├── resolution_2025/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── components.json
    │   ├── next.config.ts
    │   ├── package.json
    │   ├── postcss.config.mjs
    │   ├── src/
    │   │   ├── app/
    │   │   │   ├── auth/
    │   │   │   │   └── page.tsx
    │   │   │   ├── globals.css
    │   │   │   ├── layout.tsx
    │   │   │   ├── page.tsx
    │   │   │   └── resolutions/
    │   │   │       └── page.tsx
    │   │   ├── components/
    │   │   │   └── ui/
    │   │   │       ├── alert.tsx
    │   │   │       ├── badge.tsx
    │   │   │       ├── button.tsx
    │   │   │       ├── card.tsx
    │   │   │       ├── input.tsx
    │   │   │       ├── label.tsx
    │   │   │       └── progress.tsx
    │   │   └── lib/
    │   │       └── utils.ts
    │   ├── tailwind.config.ts
    │   └── tsconfig.json
    ├── secret-santa/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── app/
    │   │   ├── globals.css
    │   │   ├── home/
    │   │   │   └── page.js
    │   │   ├── layout.js
    │   │   └── page.js
    │   ├── components/
    │   │   ├── PaymentPopup.js
    │   │   ├── chimoneypaymentpopup.js
    │   │   └── paymentverification.js
    │   ├── jsconfig.json
    │   ├── next.config.js
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── tailwind.config.js
    │   └── utility/
    │       └── index.js
    ├── simple_blog/
    │   └── README.md
    ├── telegram-bot-node/
    │   ├── package.json
    │   └── src/
    │       ├── payments.json
    │       ├── start.js
    │       └── users.json
    └── whatsapp-bot-node/
        ├── index.js
        ├── package.json
        ├── payments.json
        └── readme.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE/bug.yml
================================================
name: "👾 Bug Report"
description: "File a Bug here to help improve the project."
title: "Bug: "
labels: ["bug"]
body:
  - type: textarea
    id: description
    attributes:
      label: "Description"
      description: "Please provide a detailed description of the issue."
    validations:
      required: true
  - type: textarea
    id: screenshots
    attributes:
      label: "Screenshots"
      description: "Please add screenshots if applicable."
  - type: dropdown
    id: browsers
    attributes:
      label: "What browsers are you seeing the problem on?"
      multiple: true
      options:
        - "Brave"
        - "Chrome"
        - "Firefox"
        - "Microsoft Edge"
        - "Opera"
        - "Safari"
        - "Other"
  - type: checkboxes
    id: work
    attributes:
      label: "Ready to Work?"
      options:
        - label: "I want to work on this issue"

================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: "❓ Question"
    url: "https://discord.gg/Q3peDrPG95"
    about: "Feel free to ask your question on our Discord server."

================================================
FILE: .github/ISSUE_TEMPLATE/enhancement.yml
================================================
name: "✨ Enhancement"
description: "Suggest an enhancement or improvement to the project."
title: "Enhancement: "
labels: ["enhancement"]
body:
  - type: textarea
    id: description
    attributes:
      label: "Description"
      description: "Please provide a detailed description of the enhancement request."
    validations:
      required: true
  - type: textarea
    id: screenshots
    attributes:
      label: "Screenshots"
      description: "Please add screenshots if applicable."
  - type: textarea
    id: additional_info
    attributes:
      label: "Additional Information"
      description: "Provide any additional information or context related to this enhancement."
  - type: checkboxes
    id: ready
    attributes:
      label: "Ready to Work?"
      options:
        - label: "I want to work on this enhancement"


================================================
FILE: .github/ISSUE_TEMPLATE/feature.yml
================================================
name: "🚀 Feature Request"
description: "Suggest a feature request"
title: "feat:"
labels: ["feature"]
body:
  - type: textarea
    id: what-feature
    attributes:
      label: "Description"
      description: "Describe your feature request"
    validations:
      required: true
  - type: textarea
    id: screenshots
    attributes:
      label: "Screenshots"
      description: "Please add screenshots if applicable"
    validations:
  - type: checkboxes
    id: work
    attributes:
      label: "Ready to Work?"
      options:
        - label: "I want to work on this issue"

================================================
FILE: .github/ISSUE_TEMPLATE/other.yml
================================================
name: "🔶 Other"
description: "Use this for any other issues. Please do NOT create blank issues."
labels: ["other"]
body:
  - type: markdown
    attributes:
      value: "# Other issue"
  - type: textarea
    id: issuedescription
    attributes:
      label: "What would you like to share?"
      description: "Provide a clear and concise explanation of your issue."
    validations:
      required: true
  - type: textarea
    id: extrainfo
    attributes:
      label: "Additional information"
      description: "Is there anything else we should know about this issue?"
    validations:
      required: false


================================================
FILE: .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
================================================
# Pull Request Details

#### Issue Number:

#### PR Type:
- [ ]  Feature
- [ ]  Improvement
- [ ]  Bug
- [ ]  New Project

#### PR Description:


## Checklist ✅ 

#### Please check each item that you have completed for this PR:


- [ ]  I have read and understood the project's [Contribution Guidelines](https://chimoney--community.hashnode.dev/contributing-to-chimoneys-community-projects-repository-for-hacktoberfest)
- [ ]  I have tested my changes to ensure they work as expected.
- [ ]  I have added/updated relevant documentation/screenshots (if applicable).
- [ ]  I have included tests (if applicable).
- [ ]  I have labeled the PR appropriately with `Feature`, `Improvement`, `Bug` or `New Project`
- [ ]  My branch is up to date with the main branch.
- [ ]  The PR has a meaningful title and description.


================================================
FILE: .github/scripts/badge-automation.js
================================================
const nodemailer = require("nodemailer");
const fs = require("fs").promises;
const path = require("path");

async function main() {
  const { Octokit } = await import("@octokit/rest");
  const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });

  const BADGE_MESSAGES = {
    firstTime:
      "🎉 Congratulations on your first contribution! Your PR has been merged, and you've earned the First-Time Contributor Badge! Welcome to the Chimoney open-source community, and we can't wait to see what you'll build next! 🌟",
    everyMerge:
      "🚀 Congratulations! Your PR has been successfully merged, and here's your badge for a fantastic contribution. Keep up the great work, and thank you for being a part of the Chimoney community!",
    fourthMerge:
      "🌟 Outstanding achievement! You've successfully merged four PRs! Thank you for your continued contributions to the Chimoney community—we truly appreciate your dedication!",
  };

  async function getBadgeInfo(username) {
    const { data: prs } = await octokit.pulls.list({
      owner: process.env.GITHUB_REPOSITORY_OWNER,
      repo: process.env.GITHUB_REPOSITORY.split("/")[1],
      state: "closed",
      head: username,
    });

    const mergedPRs = prs.filter((pr) => pr.merged_at !== null);
    const prCount = mergedPRs.length;

    return {
      firstPR: prCount === 1,
      secondOrThirdPR: prCount === 2 || prCount === 3,
      fourthPR: prCount === 4,
      prCount: prCount,
    };
  }

  async function postGitHubComment(issueNumber, message) {
    await octokit.issues.createComment({
      owner: process.env.GITHUB_REPOSITORY_OWNER,
      repo: process.env.GITHUB_REPOSITORY.split("/")[1],
      issue_number: issueNumber,
      body: message,
    });
  }

  async function sendEmail(email, message, badgeInfo) {
    const transporter = nodemailer.createTransport({
      service: "gmail",
      auth: {
        user: process.env.EMAIL_USER,
        pass: process.env.EMAIL_PASS,
      },
    });

    let badgeFilename;
    if (badgeInfo.firstPR) {
      badgeFilename = "PR1.png";
    } else if (badgeInfo.secondOrThirdPR) {
      badgeFilename = `PR${badgeInfo.prCount}.png`;
    } else if (badgeInfo.fourthPR) {
      badgeFilename = "PR4.png";
    }

    const badgeAttachment = {
      filename: badgeFilename,
      path: path.join(__dirname, `../badges/${badgeFilename}`),
    };

    await transporter.sendMail({
      from: process.env.EMAIL_USER,
      to: email,
      subject: "Congratulations on your merged PR!",
      text: message,
      attachments: [badgeAttachment],
    });
  }

  async function getUserEmail(username) {
    try {
      const { data: user } = await octokit.users.getByUsername({ username });
      return user.email;
    } catch (error) {
      console.error(`Error fetching email for ${username}:`, error);
      return null;
    }
  }

  const pr = JSON.parse(
    await fs.readFile(process.env.GITHUB_EVENT_PATH, "utf8")
  );
  const username = pr.pull_request.user.login;
  const issueNumber = pr.number;

  const badgeInfo = await getBadgeInfo(username);

  let commentMessage = "";
  if (badgeInfo.firstPR) {
    commentMessage = BADGE_MESSAGES.firstTime;
  } else if (badgeInfo.secondOrThirdPR) {
    commentMessage = BADGE_MESSAGES.everyMerge;
  } else if (badgeInfo.fourthPR) {
    commentMessage = BADGE_MESSAGES.fourthMerge;
  }

  await postGitHubComment(issueNumber, commentMessage);

  const userEmail = await getUserEmail(username);
  if (userEmail) {
    await sendEmail(userEmail, commentMessage, badgeInfo);
  }
}

main().catch(console.error);


================================================
FILE: .github/workflows/badge-automation.yml
================================================
name: PR Merge Badge Automation

on:
  pull_request:
    types: [closed]

jobs:
  badge_automation:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: "16.x"

      - name: Install dependencies
        run: npm install nodemailer

      - name: Run badge automation script
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          EMAIL_USER: ${{ secrets.EMAIL_USER }}
          EMAIL_PASS: ${{ secrets.EMAIL_PASS }}
        run: |
          node .github/scripts/badge-automation.js


================================================
FILE: .github/workflows/translate.yml
================================================
name: Chimoney Projects README Translator
on: workflow_dispatch
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 16.x
      # ISO Langusge Codes: https://cloud.google.com/translate/docs/languages  
      - name: Adding README - Chinese Simplified
        uses: dephraiim/translate-readme@main
        with:
          LANG: zh-CN
      - name: Adding README - Chinese Traditional
        uses: dephraiim/translate-readme@main
        with:
          LANG: zh-TW
      - name: Adding README - Hindi
        uses: dephraiim/translate-readme@main
        with:
          LANG: hi
      - name: Adding README - Arabic
        uses: dephraiim/translate-readme@main
        with:
          LANG: ar
      - name: Adding README - French
        uses: dephraiim/translate-readme@main
        with:
          LANG: fr


================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port


================================================
FILE: .gitmodules
================================================
[submodule "submissions/topdelivr"]
	path = submissions/topdelivr
	url = https://github.com/KelvinNjiraini/TopDelivr.git


================================================
FILE: .idea/.gitignore
================================================
# Default ignored files
/shelf/
/workspace.xml


================================================
FILE: .idea/chimoney-community-project.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <excludeFolder url="file://$MODULE_DIR$/submissions/chispend_widget/.dart_tool" />
      <excludeFolder url="file://$MODULE_DIR$/submissions/chispend_widget/.pub" />
      <excludeFolder url="file://$MODULE_DIR$/submissions/chispend_widget/build" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>

================================================
FILE: .idea/misc.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectRootManager">
    <output url="file://$PROJECT_DIR$/out" />
  </component>
</project>

================================================
FILE: .idea/modules.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/.idea/chimoney-community-project.iml" filepath="$PROJECT_DIR$/.idea/chimoney-community-project.iml" />
    </modules>
  </component>
</project>

================================================
FILE: .idea/vcs.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="" vcs="Git" />
  </component>
</project>

================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness towards other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
  overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
  advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
  address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective actions in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
community@chimoney.io.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior,  harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.


================================================
FILE: CONTRIBUTING.md
================================================
Before contributing to this repository, you can either [visit this article](https://hashnode.com/post/clneirt08000309ihcpx41vxs) to understand more about contributing to Chimoney's projects or simply continue reading the guidelines below.

---

# Contribution Guidelines  

👍🎉 First off, thanks for taking the time to contribute! 🎉👍

## Table of Contents  

1. [Types of Contributions](#types-of-contributions)  
2. [Workflow for Contributing](#workflow-for-contributing)  
3. [Commit Messages and Pull Requests](#commit-messages-and-pull-requests)  
4. [Branching Strategy](#branching-strategy)  
5. [Testing Your Contribution](#testing-your-contribution)  
6. [Code of Conduct](#code-of-conduct)  
7. [Additional Resources](#additional-resources)

## Types of Contributions  

You can contribute in several ways, including:  

- **Features**: Adding new features to improve the project.  
- **Bug Fixes**: Fixing any issues or bugs in the code.  
- **Documentation**: Improving the documentation to help others contribute more easily.  

## Workflow for Contributing  

Follow these steps to contribute to the repository:  

1. **Fork the Repository**: Click the "Fork" button at the top-right corner of the repository page.  
2. **Clone the Repository**: Clone the repository to your local machine using Git.  

   ```bash
   git clone https://github.com/your-username/repository-name.git
   ```  

3. **Create a Branch**: Create a new branch for your contribution.  

   ```bash
   git checkout -b feature-branch-name
   ```  

4. **Make Your Changes**: Add your code or documentation changes.  
5. **Test Your Changes**: Ensure everything works by running tests locally.  
6. **Commit and Push**:  

   ```bash
   git commit -m "Your descriptive commit message"
   git push origin feature-branch-name
   ```  

7. **Submit a Pull Request**: Go to GitHub and open a pull request.  

## Commit Messages and Pull Requests  

- Write clear and concise commit messages. Example:  

  ```  
  feat: Add support for new payment API  
  fix: Resolve bug in transaction module  
  ```  

- Provide detailed explanations in pull requests, including issue numbers if applicable.

## Branching Strategy  

Follow this simple branching strategy:  

- **main**: For production-ready code.  
- **develop**: For ongoing development work.  
- **feature/**: For specific features or fixes.

## Testing Your Contribution  

Ensure that all contributions are tested. If you're using the **Chimoney API**, test using the Chimoney Sandbox:

- **Sign up for Chimoney Sandbox** [here](https://chimoney.readme.io/reference/sandbox-environment).  
- **Use your API keys** to test transactions and integration.

## Code of Conduct  

We are committed to maintaining a welcoming and inclusive community. By participating, you agree to follow our [Code of Conduct](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md).

## Additional Resources  

- [GitHub Flow Guide](https://guides.github.com/introduction/flow/)  
- [Chimoney API Documentation](https://chimoney.readme.io/reference/getting-started-with-your-api)


================================================
FILE: GSOC/Contributor Guide.md
================================================
# Chimoney Contributor Guide

Welcome to Chimoney's Google Summer of Code (GSoC) contributor guide! We are excited to mentor and collaborate with open-source contributors who are passionate about fintech, APIs, and developer experience. This guide will help you write a strong proposal for your GSoC project with Chimoney.

## What We Look for in a Proposal

A strong GSoC proposal should demonstrate:

- **Understanding of the Project** – Clearly explain what the project is about and why it is important.

- **Clarity & Structure** – A well-organized proposal with clear goals, milestones, and deliverables.

- **Feasibility** – A realistic timeline with achievable milestones.

- **Technical Approach** – A well-thought-out plan for implementation, including relevant tools and technologies.

- **Engagement & Communication** – Show how you plan to communicate progress and seek feedback.

- **Passion & Initiative** – Demonstrate your motivation and why you’re a great fit for the project.

## Proposal Template

#### Personal Information

- Full Name:

- GitHub Profile Link:

- Email Address:

- Time Zone & Availability:

- Programming Experience: (Languages, frameworks, tools, relevant experience)

#### Project Title

A clear and concise title that reflects the project idea.

#### Synopsis

A short summary (2-3 sentences) describing the project and its goals.

#### Benefits to the Community

Explain how your project will benefit Chimoney’s open-source ecosystem and fintech users.

#### Deliverables

A list of what you plan to achieve during the program. Be specific!

#### Technical Details & Approach

- Mention any programming languages, frameworks, or databases you plan to use.

- Outline how you plan to build the project step by step.

- Identify any risks and how you plan to mitigate them.

#### Timeline & Milestones

Break down your project into weekly milestones, keeping in mind the official GSoC timeline.
| Week    | Milestone |
| --------| ------- |
| Community Bonding | Understanding the codebase, engaging with mentors    |
| Week 1-2| Initial setup, research, and design     |
| Week 3-6   | Core development phase    |
| Week 7-9   | Testing and improvements    |
| Week 10-12   | Final touches, documentation, and submission    |







#### Communication Plan

How do you plan to keep your mentors and the Chimoney community updated on your progress? Examples:

- Weekly progress reports on GitHub Issues/Discussions

- Regular check-ins with mentors on Slack or Discord

- Public blog updates

#### Why Me?

Tell us why you are the best candidate for this project! Highlight your:

- Relevant experience

- Passion for fintech/open source

- Previous contributions to Chimoney or similar projects

## How to Reach Us

For any questions, guidance, or feedback, you can reach out to us via:


- [Discord Community](https://discord.gg/99CF9k3R)

- Email: community@chimoney.io



================================================
FILE: GSOC/Project Ideas.md
================================================
# Google Summer of Code 2025 - Chimoney Open Source Projects

Welcome to Chimoney's **Google Summer of Code (GSoC) 2025** Ideas List! 

Chimoney is committed to enabling seamless global payments through open-source technologies. Below are project ideas for potential GSoC contributors to work on. 
If you're interested, be sure to check out the requirements and get in touch!

---

## How to Participate

1. **Explore the project Ideas** below and find one that excites you.
2. **Check the required skills** and resources to see if it's a good fit.
3. **Join our community** on [discord](https://discord.gg/TsyKnzT4qV) to discuss ideas and ask questions.
4. **Submit a proposal** following the GSoC guidelines.

---

## 📌 Project Ideas

### **Chimoney Plugins Development**
**Description:** 
The goal of this project is to develop plugins that integrate Chimoney’s global payment API into various platforms, enabling seamless payouts and transactions across different ecosystems. These plugins will allow businesses, communities, and developers to easily leverage Chimoney’s services without complex coding. Potential integrations include e-commerce platforms (WooCommerce, Shopify)

**Expected Outcome:** 
- Minimum of 3 fully functional plugins with complete documentation
- Integration tests and example implementations
- Plugin SDK/framework for future plugin development
- Developer documentation for creating new plugins
- Comprehensive documentation to guide users on installation and usage.

  
**Skills Required:**
- Proficiency in JavaScript/TypeScript.

- Experience with plugin development for platforms like Shopify, or WooCommerce.

- Understanding of API integrations and authentication protocols.

- Knowledge of open-source contribution workflows (Git, GitHub).

**Difficulty:** Intermediate

**Mentors:** [Phylis](@githubprofile), [Ayomide](@githubprofile)

---

### **Chimoney-Interledger SDK**
**Description:**
This project aims to develop an open-source Software Development Kit (SDK) for [Chimoney’s Interledger integration](https://chimoney.io/api-use-cases/?activeCategory=4), enabling developers to easily interact with Chimoney’s payment pointer creation and payment transfer functionalities. The SDK will provide a seamless way to integrate Interledger-based payments into applications, reducing the complexity of handling payment pointer transactions.
**Expected Outcome:**
- A production-ready SDK package published to npm
- Core SDK implementation with TypeScript support
- Comprehensive API documentation using JSDoc/TypeDoc
- Integration guides and tutorials
- Testing suite with unit and integration tests
- CI/CD pipeline setup
- Example applications demonstrating different use cases:

>E-commerce payment integration

>Cross-border payment flows

**Skills Required:**
- JavaScript/TypeScript programming experience
- Experience with SDK development
- Knowledge of testing methodologies and frameworks
- Familiarity with CI/CD practices
- Experience with documentation tools and practices
- **Difficulty:** Intermediate
- **Mentors:** [Phylis](@githubprofile)

---

### **Chimoney Payment Gateway for Open Source Projects**
**Description**:
Develop a lightweight payment gateway that enables open-source projects to receive 
donations or payments via Chimoney [web monetization](https://drive.google.com/file/d/1sEpqXZByk8cflVTy2cRO0kljKIjWb7ki/view?usp=sharing) (which is [powered by interledger](https://webmonetization.org/)). This project will help developers monetize their projects using Chimoney’s API.

**Expected Outcome:**

- A working payment gateway with API integration
- Open-source SDK for easy implementation
- Documentation with examples for open-source contributors

**Skills Required:**

- JavaScript/Python for backend
- API development
- UI/UX experience
- **Difficulty**: Intermediate
- **Mentor**: Adebayo
---

### **Chimoney Bulk Payout CLI Tool**
**Description**:
Develop a command-line interface (CLI) tool that enables businesses to process bulk payments using Chimoney’s API, making it easy to handle large-scale transactions from the terminal.

**Expected Outcome**:

- A CLI tool that supports CSV uploads and bulk payment execution.
- Logging and error-handling mechanisms.
- Secure API authentication system.

**Skills Required:**

- Python, Go, or Node.js for CLI development.
- API integration knowledge.
- Security best practices for handling payment transactions.
- **Difficulty**: Intermediate
---

### **Chimoney Payment SDK for Mobile (Android & iOS)**
**Description:**
Develop a mobile SDK for Android and iOS that allows developers to integrate Chimoney’s payment features into their mobile apps effortlessly. The SDK should include features like payouts, redemptions, transaction history, and multi-currency support.

**Expected Outcome:**

- Fully functional Chimoney SDK for Android (Kotlin) and iOS (Swift)
- SDK documentation and integration guide
- Sample applications demonstrating usage
- Unit tests and integration tests

**Skills Required:**

- Kotlin (Android), Swift (iOS)
- Mobile SDK development
- API integration
- Writing technical documentation
- **Difficulty**: Intermediate
---

## Resources
- [Chimoney GitHub Repos](https://github.com/Chimoney)

- [Chimoney API Documentation](https://chimoney.readme.io/reference/getting-started-with-your-api)
- [Google Summer of Code Guidelines](https://summerofcode.withgoogle.com/)

## Contact Us
Have questions? Join our **Discord Community** or create an issue in the **GitHub Repository** to start a discussion.

**Email:** community@chimoney.io

**Website:** [chimoney.io](https://chimoney.io)

---


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2025 Chimoney

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README-BN.md
================================================
<div align="center">
  
[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/reference/introduction)  
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Chimoney/chimoney-community-projects?tab=MIT-1-ov-file)  
[![Open Issues](https://img.shields.io/github/issues/Chimoney/chimoney-community-projects)](https://github.com/Chimoney/chimoney-community-projects/issues)

</div>

&nbsp;

<div align="center" id="initial">
  <a href="https://chimoney.io/" target="_blank">
  <picture>
    <img src="https://chimoney.io/assets/icons/chimoney-purple-logo.svg" width="280" alt="Logo"/>
  </picture>
  </a>
</div>

<h3 align="center">
  গ্লোবাল পেমেন্টস।  
  <br/>
  একটি API, 130+ দেশে এক্সেস। <br/>
</h3>

<div align="center">
  
  [ডকুমেন্টেশন](https://chimoney.readme.io/reference/introduction) • [ডেভেলপার টুলকিট](https://chimoney.io/toolkit/) • [API ব্যবহারের ক্ষেত্র](https://chimoney.io/api-use-cases/) • [Discord-এ যোগ দিন](https://discord.gg/TsyKnzT4qV) • [X-এ কানেক্ট করুন](https://x.com/chimoney_io)
  
</div>

---

## Chimoney সম্পর্কে

[Chimoney](https://chimoney.io/) একটি বৈশ্বিক পেমেন্ট অবকাঠামো প্রদানকারী, যা ব্যবসা, প্রতিষ্ঠান এবং কমিউনিটিকে 130+ দেশে তাত্ক্ষণিকভাবে বাল্ক পেমেন্ট পাঠাতে সক্ষম করে।  
পেমেন্টগুলি ব্যাংক ট্রান্সফার, মোবাইল মানি, গিফট কার্ড এবং এয়ারটাইমের মাধ্যমে রিডিম করা যায়।

## Chimoney API সম্পর্কে

[Chimoney API](https://chimoney.readme.io/reference/introduction) আপনাকে প্রোগ্রাম্যাটিকভাবে সীমান্ত পারাপারের পেমেন্ট পাঠাতে, গ্রহণ করতে এবং সংগ্রহ করতে দেয়। এটি ব্যাংক অ্যাকাউন্ট, মোবাইল মানি ওয়ালেট, গিফট কার্ড এবং এয়ারটাইমসহ একাধিক চ্যানেল সমর্থন করে।  

[এই ভিডিওটি](https://www.youtube.com/watch?v=VItvZbPH9cU&t=4s) Chimoney API সম্পর্কে আরও জানতে সাহায্য করবে।

## Chimoney কমিউনিটি প্রোজেক্ট সম্পর্কে

Chimoney কমিউনিটি প্রোজেক্ট হলো ডেভেলপার, লেখক এবং কমিউনিটি সদস্যদের দ্বারা Chimoney API ব্যবহার করে তৈরি করা ওপেন সোর্স অবদান।  
এতে বিভিন্ন প্রোগ্রামিং ভাষার SDK, উদাহরণ অ্যাপ্লিকেশন, ইন্টিগ্রেশন এবং বাস্তব-জগতের ব্যবহার কেস নিয়ে প্রযুক্তিগত নিবন্ধ অন্তর্ভুক্ত থাকে।  

> **নোট:** Chimoney কমিউনিটি প্রোজেক্ট বিভিন্ন প্রোগ্রামিং ভাষা এবং টেক স্ট্যাক ব্যবহার করে তৈরি।  
> তাই প্রতিটি প্রোজেক্টের আলাদা README ফাইলে সেটআপ নির্দেশনা দেওয়া থাকে।  
> কোন প্রোজেক্ট চালানো বা অবদান রাখার আগে অবশ্যই সেই README চেক করুন।

## Chimoney API দিয়ে শুরু করা

Chimoney API ব্যবহার শুরু করতে, [sandbox.chimoney.io](https://sandbox.chimoney.io) এ একটি ডেভেলপার অ্যাকাউন্ট খুলুন।  
এই [স্টেপ-বাই-স্টেপ গাইড](https://www.loom.com/share/436303eb69c44f0d9757ea0c655bed89?sid=b6a0f661-721c-4731-9873-ae6f2d25780) আপনাকে অ্যাকাউন্ট তৈরি, API Key জেনারেট এবং স্যান্ডবক্স এনভায়রনমেন্টে প্রথম টেস্ট পেমেন্ট করার প্রক্রিয়া দেখাবে।  
সেটআপ সম্পন্ন হলে, আপনি Chimoney API এক্সপ্লোর করতে পারবেন, রিকোয়েস্ট পাঠাতে পারবেন এবং বাস্তব ব্যবহার কেসসহ প্রোজেক্ট তৈরি করতে পারবেন।

## অবদান রাখা

Chimoney কমিউনিটি প্রোজেক্টে ডেভেলপার, লেখক ও ডিজাইনারদের স্বাগত জানানো হয় যারা Chimoney API ব্যবহার করে তৈরি, লিখতে বা কিছু তৈরি করতে চান।  
আপনি SDK, ইন্টিগ্রেশন, উদাহরণ অ্যাপ বা বাস্তব ব্যবহার কেস দেখানো টেকনিক্যাল আর্টিকেল জমা দিয়ে অবদান রাখতে পারেন।  

শুরু করার জন্য এই রিপোজিটরির [ওপেন ইস্যুগুলি](https://github.com/Chimoney/chimoney-community-projects/issues) ব্রাউজ করুন অথবা আপনার নিজের আইডিয়া প্রস্তাব করুন।  

অবদান জমা দিতে প্রস্তুত হলে:  

1. রিপো ফর্ক করুন।  
2. একটি ব্রাঞ্চ তৈরি করুন।  
3. আপনার পরিবর্তনগুলি করুন।  
4. একটি Pull Request খুলুন।  

অবশ্যই একটি স্পষ্ট বর্ণনা দিন এবং প্রোজেক্টের ফোল্ডার স্ট্রাকচার অনুসরণ করুন; সব অবদান `submissions/` ডিরেক্টরিতে যাবে এবং নির্দিষ্ট ক্যাটাগরি অনুযায়ী সাবফোল্ডারে রাখতে হবে (যেমন আর্টিকেল `articles/` ফোল্ডারে, SDK `SDKs/` ফোল্ডারে)।  

অধিক কার্যকরভাবে অবদান রাখার জন্য সম্পূর্ণ [অবদান নির্দেশিকা](/CONTRIBUTING.md) পড়ুন।

## Chimoney Hacktoberfest

Chimoney 2022 সাল থেকে প্রতি বছর [Hacktoberfest](https://hacktoberfest.com/) এ অংশ নিচ্ছে, যেখানে ডেভেলপার, লেখক ও ডিজাইনাররা আমাদের ওপেন সোর্স কমিউনিটিতে অবদান রাখেন।  

প্রতি অক্টোবর, আমরা নতুন ও অভিজ্ঞ কন্ট্রিবিউটরদের জন্য সহজবোধ্য **`Hacktoberfest`** ইস্যু তৈরি করি।  

Hacktoberfest চলাকালীন অর্থবহ অবদানের জন্য আমরা পুরস্কার ও স্বীকৃতিও প্রদান করি।  
আমাদের আগের Hacktoberfest রিক্যাপ দেখতে, আপনি কিভাবে যুক্ত হতে পারেন এবং কিভাবে সর্বাধিক অবদান রাখতে পারেন তা জানতে, বিস্তারিত পড়ুন।

### Hacktoberfest 2025  

Chimoney Hacktoberfest 2025-এ অংশ নিচ্ছে! ✨  
এ বছর আমাদের বিদ্যমান ওপেন সোর্স প্রোজেক্টগুলির পাশাপাশি, আমরা একটি সম্পূর্ণ নতুন প্রোজেক্ট চালু করছি: **IaaS-k8s**  

IaaS-k8s হলো একটি মাল্টি-ক্লাউড Kubernetes অবকাঠামো ডেপ্লয়মেন্ট সলিউশন, যা AWS EKS এবং GCP GKE সমর্থন করে, এবং Pulumi ও TypeScript দিয়ে তৈরি।  

➝ _এখানে আরও জানুন এবং শুরু করুন:_ [_IaaS-k8s প্রোজেক্ট_](https://github.com/Chimoney/Iaas)

সবসময় যেমনটি হয়, এই রিপোতে সকল স্তরের কন্ট্রিবিউটরের জন্য ওপেন ইস্যু থাকবে।

## আমাদের কমিউনিটিতে যোগ দিন

[Discord সার্ভার](https://discord.gg/TsyKnzT4qV)-এ Chimoney API ব্যবহারকারীদের সাথে যুক্ত হন।  
অংশগ্রহণের আগে দয়া করে আমাদের [কোড অফ কন্ডাক্ট](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md) পড়ুন।

## যোগাযোগ

এই রিপোজিটরি [@phyleria](https://github.com/phyleria) দ্বারা সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়, এবং [@brijesh](https://github.com/brijeshthummar02) ও [@Daniel](https://github.com/Danbaba1) সমর্থন প্রদান করেন।  

যেকোন প্রশ্ন বা সরাসরি যোগাযোগের জন্য, অনুগ্রহ করে **<community@chimoney.io>** ইমেইলে যোগাযোগ করুন।


================================================
FILE: README-CN.md
================================================
<div align="center">
  
[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/reference/introduction)
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Chimoney/chimoney-community-projects?tab=MIT-1-ov-file)
[![Open Issues](https://img.shields.io/github/issues/Chimoney/chimoney-community-projects)](https://github.com/Chimoney/chimoney-community-projects/issues)

</div>

&nbsp;

<div align="center" id="initial">
  <a href="https://chimoney.io/" target="_blank">
  <picture>
    <img src="https://chimoney.io/assets/icons/chimoney-purple-logo.svg" width="280" alt="Logo"/>
  </picture>
  </a>
</div>

<h3 align="center">
  全球支付。  
  <br/>
  一个 API,覆盖 130+ 国家。 <br/>
</h3>

<div align="center">
  
  [文档](https://chimoney.readme.io/reference/introduction) • [开发者工具包](https://chimoney.io/toolkit/) • [API 使用场景](https://chimoney.io/api-use-cases/) • [加入 Discord](https://discord.gg/TsyKnzT4qV) • [在 X 上关注](https://x.com/chimoney_io)
  
</div>

---

## 关于 Chimoney

[Chimoney](https://chimoney.io/) 是一家全球支付基础设施提供商,使企业、组织和社区能够在 130 多个国家即时发送批量付款。  
付款可以通过银行转账、移动支付、礼品卡和话费充值来兑换。

## 关于 Chimoney API

[Chimoney API](https://chimoney.readme.io/reference/introduction) 让你可以跨境以编程方式发送、接收和收集付款,支持多种渠道,包括银行账户、移动钱包、礼品卡和话费充值。  

[这里有一个视频](https://www.youtube.com/watch?v=VItvZbPH9cU&t=4s) 帮助你进一步了解 Chimoney API。

## 关于 Chimoney 社区项目

Chimoney 社区项目是由开发者、作者和社区成员使用 Chimoney API 发起的开源贡献。  
它们包括不同编程语言的 SDK、示例应用、集成以及展示真实使用场景的技术文章。  

> **注意:** Chimoney 社区项目使用不同的编程语言和技术栈构建。  
> 因此,每个项目都在其单独的 README 文件中包含相应的设置说明。  
> 请务必查看具体项目的 README 以获取运行或贡献的指南。

## 开始使用 Chimoney API

要开始使用 Chimoney API,请在 [sandbox.chimoney.io](https://sandbox.chimoney.io) 注册开发者账号。  
这份 [逐步指南](https://www.loom.com/share/436303eb69c44f0d9757ea0c655bed89?sid=b6a0f661-721c-4731-9873-ae6f2d25780) 将带你完成创建账号、生成 API Key,并在沙箱环境中完成首次测试付款的流程。  
设置完成后,你就可以开始探索 Chimoney API,发出请求并构建真实应用场景的项目。

## 如何贡献

Chimoney 社区项目欢迎开发者、作者和设计师围绕 Chimoney API 进行构建、写作或创作。  
你可以通过提交 SDK、集成、示例应用或展示真实使用场景的技术文章来贡献。  

开始时,你可以浏览本仓库的 [开放 issues](https://github.com/Chimoney/chimoney-community-projects/issues),或提出你自己的想法。  

准备好提交时,请按照以下步骤操作:  

1. Fork 仓库。  
2. 创建一个分支。  
3. 完成你的更改。  
4. 发起一个 Pull Request。  

请务必提供清晰的描述并遵循项目的文件夹结构;所有贡献应放在 `submissions/` 目录下,并根据类别放在对应的子目录(如文章放在 `articles/` 文件夹,SDK 放在 `SDKs/` 文件夹)。  

你也可以在这里阅读完整的 [贡献指南](/CONTRIBUTING.md) 以了解如何更有效地参与。

## Chimoney 与 Hacktoberfest

自 2022 年以来,Chimoney 每年都参加 [Hacktoberfest](https://hacktoberfest.com/),欢迎开发者、作者和设计师加入我们的开源社区。  

每年十月,我们都会创建适合初学者的 **`Hacktoberfest`** issues,让新手和有经验的贡献者都能轻松参与。  

我们还会为 Hacktoberfest 期间的有意义贡献提供奖励和认可。  
想要了解我们以往的 Hacktoberfest 总结,看看你如何参与并充分发挥作用,请阅读更多内容。

### Hacktoberfest 2025  

Chimoney 将参加 Hacktoberfest 2025!✨  
今年,除了现有的开源项目外,我们还推出了一个全新项目:**IaaS-k8s**  

IaaS-k8s 是一个多云 Kubernetes 基础设施部署解决方案,支持 AWS EKS 和 GCP GKE,使用 Pulumi 和 TypeScript 构建。  

➝ _在这里了解更多并开始使用:_ [_IaaS-k8s 项目_](https://github.com/Chimoney/Iaas)

和往常一样,我们仍然会在此仓库中提供适合所有水平贡献者的开放 issues。

## 加入我们的社区

在我们的 [Discord 服务器](https://discord.gg/TsyKnzT4qV) 上与其他使用 Chimoney API 的人交流。  
在参与之前,请先阅读我们的 [行为准则](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md)。

## 联系方式

该仓库由 [@phyleria](https://github.com/phyleria) 积极维护,[@brijesh](https://github.com/brijeshthummar02) 和 [@Daniel](https://github.com/Danbaba1) 提供支持。  

如有任何问题或直接沟通,请通过邮箱 **<community@chimoney.io>** 联系我们。


================================================
FILE: README-ES.md
================================================
<div align="center">
  
[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/reference/introduction)
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Chimoney/chimoney-community-projects?tab=MIT-1-ov-file)
[![Open Issues](https://img.shields.io/github/issues/Chimoney/chimoney-community-projects)](https://github.com/Chimoney/chimoney-community-projects/issues)

</div>

&nbsp;

<div align="center" id="initial">
  <a href="https://chimoney.io/" target="_blank">
  <picture>
    <img src="https://chimoney.io/assets/icons/chimoney-purple-logo.svg" width="280" alt="Logo"/>
  </picture>
  </a>
</div>

<h3 align="center">
  Pagos Globales.  
  <br/>
  Una API, acceso a más de 130 países. <br/>
</h3>

<div align="center">
  
  [Documentación](https://chimoney.readme.io/reference/introduction) • [Kit de herramientas para desarrolladores](https://chimoney.io/toolkit/) • [Casos de uso de la API](https://chimoney.io/api-use-cases/) • [Únete a nuestro Discord](https://discord.gg/TsyKnzT4qV) • [Conéctate en X](https://x.com/chimoney_io)
  
</div>

---

## Acerca de Chimoney

[Chimoney](https://chimoney.io/) es un proveedor de infraestructura de pagos global que permite a empresas, organizaciones y comunidades enviar pagos masivos al instante en más de 130 países.  
Los pagos pueden canjearse a través de transferencias bancarias, dinero móvil, tarjetas de regalo y recargas de tiempo aire.

## Acerca de la API de Chimoney

La [API de Chimoney](https://chimoney.readme.io/reference/introduction) te permite enviar, recibir y cobrar pagos de forma programática a través de fronteras, con soporte para múltiples canales, incluyendo cuentas bancarias, billeteras de dinero móvil, tarjetas de regalo y recargas.

[Aquí hay un video](https://www.youtube.com/watch?v=VItvZbPH9cU&t=4s) para aprender más sobre la API de Chimoney.

## Acerca de los Proyectos Comunitarios de Chimoney

Los Proyectos Comunitarios de Chimoney son contribuciones de código abierto realizadas por desarrolladores, escritores y miembros de la comunidad que usan la API de Chimoney. Incluyen SDKs en diferentes lenguajes de programación, aplicaciones de ejemplo, integraciones y artículos técnicos que muestran casos de uso en el mundo real.

> **Nota:** Los Proyectos Comunitarios de Chimoney están construidos usando diferentes lenguajes de programación y stacks tecnológicos. Como resultado, cada proyecto incluye sus propias instrucciones de configuración en su archivo README individual. Asegúrate de revisar el README específico para obtener orientación sobre cómo ejecutar o contribuir a ese proyecto.

## Primeros Pasos con la API de Chimoney

Para comenzar con la API de Chimoney, regístrate para obtener una cuenta de desarrollador en [sandbox.chimoney.io](https://sandbox.chimoney.io).  
Esta [guía paso a paso](https://www.loom.com/share/436303eb69c44f0d9757ea0c655bed89?sid=b6a0f661-721c-4731-9873-ae6f2d25780) te llevará por el proceso de creación de una cuenta, generación de tu clave API y realización de tu primer pago de prueba usando el entorno sandbox.  
Una vez configurado, puedes comenzar a explorar la API de Chimoney, realizar solicitudes y construir proyectos con casos de uso reales.

## Cómo Contribuir

Los Proyectos Comunitarios de Chimoney están abiertos a desarrolladores, escritores y diseñadores que quieran construir, escribir o crear alrededor de la API de Chimoney.  
Puedes contribuir enviando SDKs, integraciones, aplicaciones de ejemplo o artículos técnicos que muestren casos de uso reales.  

Para comenzar, explora los [issues abiertos](https://github.com/Chimoney/chimoney-community-projects/issues) en este repositorio o propone tu propia idea.  

Cuando estés listo para hacer una contribución:  

1. Haz un fork del repositorio.  
2. Crea una rama.  
3. Realiza tus cambios.  
4. Abre un pull request.  

Incluye una descripción clara y sigue la estructura de carpetas del proyecto; todas las contribuciones van al directorio `submissions/`, y tu aporte debe ubicarse en su subcarpeta correspondiente (ej. artículos en `articles/`, SDKs en `SDKs/`).  

También puedes leer la [Guía de Contribución](/CONTRIBUTING.md) completa aquí para entender cómo contribuir de manera efectiva.

## Chimoney en Hacktoberfest

Chimoney ha participado en [Hacktoberfest](https://hacktoberfest.com/) cada año desde 2022, dando la bienvenida a desarrolladores, escritores y diseñadores para contribuir a nuestra comunidad de código abierto.  

Cada octubre, creamos issues **`Hacktoberfest`** para principiantes, lo que facilita que tanto los contribuyentes nuevos como los experimentados puedan involucrarse.  

También ofrecemos recompensas y reconocimiento por contribuciones significativas durante Hacktoberfest.  
Para explorar nuestros resúmenes pasados, ver cómo puedes participar y aprovechar al máximo tu contribución a los proyectos de código abierto de Chimoney, lee más aquí.

### Hacktoberfest 2025  

¡Chimoney está participando en Hacktoberfest 2025! ✨  
Este año, junto con nuestros proyectos de código abierto existentes, estamos presentando un nuevo proyecto: **IaaS-k8s**

IaaS-k8s es una solución de despliegue de infraestructura Kubernetes multi-nube que soporta AWS EKS y GCP GKE, construida con Pulumi y TypeScript.  

➝ _Conoce más sobre el proyecto y comienza aquí:_ [_Proyecto IaaS-k8s_](https://github.com/Chimoney/Iaas)

Como siempre, aún tendremos issues abiertos en este repositorio para colaboradores de todos los niveles.

## Únete a Nuestra Comunidad

Conéctate con otros que están construyendo con la API de Chimoney en nuestro [servidor de Discord](https://discord.gg/TsyKnzT4qV).  
Por favor, lee nuestro [Código de Conducta](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md) antes de participar.

## Contacto

Este repositorio es mantenido activamente por [@phyleria](https://github.com/phyleria), con el apoyo de [@brijesh](https://github.com/brijeshthummar02) y [@Daniel](https://github.com/Danbaba1).  

Para cualquier pregunta o comunicación directa, por favor contáctanos por correo a **<community@chimoney.io>**.


================================================
FILE: README-GM.md
================================================
<div align="center">
  
[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/reference/introduction)
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Chimoney/chimoney-community-projects?tab=MIT-1-ov-file)
[![Open Issues](https://img.shields.io/github/issues/Chimoney/chimoney-community-projects)](https://github.com/Chimoney/chimoney-community-projects/issues)

</div>

&nbsp;

<div align="center" id="initial">
  <a href="https://chimoney.io/" target="_blank">
  <picture>
    <img src="https://chimoney.io/assets/icons/chimoney-purple-logo.svg" width="280" alt="Logo"/>
  </picture>
  </a>
</div>

<h3 align="center">
  Globale Zahlungen.  
  <br/>
  Eine API, Zugang zu über 130 Ländern. <br/>
</h3>

<div align="center">
  
  [Dokumentation](https://chimoney.readme.io/reference/introduction) • [Entwickler-Toolkit](https://chimoney.io/toolkit/) • [API-Anwendungsfälle](https://chimoney.io/api-use-cases/) • [Tritt unserem Discord bei](https://discord.gg/TsyKnzT4qV) • [Verbinde dich auf X](https://x.com/chimoney_io)
  
</div>

---

## Über Chimoney  

[Chimoney](https://chimoney.io/) ist ein globaler Zahlungsinfrastruktur-Anbieter, der es Unternehmen, Organisationen und Communities ermöglicht, Massenzahlungen sofort in über 130 Ländern zu senden. Auszahlungen können über Banküberweisungen, Mobile Money, Geschenkkarten und Airtime eingelöst werden.  

## Über die Chimoney API  

Die [Chimoney API](https://chimoney.readme.io/reference/introduction) ermöglicht es Ihnen, Zahlungen programmgesteuert grenzüberschreitend zu senden, zu empfangen und zu sammeln – mit Unterstützung für mehrere Kanäle wie Bankkonten, Mobile Money Wallets, Geschenkkarten und Airtime.  

[Hier ist ein Video](https://www.youtube.com/watch?v=VItvZbPH9cU&t=4s), um mehr über die Chimoney API zu erfahren.  

## Über die Chimoney Community-Projekte  

Chimoney Community-Projekte sind Open-Source-Beiträge, die von Entwicklern, Autoren und Community-Mitgliedern unter Verwendung der Chimoney API erstellt wurden. Dazu gehören SDKs in verschiedenen Programmiersprachen, Beispielanwendungen, Integrationen und technische Artikel, die reale Anwendungsfälle hervorheben.  

> **Hinweis:** Chimoney Community-Projekte werden mit unterschiedlichen Programmiersprachen und Tech-Stacks erstellt. Daher enthält jedes Projekt seine eigenen Setup-Anweisungen in einer individuellen README-Datei. Bitte lesen Sie diese README, bevor Sie das Projekt ausführen oder daran mitwirken.  

## Einstieg mit der Chimoney API  

Um mit der Chimoney API zu beginnen, registrieren Sie sich für ein Entwicklerkonto unter [sandbox.chimoney.io](https://sandbox.chimoney.io). Diese [Schritt-für-Schritt-Anleitung](https://www.loom.com/share/436303eb69c44f0d9757ea0c655bed89?sid=b6a0f661-721c-4731-9873-ae6f2d25780) führt Sie durch den Prozess der Kontoerstellung, Generierung Ihres API-Schlüssels und der Durchführung Ihrer ersten Testauszahlung in der Sandbox-Umgebung.  

Sobald Ihr Setup abgeschlossen ist, können Sie die Chimoney API erkunden, Anfragen senden und Projekte mit realen Anwendungsfällen erstellen.  

## Beitrag leisten  

Chimoney Community-Projekte stehen Entwicklern, Autoren und Designern offen, die mit der Chimoney API entwickeln, schreiben oder gestalten möchten. Sie können beitragen, indem Sie SDKs, Integrationen, Beispiel-Apps oder technische Artikel mit realen Anwendungsfällen einreichen.  

Um loszulegen, sehen Sie sich die [offenen Issues](https://github.com/Chimoney/chimoney-community-projects/issues) in diesem Repo an oder schlagen Sie Ihre eigene Idee vor.  

Wenn Sie bereit für eine Einreichung sind, forken Sie das Repo, erstellen Sie einen Branch, nehmen Sie Ihre Änderungen vor und öffnen Sie einen Pull Request. Achten Sie darauf, eine klare Beschreibung hinzuzufügen und die Projektordnerstruktur einzuhalten. Alle Beiträge gehen in das `submissions/`-Verzeichnis, wobei Ihr Beitrag in den entsprechenden Unterordner kommt (z. B. Artikel in den `articles/`-Ordner, SDKs in den `SDKs/`-Ordner).  

Die vollständigen [Beitragsrichtlinien](/CONTRIBUTING.md) finden Sie hier, um zu verstehen, wie Sie effektiv beitragen können.  

## Chimoney Hacktoberfest  

Chimoney nimmt seit 2022 jedes Jahr am [Hacktoberfest](https://hacktoberfest.com/) teil und lädt Entwickler, Autoren und Designer ein, zu unserer Open-Source-Community beizutragen.  

Jeden Oktober erstellen wir einsteigerfreundliche **`Hacktoberfest`**-Issues, um es sowohl neuen als auch erfahrenen Mitwirkenden einfacher zu machen, sich zu beteiligen.  

Wir bieten außerdem Belohnungen und Anerkennung für bedeutungsvolle Beiträge während des Hacktoberfestes. Um unsere vergangenen Hacktoberfest-Rückblicke zu lesen, zu sehen, wie Sie sich beteiligen können, und das Beste aus Ihrem Beitrag zu Chimoneys Open-Source-Projekten zu machen, lesen Sie hier mehr.  

### Hacktoberfest 2025  

Chimoney nimmt am Hacktoberfest 2025 teil! ✨  
In diesem Jahr führen wir neben unseren bestehenden Open-Source-Projekten ein brandneues Projekt ein: **IaaS-k8s**  

IaaS-k8s ist eine Multi-Cloud-Kubernetes-Infrastruktur-Deployment-Lösung, die AWS EKS und GCP GKE unterstützt und mit Pulumi und TypeScript entwickelt wurde.  

➝ _Erfahren Sie mehr über das Projekt und starten Sie hier:_ [_IaaS-k8s Project_](https://github.com/Chimoney/Iaas)  

Wie immer werden auch in diesem Repo offene Issues für Mitwirkende aller Erfahrungsstufen verfügbar sein.  

## Treten Sie unserer Community bei  

Treten Sie mit anderen, die mit der Chimoney API entwickeln, in unserem [Discord-Server](https://discord.gg/TsyKnzT4qV) in Kontakt. Bitte lesen Sie unseren [Code of Conduct](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md), bevor Sie teilnehmen.  

## Kontakt  

Dieses Repository wird aktiv von [@phyleria](https://github.com/phyleria) gepflegt, mit Unterstützung von [@brijesh](https://github.com/brijeshthummar02) und [@Daniel](https://github.com/Danbaba1).  

Bei Fragen oder direkter Kommunikation kontaktieren Sie uns bitte per E-Mail unter **<community@chimoney.io>**  


================================================
FILE: README-HN.md
================================================
<div align="center">
  
[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/reference/introduction)
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Chimoney/chimoney-community-projects?tab=MIT-1-ov-file)
[![Open Issues](https://img.shields.io/github/issues/Chimoney/chimoney-community-projects)](https://github.com/Chimoney/chimoney-community-projects/issues)

</div>

&nbsp;

<div align="center" id="initial">
  <a href="https://chimoney.io/" target="_blank">
  <picture>
    <img src="https://chimoney.io/assets/icons/chimoney-purple-logo.svg" width="280" alt="Logo"/>
  </picture>
  </a>
</div>

<h3 align="center">
  वैश्विक भुगतान।  
  <br/>
  एक API, 130+ देशों तक पहुँच। <br/>
</h3>

<div align="center">
  
  [प्रलेखन](https://chimoney.readme.io/reference/introduction) • [डेवलपर टूलकिट](https://chimoney.io/toolkit/) • [API उपयोग केस](https://chimoney.io/api-use-cases/) • [हमसे Discord पर जुड़ें](https://discord.gg/TsyKnzT4qV) • [X पर कनेक्ट करें](https://x.com/chimoney_io)
  
</div>

---

## Chimoney के बारे में  

[Chimoney](https://chimoney.io/) एक वैश्विक भुगतान अवसंरचना प्रदाता है जो व्यवसायों, संगठनों और समुदायों को 130+ देशों में तुरंत थोक भुगतान भेजने में सक्षम बनाता है। भुगतान बैंक ट्रांसफ़र, मोबाइल मनी, गिफ्ट कार्ड और एयरटाइम के माध्यम से रिडीम किए जा सकते हैं।  

## Chimoney API के बारे में  

[Chimoney API](https://chimoney.readme.io/reference/introduction) आपको प्रोग्रामेटिक तरीके से भुगतान भेजने, प्राप्त करने और एकत्रित करने की सुविधा देता है। यह कई चैनलों का समर्थन करता है, जिनमें बैंक खाते, मोबाइल मनी वॉलेट, गिफ्ट कार्ड और एयरटाइम शामिल हैं।  

[यहाँ एक वीडियो](https://www.youtube.com/watch?v=VItvZbPH9cU&t=4s) है जो Chimoney API के बारे में और जानकारी देता है।  

## Chimoney कम्युनिटी प्रोजेक्ट्स के बारे में  

Chimoney कम्युनिटी प्रोजेक्ट्स ओपन-सोर्स योगदान हैं जिन्हें डेवलपर्स, राइटर्स और कम्युनिटी सदस्यों ने Chimoney API का उपयोग करके बनाया है। इनमें विभिन्न प्रोग्रामिंग भाषाओं में SDKs, सैंपल एप्लिकेशन्स, इंटीग्रेशन और तकनीकी लेख शामिल हैं जो वास्तविक दुनिया के उपयोग मामलों को उजागर करते हैं।  

> **नोट:** Chimoney कम्युनिटी प्रोजेक्ट्स अलग-अलग प्रोग्रामिंग भाषाओं और टेक स्टैक का उपयोग करके बनाए गए हैं। प्रत्येक प्रोजेक्ट की अपनी README फाइल होती है जिसमें सेटअप निर्देश शामिल हैं। कृपया योगदान या रन करने से पहले उस प्रोजेक्ट की README ज़रूर देखें।  

## Chimoney API के साथ शुरुआत करना  

Chimoney API के साथ शुरुआत करने के लिए, [sandbox.chimoney.io](https://sandbox.chimoney.io) पर एक डेवलपर खाता बनाएँ। यह [स्टेप-बाय-स्टेप गाइड](https://www.loom.com/share/436303eb69c44f0d9757ea0c655bed89?sid=b6a0f661-721c-4731-9873-ae6f2d25780) आपको खाता बनाने, API key जनरेट करने और sandbox environment का उपयोग करके अपनी पहली टेस्ट पेआउट करने की प्रक्रिया दिखाएगा।  

एक बार सेटअप पूरा हो जाने के बाद, आप Chimoney API को एक्सप्लोर करना शुरू कर सकते हैं, अनुरोध भेज सकते हैं और वास्तविक दुनिया के उपयोग मामलों वाले प्रोजेक्ट बना सकते हैं।  

## योगदान करना  

Chimoney कम्युनिटी प्रोजेक्ट्स डेवलपर्स, राइटर्स और डिज़ाइनर्स के लिए खुले हैं जो Chimoney API के साथ निर्माण करना, लिखना या बनाना चाहते हैं। आप SDKs, इंटीग्रेशन, उदाहरण एप्लिकेशन्स, या तकनीकी लेख देकर योगदान कर सकते हैं।  

शुरू करने के लिए, इस रिपॉजिटरी के [open issues](https://github.com/Chimoney/chimoney-community-projects/issues) देखें या अपना विचार प्रस्तावित करें।  

जब आप सबमिशन करने के लिए तैयार हों, तो रिपॉजिटरी को fork करें, एक branch बनाएँ, अपने बदलाव करें और एक pull request खोलें। कृपया एक स्पष्ट विवरण शामिल करें और प्रोजेक्ट फ़ोल्डर संरचना का पालन करें। सभी योगदान `submissions/` डायरेक्टरी में जाएंगे, जहाँ आपका योगदान संबंधित सबफ़ोल्डर में रखा जाएगा (जैसे कि लेख `articles/` फ़ोल्डर में, SDKs `SDKs/` फ़ोल्डर में)।  

पूरी [Contribution Guidelines](/CONTRIBUTING.md) यहाँ पढ़ें ताकि आप प्रभावी ढंग से योगदान कर सकें।  

## Chimoney Hacktoberfest  

Chimoney ने [Hacktoberfest](https://hacktoberfest.com/) में 2022 से भाग लिया है, और डेवलपर्स, राइटर्स और डिज़ाइनर्स का स्वागत किया है कि वे हमारे ओपन-सोर्स समुदाय में योगदान दें।  

हर अक्टूबर, हम शुरुआती-अनुकूल **`Hacktoberfest`** issues बनाते हैं ताकि नए और अनुभवी योगदानकर्ताओं दोनों के लिए योगदान करना आसान हो।  

हम Hacktoberfest के दौरान सार्थक योगदानों के लिए पुरस्कार और मान्यता भी प्रदान करते हैं। हमारे पिछले Hacktoberfest recaps देखने और योगदान करने के तरीकों को जानने के लिए यहाँ पढ़ें।  

### Hacktoberfest 2025  

Chimoney, Hacktoberfest 2025 में भाग ले रहा है! ✨  
इस साल, मौजूदा ओपन-सोर्स प्रोजेक्ट्स के साथ, हम एक नया प्रोजेक्ट पेश कर रहे हैं: **IaaS-k8s**  

IaaS-k8s एक मल्टी-क्लाउड Kubernetes अवसंरचना परिनियोजन समाधान है, जो AWS EKS और GCP GKE को सपोर्ट करता है। यह Pulumi और TypeScript से बनाया गया है।  

➝ _प्रोजेक्ट के बारे में और जानें और यहाँ से शुरुआत करें:_ [_IaaS-k8s Project_](https://github.com/Chimoney/Iaas)  

जैसा हमेशा, इस रिपॉजिटरी में सभी स्तरों के योगदानकर्ताओं के लिए open issues उपलब्ध रहेंगे।  

## हमारी कम्युनिटी से जुड़ें  

Chimoney API के साथ निर्माण कर रहे अन्य लोगों से हमारे [Discord server](https://discord.gg/TsyKnzT4qV) पर जुड़ें। कृपया भाग लेने से पहले हमारा [Code of Conduct](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md) पढ़ें।  

## संपर्क  

यह रिपॉजिटरी सक्रिय रूप से [@phyleria](https://github.com/phyleria) द्वारा प्रबंधित की जाती है, और [@brijesh](https://github.com/brijeshthummar02) और [@Daniel](https://github.com/Danbaba1) द्वारा सहयोग प्रदान किया जाता है।  

किसी भी प्रश्न या सीधे संपर्क के लिए, कृपया ईमेल करें: **<community@chimoney.io>**  


================================================
FILE: README-JP.md
================================================
<div align="center">
  
[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/reference/introduction)
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Chimoney/chimoney-community-projects?tab=MIT-1-ov-file)
[![Open Issues](https://img.shields.io/github/issues/Chimoney/chimoney-community-projects)](https://github.com/Chimoney/chimoney-community-projects/issues)

</div>

&nbsp;

<div align="center" id="initial">
  <a href="https://chimoney.io/" target="_blank">
  <picture>
    <img src="https://chimoney.io/assets/icons/chimoney-purple-logo.svg" width="280" alt="Logo"/>
  </picture>
  </a>
</div>

<h3 align="center">
  グローバル決済。
  <br/>
  1つのAPIで、130以上の国にアクセス。<br/>
</h3>

<div align="center">
  
  [ドキュメント](https://chimoney.readme.io/reference/introduction) • [開発者ツールキット](https://chimoney.io/toolkit/) • [APIユースケース](https://chimoney.io/api-use-cases/) • [Discordに参加](https://discord.gg/TsyKnzT4qV) • [Xでつながる](https://x.com/chimoney_io)
  
</div>

---

## Chimoneyについて

[Chimoney](https://chimoney.io/) は、世界130カ国以上で即時にバルクペイメントを送信できるグローバル決済インフラプロバイダーです。銀行振込、モバイルマネー、ギフトカード、エアタイムなど多様な方法で受け取りが可能です。

## Chimoney APIについて

[Chimoney API](https://chimoney.readme.io/reference/introduction) を使えば、プログラムから国境を越えて送金や受け取り、集金が可能です。銀行口座、モバイルマネーウォレット、ギフトカード、エアタイムなど、複数のチャネルをサポートしています。

[こちらの動画](https://www.youtube.com/watch?v=VItvZbPH9cU&t=4s)で、Chimoney APIの概要をご覧いただけます。

## Chimoney Community Projectsについて

Chimoney Community Projects は、開発者やライター、コミュニティメンバーが Chimoney API を活用して作成したオープンソース貢献です。SDK、サンプルアプリケーション、統合プロジェクト、実際のユースケースを紹介する技術記事などが含まれます。

> **注意:** Chimoney Community Projects はさまざまなプログラミング言語や技術スタックを使用して構築されています。そのため、それぞれのプロジェクトには専用の README があり、セットアップ手順が記載されています。必ず各 README を確認してください。

## Chimoney APIを始めるには

[Sandbox環境](https://sandbox.chimoney.io) で開発者アカウントを作成し、APIキーを生成してテスト送金を行うことで Chimoney API をすぐに試すことができます。[こちらのステップバイステップガイド](https://www.loom.com/share/436303eb69c44f0d9757ea0c655bed89?sid=b6a0f661-721c-4731-9873-ae6f2d25780) をご覧ください。

## 貢献について

開発者、ライター、デザイナーは誰でも Chimoney API を活用したSDK、統合、サンプルアプリ、技術記事を貢献できます。[オープンイシュー](https://github.com/Chimoney/chimoney-community-projects/issues) を確認するか、自分のアイデアを提案してください。

準備ができたら、リポジトリをフォークし、ブランチを作成、変更を加えてプルリクエストを送ってください。詳細は [コントリビューションガイド](/CONTRIBUTING.md) をご覧ください。

## Chimoney Hacktoberfest

Chimoney は 2022 年から [Hacktoberfest](https://hacktoberfest.com/) に参加しており、開発者、ライター、デザイナーのオープンソース貢献を歓迎しています。  
毎年10月には、初心者から経験者まで参加しやすい **`Hacktoberfest`** イシューを公開しています。

### Hacktoberfest 2025

Chimoney は Hacktoberfest 2025 に参加します!✨  
今年は既存のオープンソースプロジェクトに加えて、新しいプロジェクト **IaaS-k8s** を導入しました。

IaaS-k8s は、Pulumi と TypeScript を使用して構築された、AWS EKS と GCP GKE をサポートするマルチクラウド Kubernetes インフラ展開ソリューションです。

➝ _詳細とスタートはこちら:_ [_IaaS-k8s Project_](https://github.com/Chimoney/Iaas)

このリポジトリにも、初心者から上級者まで参加できるオープンイシューを用意しています。

## コミュニティに参加する

[Discordサーバー](https://discord.gg/TsyKnzT4qV) で他の開発者とつながりましょう。参加前に [Code of Conduct](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md) をご確認ください。

## 連絡先

このリポジトリは [@phyleria](https://github.com/phyleria) が主体となってメンテナンスし、[@brijesh](https://github.com/brijeshthummar02) と [@Daniel](https://github.com/Danbaba1) がサポートしています。

質問や連絡は **community@chimoney.io** までお願いします。

================================================
FILE: README-KO.md
================================================
<div align="center">
  
[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/reference/introduction)
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Chimoney/chimoney-community-projects?tab=MIT-1-ov-file)
[![Open Issues](https://img.shields.io/github/issues/Chimoney/chimoney-community-projects)](https://github.com/Chimoney/chimoney-community-projects/issues)

</div>

&nbsp;

<div align="center" id="initial">
  <a href="https://chimoney.io/" target="_blank">
  <picture>
    <img src="https://chimoney.io/assets/icons/chimoney-purple-logo.svg" width="280" alt="Logo"/>
  </picture>
  </a>
</div>

<h3 align="center">
  글로벌 결제.
  <br/>
  하나의 API로 130개 이상의 국가에 접근하세요. <br/>
</h3>

<div align="center">
  
  [문서](https://chimoney.readme.io/reference/introduction) • [개발자 도구](https://chimoney.io/toolkit/) • [API 사용 사례](https://chimoney.io/api-use-cases/) • [Discord에 참여하기](https://discord.gg/TsyKnzT4qV) • [X에서 소통하기](https://x.com/chimoney_io)
  
</div>

---

## Chimoney 소개

[Chimoney](https://chimoney.io/)는 전 세계 130개 이상의 국가에서 기업, 조직, 커뮤니티가 대량 결제를 즉시 보낼 수 있도록 지원하는 글로벌 결제 인프라 제공업체입니다. 송금은 은행 이체, 모바일 머니, 기프트 카드, 에어타임을 통해 수령할 수 있습니다.

## Chimoney API 소개

[Chimoney API](https://chimoney.readme.io/reference/introduction)를 사용하면 은행 계좌, 모바일 머니 지갑, 기프트 카드, 에어타임 등 다양한 채널을 통해 국경을 넘어 결제를 송수신하고 수금할 수 있습니다.  

더 자세히 알아보려면 [이 영상](https://www.youtube.com/watch?v=VItvZbPH9cU&t=4s)을 확인하세요.

## Chimoney 커뮤니티 프로젝트 소개

Chimoney 커뮤니티 프로젝트는 개발자, 작가, 커뮤니티 구성원이 Chimoney API를 활용해 만든 오픈소스 기여물입니다. 여기에는 다양한 언어의 SDK, 샘플 애플리케이션, 통합, 실제 사용 사례를 다룬 기술 문서가 포함됩니다.

> **참고:** Chimoney 커뮤니티 프로젝트는 서로 다른 프로그래밍 언어와 기술 스택을 기반으로 구축됩니다. 따라서 각 프로젝트에는 개별 `README` 파일에 자체 설정 지침이 포함되어 있습니다. 반드시 해당 프로젝트의 `README`를 확인하세요.

## Chimoney API 시작하기

Chimoney API를 시작하려면 [sandbox.chimoney.io](https://sandbox.chimoney.io)에서 개발자 계정을 등록하세요. [이 단계별 가이드](https://www.loom.com/share/436303eb69c44f0d9757ea0c655bed89?sid=b6a0f661-721c-4731-9873-ae6f2d25780)를 통해 계정 생성, API 키 발급, 샌드박스 환경에서 첫 테스트 송금까지 과정을 안내받을 수 있습니다.  

준비가 끝나면 Chimoney API를 탐색하고 요청을 보내며 실제 사용 사례에 기반한 프로젝트를 구축할 수 있습니다.

## 기여하기

Chimoney 커뮤니티 프로젝트는 Chimoney API를 기반으로 빌드, 작성, 창작을 하고자 하는 개발자, 작가, 디자이너에게 열려 있습니다. SDK, 통합, 예제 앱, 실제 사용 사례를 다루는 기술 문서를 제출하여 기여할 수 있습니다.  

먼저 이 저장소의 [오픈 이슈](https://github.com/Chimoney/chimoney-community-projects/issues)를 확인하거나 직접 아이디어를 제안하세요.  

준비가 되면 저장소를 fork하고, 브랜치를 만든 뒤 변경 사항을 작성해 pull request를 열어주세요. 명확한 설명을 포함하고 프로젝트 폴더 구조를 따르는 것이 중요합니다. 모든 기여물은 `submissions/` 디렉토리에 제출되며, 유형별로 적절한 하위 폴더에 배치됩니다(예: 글은 `articles/`, SDK는 `SDKs/`).

자세한 방법은 전체 [기여 가이드라인](/CONTRIBUTING.md)을 참고하세요.

## Chimoney Hacktoberfest

Chimoney는 2022년부터 매년 [Hacktoberfest](https://hacktoberfest.com/)에 참여하여 개발자, 작가, 디자이너가 오픈소스 커뮤니티에 기여할 수 있도록 해왔습니다.  

매년 10월, 초보자와 숙련된 기여자 모두가 쉽게 참여할 수 있도록 **`Hacktoberfest`** 친화적인 이슈를 생성합니다.  

Hacktoberfest 기간 동안 의미 있는 기여를 해주신 분들께는 보상과 인정을 제공합니다. 지난 Hacktoberfest 기록과 참여 방법을 확인하고, Chimoney 오픈소스 프로젝트에 기여해 보세요.

### Hacktoberfest 2025

Chimoney는 Hacktoberfest 2025에 참여합니다!✨  
올해는 기존 오픈소스 프로젝트와 함께 **IaaS-k8s**라는 새로운 프로젝트를 소개합니다.  

IaaS-k8s는 Pulumi와 TypeScript로 구축된 멀티 클라우드 Kubernetes 인프라 배포 솔루션으로, AWS EKS와 GCP GKE를 지원합니다.  

➝ _프로젝트에 대해 더 알아보고 시작하려면 여기를 클릭하세요:_ [_IaaS-k8s 프로젝트_](https://github.com/Chimoney/Iaas)

기존과 마찬가지로, 이 저장소에서는 모든 수준의 기여자가 참여할 수 있는 오픈 이슈를 준비해 두었습니다.

## 커뮤니티 참여하기

[Discord 서버](https://discord.gg/TsyKnzT4qV)에서 Chimoney API를 활용하는 다른 개발자들과 소통하세요. 참여 전 반드시 [행동 강령](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md)을 읽어주세요.

## 문의하기

이 저장소는 [@phyleria](https://github.com/phyleria)가 주도적으로 관리하며, [@brijesh](https://github.com/brijeshthummar02), [@Daniel](https://github.com/Danbaba1)의 지원을 받고 있습니다.  

문의사항이나 직접 연락이 필요한 경우 **<community@chimoney.io>**로 이메일을 보내주세요.


================================================
FILE: README.md
================================================
<div align="center">
  
[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/reference/introduction)
[![MIT License](https://img.shields.io/badge/license-MIT-green)](https://github.com/Chimoney/chimoney-community-projects?tab=MIT-1-ov-file)
[![Open Issues](https://img.shields.io/github/issues/Chimoney/chimoney-community-projects)](https://github.com/Chimoney/chimoney-community-projects/issues)

</div>

&nbsp;

<div align="center" id="initial">
  <a href="https://chimoney.io/" target="_blank">
  <picture>
    <img src="https://chimoney.io/assets/icons/chimoney-purple-logo.svg" width="280" alt="Logo"/>
  </picture>
  </a>
</div>

<h3 align="center">
  Global Payments.
  <br/>
  One API, Access to 130+ countries. <br/>
</h3>

<div align="center">
  
  [Documentation](https://chimoney.readme.io/reference/introduction) • [Developer toolkit](https://chimoney.io/toolkit/) • [API use cases](https://chimoney.io/api-use-cases/) • [Join us on Discord](https://discord.gg/TsyKnzT4qV) • [Connect on X](https://x.com/chimoney_io)
  
</div>

___
<div align="center">

<u>[Deutsch (German)](README-GM.md)</u> |
<u>[Español (Spanish)](README-ES.md)</u> |
<u>[日本語 (Japanese)](README-JP.md)</u> |
<u>[हिन्दी (Hindi)](README-HN.md)</u> |
<u>[中文 (Chinese)](README-CN.md)</u> |
<u>[বাংলা (Bengali)](README-BN.md)</u>

</div>

___

## Table of Contents

- [About](#about)
  - [Chimoney](#chimoney)
  - [Chimoney API](#chimoney-api)
  - [Chimoney Community Projects](#chimoney-community-projects)
- [Getting Started with the Chimoney API](#getting-started-with-the-chimoney-api)
- [Contributing](#contributing)
- [Chimoney Hacktoberfest](#chimoney-hacktoberfest)
- [Join our Community](#join-our-community)
- [Contact](#contact)

## About

### Chimoney

[Chimoney](https://chimoney.io/) is a global payments infrastructure provider that enables businesses, organizations and communities to send bulk payments instantly in over 130 countries. Payouts can be redeemed via bank transfers, mobile money, gift cards, and airtime.

### Chimoney API

The [Chimoney API](https://chimoney.readme.io/reference/introduction) lets you programmatically send, receive, and collect payments across borders with support for multiple channels including bank accounts, mobile money wallets, gift cards, and airtime.



Through the integration of the Interledger Protocol (ILP), Chimoney also enables interoperable payments across networks. Developers can issue Interledger Wallet Addresses (Payment Pointers) and allow users to send and receive payments globally, powering use cases like Web Monetization and Open Payments. Learn more [**here.**](https://chimoney.io/blogs/a-developer-s-guide-to-enabling-ilp-payments-with-chimoney/)

[Here's a video](https://www.youtube.com/watch?v=VItvZbPH9cU&t=4s) to learn more about the Chimoney API.

### Chimoney Community Projects

Chimoney Community Projects are open-source contributions made by developers, writers, and community members using the Chimoney API. They include SDKs in different programming languages, sample applications, integrations, and technical articles that highlight real-world use cases.

> **Note:** Chimoney Community Projects are built using different programming languages and tech stacks. As a result, each project includes its own setup instructions in its individual README file. Be sure to check the specific README for guidance on running or contributing to that project.

## Getting Started with the Chimoney API

To get started with the Chimoney API, sign up for a developer account at [sandbox.chimoney.io](https://sandbox.chimoney.io). This [step-by-step guide](https://www.loom.com/share/436303eb69c44f0d9757ea0c655bed89?sid=b6a0f661-721c-4731-9873-ae6f2d25780) will take you through the process of creating an account, generating your API key, and making your first test payout using the sandbox environment. Once your setup is complete, you can begin exploring the Chimoney API, making requests, and building projects with real-world use cases.

## Contributing

Chimoney Community Projects are open to developers, writers and designers who want to build with, write or create around the Chimoney API. You can contribute by submitting:

- SDKs
- integrations
- example apps
- or technical articles showing real-world use cases.

To get started, explore the [open issues](https://github.com/Chimoney/chimoney-community-projects/issues) in this repo or propose your own idea.

When you're ready to make a submission:

- fork the repo
- create a branch
- make your changes
- and open a pull request.

Be sure to include a clear description and follow the project folder structure; all contributions go into the submissions/ directory, with your specific contribution placed in its relevant subfolder, for example: 
- Articles in the articles/ folder 
- SDKs in the SDKs/ folder

You can also read the full [Contribution Guidelines](/CONTRIBUTING.md) here to understand how to contribute effectively.

## Chimoney Hacktoberfest

Chimoney has participated in [Hacktoberfest](https://hacktoberfest.com/) every year since 2022, welcoming developers, writers, and designers to contribute to our open-source community.

Each October, we create beginner-friendly **`Hacktoberfest`** issues to make it easier for first-time and seasoned contributors alike to get involved.

We also offer rewards and recognition for meaningful contributions during Hacktoberfest. To explore our past Hacktoberfest recaps, see how you can get involved, and make the most of contributing to Chimoney's open-source projects, read more here.


### Hcktoberfest 2025

Chimoney is participating in Hacktoberfest 2025!✨
This year, along with our existing open-source projects, we’re introducing a brand-new project: **IaaS-k8s**

IaaS-k8s is a multi-cloud Kubernetes infrastructure deployment solution supporting AWS EKS and GCP GKE, built with Pulumi and TypeScript.

➝ _Learn more about the project and get started here:_ [_IaaS-k8s Project_](https://github.com/Chimoney/Iaas)

As always, we’ll still have open issues available in this repo for contributors of all levels.

### Rewards for Contributors

To recognize meaningful contributions during Hacktoberfest 2025, we’ll award $10 per substantial contribution (merged PRs that add value). Contributors will also be highlighted on our website and social channels.

> “Substantial contributions” include feature additions, integrations, SDKs, or technical articles. Minor edits/fixes or formatting changes are not eligible.

## Community Events Calendar

Stay connected with our community through upcoming Hacktoberfest events, contributor meetups, and live sessions.

→ [View the full Chimoney Community Calendar here](https://luma.com/calendar/manage/cal-uGd7p3LVZ350i8C).

## Join our Community

Connect with others building with the Chimoney API on our [Discord server](https://discord.gg/TsyKnzT4qV). Please read our [Code of Conduct](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md) before participating.

## Contact

This repository is actively maintained by [@phyleria](https://github.com/phyleria), with support from [@brijesh](https://github.com/brijeshthummar02) and [@Daniel](https://github.com/Danbaba1).

For any questions or direct communication, please reach out via email at **<community@chimoney.io>**.


================================================
FILE: ai-passport-and-wallet-examples/.gitignore
================================================
# Environment variables
.env
.env.local
.env.*.local

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
venv/
ENV/
env/

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db



================================================
FILE: ai-passport-and-wallet-examples/README.md
================================================
# AI Passport and Wallet Examples

Working integrations demonstrating how to create AI agents with Chimoney wallets, policy controls, and autonomous payment capabilities.

## Examples

### 1. LangChain Research Agent
**Location**: `langchain-research-agent/`

A LangChain agent that autonomously pays for API access to data sources (weather, stock prices, news) with spending limits and transaction approval controls.

- Daily spending limit: $50/day
- Auto-approval for transactions ≤$10
- Manual approval required for transactions >$10

[View Example →](./langchain-research-agent/)

### 2. CrewAI Support Agent
**Location**: `crewai-support-agent/`

A CrewAI multi-agent system for customer support that autonomously issues refunds up to $100/day with L4 assurance for compliance and immutable audit trail.

- Daily refund limit: $100/day
- L4 assurance for compliance
- Immutable audit trail

[View Example →](./crewai-support-agent/)

### 3. Data Processing Agent
**Location**: `data-processing-agent/`

A custom Python agent that pays other agents for specialized analysis. Demonstrates agent-to-agent transactions with policy enforcement.

- Agent-to-agent payments
- Policy-controlled transactions
- Specialized analysis delegation

[View Example →](./data-processing-agent/)

## Getting Started

Each example includes:
- ✅ Full source code
- ✅ README with setup instructions
- ✅ Requirements/dependencies
- ✅ Environment configuration

Navigate to any example directory and follow its README for setup instructions.

## Prerequisites

- Python 3.8+
- Chimoney API key ([Get one here](https://sandbox.chimoney.io))
- Framework-specific dependencies (see individual example READMEs)

## API Documentation

- [Chimoney API v0.2.4 Documentation](https://api.chimoney.io/v0.2.4/api-docs)
- [Swagger JSON](https://api-v2-sandbox.chimoney.io/swagger.json)

## Contributing

Contributions are welcome! Please read the [Contributing Guide](../CONTRIBUTING.md) first.

## License

MIT License

## Resources

- [Chimoney Community Projects](https://github.com/Chimoney/chimoney-community-projects)
- [Chimoney Documentation](https://chimoney.readme.io)
- [Join Discord](https://discord.gg/TsyKnzT4qV)



================================================
FILE: ai-passport-and-wallet-examples/crewai-support-agent/README.md
================================================
# CrewAI Support Agent with Chimoney Wallet

A CrewAI multi-agent system for customer support that autonomously issues refunds up to $100/day with L4 assurance for compliance and immutable audit trail.

## Features

- ✅ Autonomous refund processing
- ✅ Built-in daily refund limit: $100/day (enforced by Chimoney API)
- ✅ Built-in max refund per transaction: $100 (enforced by Chimoney API)
- ✅ L4 assurance for compliance
- ✅ Immutable audit trail
- ✅ Multi-agent coordination with CrewAI

## Overview

This example demonstrates how to integrate Chimoney's AI agent wallet infrastructure with CrewAI to create a customer support system that can autonomously process refunds while maintaining compliance and audit requirements.

## Prerequisites

- Python 3.8+
- Chimoney API key ([Get one free at sandbox.chimoney.io](https://sandbox.chimoney.io))
- CrewAI installed
- OpenAI API key (or other LLM provider compatible with CrewAI)

## Installation

```bash
# Clone the repository
git clone https://github.com/Chimoney/chimoney-community-projects.git
cd chimoney-community-projects/ai-passport-and-wallet-examples/crewai-support-agent

# Install dependencies
pip install -r requirements.txt

# Set up environment variables
cp .env.example .env
# Edit .env with your API keys (CHIMONEY_API_KEY and OPENAI_API_KEY are required)
```

## Environment Variables

Create a `.env` file with the following:

```env
CHIMONEY_API_KEY=your_chimoney_api_key
CHIMONEY_SANDBOX_URL=https://api-v2-sandbox.chimoney.io
OPENAI_API_KEY=your_openai_api_key
AGENT_EMAIL=support-agent@yourdomain.com
AGENT_NAME=Support Agent
DAILY_REFUND_LIMIT=100
```

## Usage

```bash
python support_agent.py
```

## How It Works

1. **Wallet Creation**: Creates an AI agent wallet with built-in refund limits using the agents/create endpoint
2. **Automatic Limit Enforcement**: Chimoney API automatically enforces daily refund limits ($100/day) and max per transaction ($100)
3. **Refund Processing**: Processes refunds automatically - API rejects refunds exceeding limits
4. **Audit Trail**: Records all transactions with immutable audit logs
5. **Multi-Agent Coordination**: Uses CrewAI for task distribution and coordination
6. **No Manual Tracking**: Limits are enforced server-side, no need to manually track refunds

## API Endpoints Used

- `POST /v0.2.4/agents/create` - Create AI agent wallet
- `POST /v0.2.4/payouts/chimoney` - Issue refunds
- `POST /v0.2.4/accounts/transactions` - Get audit trail
- `POST /v0.2.4/accounts/issue-id-transactions` - Get transaction by ID

## Example Flow

```python
# Customer requests refund
customer_email = "customer@example.com"
refund_amount = 25.00

# Agent processes refund
agent.process_refund(customer_email, refund_amount)

# Chimoney API checks built-in limits automatically
# Refund approved (under $100/day limit, under $100 max per tx)
# Payment processed
# Audit log created

# If limit exceeded:
# Chimoney API returns error, refund rejected
# Agent receives clear error message
```

## Contributing

Contributions are welcome! Please read the [Contributing Guide](../../CONTRIBUTING.md) first.

## License

MIT License

## Resources

- [Chimoney API Documentation](https://api.chimoney.io/v0.2.4/api-docs)
- [Chimoney API Swagger (Interactive)](https://api-v2-sandbox.chimoney.io/swagger.json)
- [Get Chimoney API Key](https://sandbox.chimoney.io)
- [CrewAI Documentation](https://docs.crewai.com/)
- [Chimoney Community Projects](https://github.com/Chimoney/chimoney-community-projects)



================================================
FILE: ai-passport-and-wallet-examples/crewai-support-agent/requirements.txt
================================================
crewai>=0.1.0
langchain>=0.1.0
langchain-openai>=0.0.5
openai>=1.0.0
python-dotenv>=1.0.0
requests>=2.31.0
pydantic>=2.0.0



================================================
FILE: ai-passport-and-wallet-examples/crewai-support-agent/support_agent.py
================================================
"""
CrewAI Support Agent with Chimoney Wallet Integration

This agent autonomously issues refunds up to $100/day with L4 assurance
for compliance and immutable audit trail.
"""

import os
import requests
from datetime import datetime
from typing import Dict, List
from dotenv import load_dotenv
from crewai import Agent, Task, Crew, Process
from langchain_openai import ChatOpenAI

# Load environment variables
load_dotenv()

# Configuration
CHIMONEY_API_KEY = os.getenv("CHIMONEY_API_KEY")
CHIMONEY_BASE_URL = os.getenv("CHIMONEY_SANDBOX_URL", "https://api-v2-sandbox.chimoney.io")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
AGENT_EMAIL = os.getenv("AGENT_EMAIL", "support-agent@example.com")
AGENT_NAME = os.getenv("AGENT_NAME", "Support Agent")
DAILY_REFUND_LIMIT = float(os.getenv("DAILY_REFUND_LIMIT", "100"))

# Validate required API keys
if not CHIMONEY_API_KEY:
    raise ValueError("CHIMONEY_API_KEY environment variable is required. Get your API key at https://sandbox.chimoney.io")
if not OPENAI_API_KEY:
    raise ValueError("OPENAI_API_KEY environment variable is required")


class ChimoneyWallet:
    """Wrapper for Chimoney API operations"""
    
    def __init__(self, api_key: str, base_url: str):
        self.api_key = api_key
        self.base_url = base_url
        self.headers = {
            "accept": "application/json",
            "content-type": "application/json",
            "X-API-KEY": api_key
        }
        self.wallet_id = None
        self.audit_log = []
    
    def create_wallet(self, name: str, email: str, daily_refund_limit: float = 100.0) -> Dict:
        """Create an AI agent wallet with built-in refund limits
        
        Limits are enforced by the Chimoney API automatically:
        - refundAmountDailyCap: Maximum refunds per day (in USD cents)
        - refundAmountMaxPerTx: Maximum refund per transaction (in USD cents)
        """
        url = f"{self.base_url}/v0.2.4/agents/create"
        payload = {
            "name": name,
            "email": email,
            "limits": {
                "refundAmountMaxPerTx": int(daily_refund_limit * 100),  # Max $100 per refund
                "refundAmountDailyCap": int(daily_refund_limit * 100)  # $100 daily cap
            },
            "capabilities": ["finance.payment.refund"]
        }
        
        response = requests.post(url, json=payload, headers=self.headers)
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            # Agent wallet ID is typically in data.data.id or data.data.walletId
            wallet_data = data.get("data", {})
            self.wallet_id = wallet_data.get("id") or wallet_data.get("walletId") or wallet_data.get("subAccount")
            return wallet_data
        raise Exception(f"Failed to create agent wallet: {data}")
    
    def process_refund(self, customer_email: str, amount: float, reason: str = "Customer refund") -> Dict:
        """Process a refund to a customer using Chimoney payout
        
        Limits are automatically enforced by the Chimoney API.
        If limits are exceeded, the API will return an error.
        """
        url = f"{self.base_url}/v0.2.4/payouts/chimoney"
        payload = {
            "chimoneys": [{
                "email": customer_email,
                "valueInUSD": amount,
                "reason": f"Refund: {reason}"
            }]
        }
        
        # Include subAccount if wallet_id is available
        if self.wallet_id:
            payload["subAccount"] = self.wallet_id
        
        response = requests.post(url, json=payload, headers=self.headers)
        
        # Check for limit violations (API will return 400/403 for limit exceeded)
        if response.status_code in [400, 403]:
            error_data = response.json()
            error_msg = error_data.get("error") or error_data.get("message", "Refund failed")
            raise Exception(f"Refund limit exceeded: {error_msg}")
        
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            # Extract issueID from response
            payout_data = data.get("data", {})
            chimoneys = payout_data.get("chimoneys", [])
            transaction_id = chimoneys[0].get("issueID", "unknown") if chimoneys else payout_data.get("issueID", "unknown")
            
            # Create audit log entry
            audit_entry = {
                "timestamp": datetime.now().isoformat(),
                "transaction_id": transaction_id,
                "type": "refund",
                "amount": amount,
                "customer_email": customer_email,
                "reason": reason,
                "l4_assurance": True
            }
            self.audit_log.append(audit_entry)
            
            return {
                "transaction_id": transaction_id,
                "amount": amount,
                "audit_entry": audit_entry
            }
        
        raise Exception(f"Refund failed: {data}")
    
    def get_audit_trail(self) -> List[Dict]:
        """Get immutable audit trail"""
        return self.audit_log.copy()
    
    def get_transaction_by_id(self, issue_id: str) -> Dict:
        """Get transaction details by issue ID"""
        url = f"{self.base_url}/v0.2.4/accounts/issue-id-transactions"
        params = {"issueID": issue_id}
        
        response = requests.post(url, json={}, headers=self.headers, params=params)
        response.raise_for_status()
        return response.json()


class SupportAgent:
    """CrewAI support agent with Chimoney wallet integration"""
    
    def __init__(self):
        self.wallet = ChimoneyWallet(CHIMONEY_API_KEY, CHIMONEY_BASE_URL)
        self.initialize_wallet()
        self.llm = ChatOpenAI(model="gpt-4", temperature=0, api_key=OPENAI_API_KEY)
        self.crew = self._create_crew()
    
    def initialize_wallet(self):
        """Initialize the agent's wallet with built-in refund limits"""
        try:
            wallet_data = self.wallet.create_wallet(
                AGENT_NAME, 
                AGENT_EMAIL,
                daily_refund_limit=DAILY_REFUND_LIMIT
            )
            print(f"✅ Wallet created: {wallet_data.get('id')}")
            print(f"   Daily refund limit: ${DAILY_REFUND_LIMIT} (enforced by API)")
            print(f"   Max refund per transaction: ${DAILY_REFUND_LIMIT} (enforced by API)")
        except Exception as e:
            print(f"⚠️  Wallet initialization error: {e}")
            print("Continuing with limited functionality...")
    
    def _create_crew(self) -> Crew:
        """Create CrewAI crew with specialized agents"""
        
        # Refund Processor Agent
        refund_agent = Agent(
            role="Refund Processor",
            goal="Process customer refunds efficiently and within daily limits",
            backstory="""You are a specialized refund processor with access to 
            payment infrastructure. You can process refunds up to $100/day automatically.
            Always check daily limits before processing.""",
            verbose=True,
            allow_delegation=False,
            llm=self.llm
        )
        
        # Support Coordinator Agent
        coordinator_agent = Agent(
            role="Support Coordinator",
            goal="Coordinate customer support requests and delegate refund processing",
            backstory="""You coordinate customer support operations and delegate
            refund requests to the refund processor when appropriate.""",
            verbose=True,
            allow_delegation=True,
            llm=self.llm
        )
        
        return Crew(
            agents=[coordinator_agent, refund_agent],
            tasks=[],
            process=Process.sequential,
            verbose=True
        )
    
    def process_refund_request(self, customer_email: str, amount: float, reason: str) -> Dict:
        """Process a refund request
        
        Limits are automatically enforced by the Chimoney API.
        """
        try:
            # Process refund (API will enforce limits)
            result = self.wallet.process_refund(customer_email, amount, reason)
            
            return {
                "success": True,
                "transaction_id": result["transaction_id"],
                "amount": amount,
                "message": f"Refund of ${amount:.2f} processed successfully",
                "audit_entry": result["audit_entry"]
            }
        except Exception as e:
            return {
                "success": False,
                "error": str(e)
            }
    
    def get_daily_summary(self) -> Dict:
        """Get daily refund summary"""
        # Calculate today's refunds from audit log
        today = datetime.now().date()
        today_refunds = []
        for e in self.wallet.audit_log:
            try:
                timestamp_str = e["timestamp"].replace("Z", "+00:00")
                entry_date = datetime.fromisoformat(timestamp_str).date()
                if entry_date == today:
                    today_refunds.append(e)
            except (ValueError, AttributeError, KeyError):
                # Skip invalid timestamps
                continue
        daily_refunded = sum(e["amount"] for e in today_refunds)
        
        return {
            "daily_refunded": daily_refunded,
            "daily_limit": DAILY_REFUND_LIMIT,
            "remaining": DAILY_REFUND_LIMIT - daily_refunded,
            "transactions_today": len(today_refunds)
        }
    
    def get_audit_trail(self) -> List[Dict]:
        """Get immutable audit trail"""
        return self.wallet.get_audit_trail()


def main():
    """Main function to run the support agent"""
    print("🚀 Initializing Support Agent with Chimoney Wallet...")
    print(f"💰 Daily Refund Limit: ${DAILY_REFUND_LIMIT}")
    print(f"✅ L4 Assurance: Enabled")
    print(f"📋 Audit Trail: Immutable")
    print()
    
    agent = SupportAgent()
    
    # Example refund requests
    examples = [
        {"email": "customer1@example.com", "amount": 25.00, "reason": "Product defect"},
        {"email": "customer2@example.com", "amount": 50.00, "reason": "Service cancellation"},
        {"email": "customer3@example.com", "amount": 30.00, "reason": "Billing error"},
    ]
    
    print("Processing example refund requests:")
    print("="*50)
    
    for i, refund in enumerate(examples, 1):
        print(f"\n{i}. Processing refund for {refund['email']}...")
        result = agent.process_refund_request(
            refund["email"],
            refund["amount"],
            refund["reason"]
        )
        
        if result["success"]:
            print(f"   ✅ {result['message']}")
            print(f"   📝 Transaction ID: {result['transaction_id']}")
        else:
            print(f"   ❌ {result.get('message', result.get('error', 'Unknown error'))}")
    
    print("\n" + "="*50)
    print("Daily Summary:")
    summary = agent.get_daily_summary()
    print(f"   Refunded: ${summary['daily_refunded']:.2f} / ${summary['daily_limit']:.2f}")
    print(f"   Remaining: ${summary['remaining']:.2f}")
    print(f"   Transactions: {summary['transactions_today']}")
    
    print("\n" + "="*50)
    print("Audit Trail (Last 5 entries):")
    audit_trail = agent.get_audit_trail()
    for entry in audit_trail[-5:]:
        print(f"   [{entry['timestamp']}] ${entry['amount']:.2f} - {entry['reason']} (ID: {entry['transaction_id']})")


if __name__ == "__main__":
    main()



================================================
FILE: ai-passport-and-wallet-examples/data-processing-agent/README.md
================================================
# Data Processing Agent with Chimoney Wallet

A custom Python agent that pays other agents for specialized analysis. Demonstrates agent-to-agent transactions with policy enforcement.

## Features

- ✅ Agent-to-agent payments
- ✅ Built-in transaction limits (enforced by Chimoney API)
- ✅ Policy-controlled transactions with automatic enforcement
- ✅ Specialized analysis delegation
- ✅ Transaction tracking and audit

## Overview

This example demonstrates how to create a data processing agent that can delegate specialized analysis tasks to other agents and pay them using Chimoney's wallet infrastructure. This enables a multi-agent economy where agents can transact with each other.

## Prerequisites

- Python 3.8+
- Chimoney API key ([Get one free at sandbox.chimoney.io](https://sandbox.chimoney.io))

## Installation

```bash
# Clone the repository
git clone https://github.com/Chimoney/chimoney-community-projects.git
cd chimoney-community-projects/ai-passport-and-wallet-examples/data-processing-agent

# Install dependencies
pip install -r requirements.txt

# Set up environment variables
cp .env.example .env
# Edit .env with your API key (CHIMONEY_API_KEY is required)
```

## Environment Variables

Create a `.env` file with the following:

```env
CHIMONEY_API_KEY=your_chimoney_api_key
CHIMONEY_SANDBOX_URL=https://api-v2-sandbox.chimoney.io
AGENT_EMAIL=data-agent@yourdomain.com
AGENT_NAME=Data Processing Agent
```

## Usage

```bash
python data_agent.py
```

## How It Works

1. **Wallet Creation**: Creates AI agent wallets with built-in limits for the main agent ($1000/day, $100/tx) and worker agents ($500/day, $50/tx) using agents/create
2. **Task Delegation**: Delegates specialized analysis tasks to worker agents
3. **Payment Processing**: Pays worker agents for completed tasks - API automatically enforces limits
4. **Automatic Policy Enforcement**: Chimoney API enforces spending policies and transaction limits server-side
5. **Result Aggregation**: Aggregates results from multiple worker agents
6. **No Manual Tracking**: Limits are enforced server-side, no need to manually track spending

## API Endpoints Used

- `POST /v0.2.4/agents/create` - Create AI agent wallets
- `POST /v0.2.4/multicurrency-wallets/transfer` - Transfer funds between agents
- `POST /v0.2.4/payouts/chimoney` - Pay worker agents via email
- `POST /v0.2.4/payouts/interledger-wallet-address` - Pay worker agents via Interledger
- `POST /v0.2.4/accounts/transactions` - Track transactions

## Example Flow

```python
# Main agent needs specialized analysis
task = "Analyze sales data for Q4"

# Delegate to specialized agent
result = agent.delegate_task(
    task=task,
    worker_agent="analytics-agent",
    payment_amount=15.00
)

# Chimoney API checks built-in limits automatically
# Payment approved (under $100 max per tx, under $1000 daily limit)
# Worker agent completes task
# Payment processed automatically
# Results returned to main agent

# If limit exceeded:
# Chimoney API returns error, payment rejected
# Agent receives clear error message
```

## Contributing

Contributions are welcome! Please read the [Contributing Guide](../../CONTRIBUTING.md) first.

## License

MIT License

## Resources

- [Chimoney API Documentation](https://api.chimoney.io/v0.2.4/api-docs)
- [Chimoney API Swagger (Interactive)](https://api-v2-sandbox.chimoney.io/swagger.json)
- [Get Chimoney API Key](https://sandbox.chimoney.io)
- [Chimoney Community Projects](https://github.com/Chimoney/chimoney-community-projects)


================================================
FILE: ai-passport-and-wallet-examples/data-processing-agent/data_agent.py
================================================
"""
Data Processing Agent with Chimoney Wallet Integration

This agent pays other agents for specialized analysis, demonstrating
agent-to-agent transactions with policy enforcement.
"""

import os
import requests
from datetime import datetime
from typing import Dict, List
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

# Configuration
CHIMONEY_API_KEY = os.getenv("CHIMONEY_API_KEY")
CHIMONEY_BASE_URL = os.getenv("CHIMONEY_SANDBOX_URL", "https://api-v2-sandbox.chimoney.io")
AGENT_EMAIL = os.getenv("AGENT_EMAIL", "data-agent@example.com")
AGENT_NAME = os.getenv("AGENT_NAME", "Data Processing Agent")

# Validate required API key
if not CHIMONEY_API_KEY:
    raise ValueError("CHIMONEY_API_KEY environment variable is required. Get your API key at https://sandbox.chimoney.io")


class ChimoneyWallet:
    """Wrapper for Chimoney API operations"""
    
    def __init__(self, api_key: str, base_url: str):
        self.api_key = api_key
        self.base_url = base_url
        self.headers = {
            "accept": "application/json",
            "content-type": "application/json",
            "X-API-KEY": api_key
        }
        self.wallet_id = None
    
    def create_wallet(self, name: str, email: str, daily_limit: float = 1000.0, max_per_tx: float = 100.0) -> Dict:
        """Create an AI agent wallet with built-in limits
        
        Limits are enforced by the Chimoney API automatically:
        - dailyCap: Maximum spending per day (in USD cents)
        - maxPerTx: Maximum per transaction (in USD cents)
        """
        url = f"{self.base_url}/v0.2.4/agents/create"
        payload = {
            "name": name,
            "email": email,
            "limits": {
                "USD": {
                    "maxPerTx": int(max_per_tx * 100),  # Convert to cents
                    "dailyCap": int(daily_limit * 100)  # Convert to cents
                }
            },
            "capabilities": ["finance.payment.payout", "wallet.transfer"]
        }
        
        response = requests.post(url, json=payload, headers=self.headers)
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            # Agent wallet ID is typically in data.data.id or data.data.walletId
            wallet_data = data.get("data", {})
            self.wallet_id = wallet_data.get("id") or wallet_data.get("walletId") or wallet_data.get("subAccount")
            return wallet_data
        raise Exception(f"Failed to create agent wallet: {data}")
    
    def transfer_to_agent(self, destination_wallet_id: str, amount: float, currency: str = "USD", narration: str = "") -> Dict:
        """Transfer funds to another agent's wallet"""
        if not self.wallet_id:
            raise Exception("Source wallet not initialized")
        
        url = f"{self.base_url}/v0.2.4/multicurrency-wallets/transfer"
        payload = {
            "sourceWalletID": self.wallet_id,
            "destinationWalletID": destination_wallet_id,
            "amount": amount,
            "currency": currency,
            "narration": narration or f"Payment for agent service"
        }
        
        response = requests.post(url, json=payload, headers=self.headers)
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            return data["data"]
        raise Exception(f"Transfer failed: {data}")
    
    def pay_agent_via_chimoney(self, amount: float, agent_email: str, task_description: str) -> Dict:
        """Pay an agent via Chimoney payout
        
        Limits are automatically enforced by the Chimoney API.
        If limits are exceeded, the API will return an error.
        """
        url = f"{self.base_url}/v0.2.4/payouts/chimoney"
        payload = {
            "chimoneys": [{
                "email": agent_email,
                "valueInUSD": amount,
                "reason": f"Agent payment: {task_description}"
            }]
        }
        
        # Include subAccount if wallet_id is available
        if self.wallet_id:
            payload["subAccount"] = self.wallet_id
        
        response = requests.post(url, json=payload, headers=self.headers)
        
        # Check for limit violations (API will return 400/403 for limit exceeded)
        if response.status_code in [400, 403]:
            error_data = response.json()
            error_msg = error_data.get("error") or error_data.get("message", "Payment failed")
            raise Exception(f"Transaction limit exceeded: {error_msg}")
        
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            return data.get("data", {})
        raise Exception(f"Payment failed: {data}")
    
    def pay_agent_via_interledger(self, amount: float, interledger_address: str, task_description: str) -> Dict:
        """Pay an agent via Interledger wallet address"""
        url = f"{self.base_url}/v0.2.4/payouts/interledger-wallet-address"
        payload = {
            "payments": [{
                "interledgerWalletAddress": interledger_address,
                "valueInUSD": amount,
                "metadata": {"task": task_description}
            }]
        }
        
        # Include subAccount if wallet_id is available
        if self.wallet_id:
            payload["subAccount"] = self.wallet_id
        
        response = requests.post(url, json=payload, headers=self.headers)
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            return data.get("data", {})
        raise Exception(f"Interledger payment failed: {data}")
    
    def get_transactions(self, limit: int = 10) -> List[Dict]:
        """Get transaction history"""
        if not self.wallet_id:
            return []
        
        url = f"{self.base_url}/v0.2.4/accounts/transactions"
        payload = {
            "subAccount": self.wallet_id,
            "limit": limit,
            "page": 1
        }
        
        response = requests.post(url, json=payload, headers=self.headers)
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            return data.get("data", {}).get("transactions", [])
        return []


class WorkerAgent:
    """Represents a specialized worker agent"""
    
    def __init__(self, name: str, email: str, specialization: str, wallet: ChimoneyWallet):
        self.name = name
        self.email = email
        self.specialization = specialization
        self.wallet = wallet
        self.wallet_id = None
    
    def initialize(self):
        """Initialize the worker agent's wallet with built-in limits"""
        wallet_data = self.wallet.create_wallet(
            self.name, 
            self.email,
            daily_limit=500.0,  # $500 daily limit for worker agents
            max_per_tx=50.0  # $50 max per transaction
        )
        self.wallet_id = wallet_data.get("id")
        return wallet_data
    
    def process_task(self, task: str) -> Dict:
        """Process a specialized task"""
        # In production, this would perform actual analysis
        return {
            "agent": self.name,
            "specialization": self.specialization,
            "task": task,
            "result": f"Analysis completed by {self.name} specializing in {self.specialization}",
            "timestamp": datetime.now().isoformat()
        }


class DataProcessingAgent:
    """Main data processing agent that delegates to worker agents"""
    
    def __init__(self):
        self.wallet = ChimoneyWallet(CHIMONEY_API_KEY, CHIMONEY_BASE_URL)
        self.initialize_wallet()
        self.worker_agents = {}
        self.transaction_log = []
    
    def initialize_wallet(self):
        """Initialize the main agent's wallet with built-in limits"""
        try:
            wallet_data = self.wallet.create_wallet(
                AGENT_NAME, 
                AGENT_EMAIL,
                daily_limit=1000.0,  # $1000 daily limit
                max_per_tx=100.0  # $100 max per transaction
            )
            print(f"✅ Main agent wallet created: {wallet_data.get('id')}")
            print(f"   Daily limit: $1000 (enforced by API)")
            print(f"   Max per transaction: $100 (enforced by API)")
        except Exception as e:
            print(f"⚠️  Wallet initialization error: {e}")
    
    def register_worker_agent(self, name: str, email: str, specialization: str):
        """Register a worker agent"""
        worker_wallet = ChimoneyWallet(CHIMONEY_API_KEY, CHIMONEY_BASE_URL)
        worker = WorkerAgent(name, email, specialization, worker_wallet)
        worker.initialize()
        self.worker_agents[name] = worker
        print(f"✅ Worker agent registered: {name} ({specialization})")
        return worker
    
    def delegate_task(self, task: str, worker_agent_name: str, payment_amount: float) -> Dict:
        """Delegate a task to a worker agent and pay them"""
        if worker_agent_name not in self.worker_agents:
            raise Exception(f"Worker agent '{worker_agent_name}' not found")
        
        worker = self.worker_agents[worker_agent_name]
        
        # Process the task
        result = worker.process_task(task)
        
        # Pay the worker agent
        try:
            payment_result = self.wallet.pay_agent_via_chimoney(
                payment_amount,
                worker.email,
                task
            )
            # Extract issueID from response
            chimoneys = payment_result.get("chimoneys", [])
            transaction_id = chimoneys[0].get("issueID", "unknown") if chimoneys else payment_result.get("issueID", "unknown")
            
            # Log the transaction
            transaction_log_entry = {
                "timestamp": datetime.now().isoformat(),
                "worker_agent": worker_agent_name,
                "task": task,
                "payment_amount": payment_amount,
                "transaction_id": transaction_id,
                "result": result
            }
            self.transaction_log.append(transaction_log_entry)
            
            return {
                "success": True,
                "result": result,
                "payment": {
                    "amount": payment_amount,
                    "transaction_id": transaction_id
                },
                "transaction_log": transaction_log_entry
            }
        except Exception as e:
            return {
                "success": False,
                "result": result,
                "error": str(e)
            }
    
    def get_transaction_history(self) -> List[Dict]:
        """Get transaction history"""
        return self.transaction_log.copy()


def main():
    """Main function to demonstrate agent-to-agent transactions"""
    print("🚀 Initializing Data Processing Agent...")
    print()
    
    agent = DataProcessingAgent()
    
    # Register worker agents
    print("Registering worker agents:")
    print("="*50)
    agent.register_worker_agent(
        "analytics-agent",
        "analytics@example.com",
        "Data Analytics"
    )
    agent.register_worker_agent(
        "ml-agent",
        "ml@example.com",
        "Machine Learning"
    )
    agent.register_worker_agent(
        "stats-agent",
        "stats@example.com",
        "Statistical Analysis"
    )
    
    print("\n" + "="*50)
    print("Delegating tasks to worker agents:")
    print("="*50)
    
    # Delegate tasks
    tasks = [
        {
            "task": "Analyze sales data for Q4 2024",
            "worker": "analytics-agent",
            "payment": 20.00
        },
        {
            "task": "Build predictive model for customer churn",
            "worker": "ml-agent",
            "payment": 35.00
        },
        {
            "task": "Perform statistical significance testing",
            "worker": "stats-agent",
            "payment": 15.00
        }
    ]
    
    for i, task_info in enumerate(tasks, 1):
        print(f"\n{i}. Task: {task_info['task']}")
        print(f"   Worker: {task_info['worker']}")
        print(f"   Payment: ${task_info['payment']:.2f}")
        
        result = agent.delegate_task(
            task_info["task"],
            task_info["worker"],
            task_info["payment"]
        )
        
        if result["success"]:
            print(f"   ✅ Task completed")
            print(f"   💰 Payment processed: ${result['payment']['amount']:.2f}")
            print(f"   📝 Transaction ID: {result['payment']['transaction_id']}")
        else:
            print(f"   ❌ Error: {result.get('error', 'Unknown error')}")
    
    print("\n" + "="*50)
    print("Transaction History:")
    print("="*50)
    history = agent.get_transaction_history()
    for entry in history:
        print(f"\n[{entry['timestamp']}]")
        print(f"  Worker: {entry['worker_agent']}")
        print(f"  Task: {entry['task']}")
        print(f"  Payment: ${entry['payment_amount']:.2f}")
        print(f"  Transaction ID: {entry['transaction_id']}")


if __name__ == "__main__":
    main()



================================================
FILE: ai-passport-and-wallet-examples/data-processing-agent/requirements.txt
================================================
python-dotenv>=1.0.0
requests>=2.31.0
pydantic>=2.0.0



================================================
FILE: ai-passport-and-wallet-examples/langchain-research-agent/README.md
================================================
# LangChain Research Agent with Chimoney Wallet

A LangChain agent that autonomously pays for API access to data sources (weather, stock prices, news) with spending limits and transaction approval controls.

## Features

- ✅ Autonomous API payments for data sources
- ✅ Built-in daily spending limit: $50/day (enforced by Chimoney API)
- ✅ Built-in max per transaction: $10 (enforced by Chimoney API)
- ✅ Policy-controlled wallet with automatic limit enforcement
- ✅ Full audit trail for compliance

## Overview

This example demonstrates how to integrate Chimoney's AI agent wallet infrastructure with LangChain to create a research agent that can autonomously pay for API access while maintaining spending controls and compliance.

## Prerequisites

- Python 3.8+
- Chimoney API key ([Get one free at sandbox.chimoney.io](https://sandbox.chimoney.io))
- LangChain installed
- OpenAI API key (or other LLM provider compatible with LangChain)

## Installation

```bash
# Clone the repository
git clone https://github.com/Chimoney/chimoney-community-projects.git
cd chimoney-community-projects/ai-passport-and-wallet-examples/langchain-research-agent

# Install dependencies
pip install -r requirements.txt

# Set up environment variables
cp .env.example .env
# Edit .env with your API keys (CHIMONEY_API_KEY and OPENAI_API_KEY are required)
```

## Environment Variables

Create a `.env` file with the following:

```env
CHIMONEY_API_KEY=your_chimoney_api_key
CHIMONEY_SANDBOX_URL=https://api-v2-sandbox.chimoney.io
OPENAI_API_KEY=your_openai_api_key
AGENT_EMAIL=research-agent@yourdomain.com
AGENT_NAME=Research Agent
DAILY_LIMIT=50
APPROVAL_THRESHOLD=10
```

## Usage

```bash
python research_agent.py
```

## How It Works

1. **Wallet Creation**: Creates an AI agent wallet with built-in limits using the agents/create endpoint
2. **Automatic Limit Enforcement**: Chimoney API automatically enforces daily spending limits ($50/day) and max per transaction ($10)
3. **API Integration**: Integrates with data APIs (weather, stocks, news)
4. **Payment Processing**: Automatically pays for API access - API rejects transactions exceeding limits
5. **No Manual Tracking**: Limits are enforced server-side, no need to manually track spending

## API Endpoints Used

- `POST /v0.2.4/agents/create` - Create AI agent wallet
- `POST /v0.2.4/accounts/issue-wallet-address` - Issue payment pointer
- `POST /v0.2.4/payouts/chimoney` - Send payments for API access
- `POST /v0.2.4/accounts/transactions` - Check transaction history

## Example Flow

```python
# Agent needs weather data
agent.query("What's the weather in New York?")

# Payment attempt: $5
# Chimoney API checks built-in limits automatically
# Transaction approved (under $10 max per tx, under $50 daily limit)
# API call made, data returned

# If limit exceeded:
# Chimoney API returns error, transaction rejected
# Agent receives clear error message
```

## Contributing

Contributions are welcome! Please read the [Contributing Guide](../../CONTRIBUTING.md) first.

## License

MIT License

## Resources

- [Chimoney API Documentation](https://api.chimoney.io/v0.2.4/api-docs)
- [Chimoney API Swagger (Interactive)](https://api-v2-sandbox.chimoney.io/swagger.json)
- [Get Chimoney API Key](https://sandbox.chimoney.io)
- [LangChain Documentation](https://python.langchain.com/)
- [Chimoney Community Projects](https://github.com/Chimoney/chimoney-community-projects)


================================================
FILE: ai-passport-and-wallet-examples/langchain-research-agent/requirements.txt
================================================
langchain>=0.1.0
langchain-openai>=0.0.5
openai>=1.0.0
python-dotenv>=1.0.0
requests>=2.31.0
pydantic>=2.0.0



================================================
FILE: ai-passport-and-wallet-examples/langchain-research-agent/research_agent.py
================================================
"""
LangChain Research Agent with Chimoney Wallet Integration

This agent autonomously pays for API access to data sources (weather, stock prices, news)
with spending limits and transaction approval controls.
"""

import os
import requests
from datetime import datetime
from typing import Dict, List
from dotenv import load_dotenv
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain.tools import Tool

# Load environment variables
load_dotenv()

# Configuration
CHIMONEY_API_KEY = os.getenv("CHIMONEY_API_KEY")
CHIMONEY_BASE_URL = os.getenv("CHIMONEY_SANDBOX_URL", "https://api-v2-sandbox.chimoney.io")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
AGENT_EMAIL = os.getenv("AGENT_EMAIL", "research-agent@example.com")
AGENT_NAME = os.getenv("AGENT_NAME", "Research Agent")
DAILY_LIMIT = float(os.getenv("DAILY_LIMIT", "50"))
APPROVAL_THRESHOLD = float(os.getenv("APPROVAL_THRESHOLD", "10"))

# Validate required API keys
if not CHIMONEY_API_KEY:
    raise ValueError("CHIMONEY_API_KEY environment variable is required. Get your API key at https://sandbox.chimoney.io")
if not OPENAI_API_KEY:
    raise ValueError("OPENAI_API_KEY environment variable is required")


class ChimoneyWallet:
    """Wrapper for Chimoney API operations"""
    
    def __init__(self, api_key: str, base_url: str):
        self.api_key = api_key
        self.base_url = base_url
        self.headers = {
            "accept": "application/json",
            "content-type": "application/json",
            "X-API-KEY": api_key
        }
        self.wallet_id = None
    
    def create_wallet(self, name: str, email: str, daily_limit: float = 50.0, approval_threshold: float = 10.0) -> Dict:
        """Create an AI agent wallet with built-in limits
        
        Limits are enforced by the Chimoney API automatically:
        - dailyCap: Maximum spending per day (in USD cents)
        - maxPerTx: Maximum per transaction (in USD cents)
        - approvalRequired: Whether transactions require manual approval
        """
        url = f"{self.base_url}/v0.2.4/agents/create"
        payload = {
            "name": name,
            "email": email,
            "limits": {
                "USD": {
                    "maxPerTx": int(approval_threshold * 100),  # Convert to cents
                    "dailyCap": int(daily_limit * 100)  # Convert to cents
                },
                "approvalRequired": False  # Auto-approve transactions within limits
            },
            "capabilities": ["finance.payment.payout"]
        }
        
        response = requests.post(url, json=payload, headers=self.headers)
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            # Agent wallet ID is typically in data.data.id or data.data.walletId
            wallet_data = data.get("data", {})
            self.wallet_id = wallet_data.get("id") or wallet_data.get("walletId") or wallet_data.get("subAccount")
            return wallet_data
        raise Exception(f"Failed to create agent wallet: {data}")
    
    def issue_payment_pointer(self, user_id: str, ilp_username: str) -> Dict:
        """Issue an Interledger payment pointer for the wallet"""
        url = f"{self.base_url}/v0.2.4/accounts/issue-wallet-address"
        payload = {
            "userID": user_id,
            "ilpUsername": ilp_username
        }
        
        response = requests.post(url, json=payload, headers=self.headers)
        response.raise_for_status()
        return response.json()
    
    def pay_for_api_access(self, amount: float, api_name: str, recipient_email: str) -> Dict:
        """Pay for API access using Chimoney payout
        
        Limits are automatically enforced by the Chimoney API.
        If limits are exceeded, the API will return an error.
        """
        url = f"{self.base_url}/v0.2.4/payouts/chimoney"
        payload = {
            "chimoneys": [{
                "email": recipient_email,
                "valueInUSD": amount,
                "reason": f"API access payment: {api_name}"
            }]
        }
        
        # Include subAccount if wallet_id is available
        if self.wallet_id:
            payload["subAccount"] = self.wallet_id
        
        response = requests.post(url, json=payload, headers=self.headers)
        
        # Check for limit violations (API will return 400/403 for limit exceeded)
        if response.status_code in [400, 403]:
            error_data = response.json()
            error_msg = error_data.get("error") or error_data.get("message", "Payment failed")
            raise Exception(f"Transaction limit exceeded: {error_msg}")
        
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            return data.get("data", {})
        
        raise Exception(f"Payment failed: {data}")
    
    def get_transaction_history(self, limit: int = 10) -> List[Dict]:
        """Get transaction history for the wallet"""
        if not self.wallet_id:
            return []
        
        url = f"{self.base_url}/v0.2.4/accounts/transactions"
        payload = {
            "subAccount": self.wallet_id,
            "limit": limit,
            "page": 1
        }
        
        response = requests.post(url, json=payload, headers=self.headers)
        response.raise_for_status()
        data = response.json()
        
        if data.get("status") == "success":
            return data.get("data", {}).get("transactions", [])
        return []


class ResearchAgent:
    """LangChain agent with Chimoney wallet integration"""
    
    def __init__(self):
        self.wallet = ChimoneyWallet(CHIMONEY_API_KEY, CHIMONEY_BASE_URL)
        self.initialize_wallet()
        self.llm = ChatOpenAI(model="gpt-4", temperature=0, api_key=OPENAI_API_KEY)
        self.tools = self._create_tools()
        self.agent = self._create_agent()
    
    def initialize_wallet(self):
        """Initialize the agent's wallet with built-in limits"""
        try:
            wallet_data = self.wallet.create_wallet(
                AGENT_NAME, 
                AGENT_EMAIL,
                daily_limit=DAILY_LIMIT,
                approval_threshold=APPROVAL_THRESHOLD
            )
            print(f"✅ Wallet created: {wallet_data.get('id')}")
            print(f"   Daily limit: ${DAILY_LIMIT} (enforced by API)")
            print(f"   Max per transaction: ${APPROVAL_THRESHOLD} (enforced by API)")
            
            # Issue payment pointer
            if wallet_data.get("id"):
                pointer_data = self.wallet.issue_payment_pointer(
                    wallet_data["id"],
                    "research-agent"
                )
                print(f"✅ Payment pointer issued: {pointer_data}")
        except Exception as e:
            print(f"⚠️  Wallet initialization error: {e}")
            print("Continuing with limited functionality...")
    
    def _create_tools(self) -> List[Tool]:
        """Create tools for the agent"""
        
        def get_weather_data(query: str) -> str:
            """Get weather data. Costs $5 per query."""
            try:
                amount = 5.0
                self.wallet.pay_for_api_access(amount, "Weather API", "weather-api@example.com")
                # In production, make actual API call here
                return f"Weather data for {query}: Sunny, 72°F (Paid ${amount} for API access)"
            except Exception as e:
                return f"Error accessing weather API: {str(e)}"
        
        def get_stock_price(symbol: str) -> str:
            """Get stock price data. Costs $8 per query."""
            try:
                amount = 8.0
                self.wallet.pay_for_api_access(amount, "Stock API", "stock-api@example.com")
                # In production, make actual API call here
                return f"Stock price for {symbol}: $150.25 (Paid ${amount} for API access)"
            except Exception as e:
                return f"Error accessing stock API: {str(e)}"
        
        def get_news(query: str) -> str:
            """Get news data. Costs $3 per query."""
            try:
                amount = 3.0
                self.wallet.pay_for_api_access(amount, "News API", "news-api@example.com")
                # In production, make actual API call here
                return f"News for {query}: Latest headlines... (Paid ${amount} for API access)"
            except Exception as e:
                return f"Error accessing news API: {str(e)}"
        
        def check_spending() -> str:
            """Check current daily spending and remaining budget."""
            # Get transaction history to calculate current spending
            transactions = self.wallet.get_transaction_history(limit=100)
            today = datetime.now().date()
            today_spent = 0.0
            for t in transactions:
                if t.get("issueDate"):
                    try:
                        # Handle different date formats
                        issue_date_str = t["issueDate"].replace("Z", "+00:00")
                        issue_date = datetime.fromisoformat(issue_date_str).date()
                        if issue_date == today:
                            today_spent += float(t.get("valueInUSD", 0))
                    except (ValueError, AttributeError):
                        # Skip invalid date formats
                        continue
            remaining = DAILY_LIMIT - today_spent
            return f"Daily spending: ${today_spent:.2f} / ${DAILY_LIMIT:.2f}. Remaining: ${remaining:.2f}"
        
        return [
            Tool(
                name="get_weather",
                func=get_weather_data,
                description="Get weather information for a location. Costs $5 per query."
            ),
            Tool(
                name="get_stock_price",
                func=get_stock_price,
                description="Get current stock price for a symbol. Costs $8 per query."
            ),
            Tool(
                name="get_news",
                func=get_news,
                description="Get news articles for a topic. Costs $3 per query."
            ),
            Tool(
                name="check_spending",
                func=check_spending,
                description="Check current daily spending and remaining budget."
            )
        ]
    
    def _create_agent(self) -> AgentExecutor:
        """Create the LangChain agent"""
        prompt = ChatPromptTemplate.from_messages([
            ("system", """You are a research agent with access to paid data APIs.
You have a daily spending limit of ${daily_limit} and max per transaction of ${approval_threshold}.
These limits are automatically enforced by the Chimoney API - transactions exceeding limits will be rejected.
Always check spending before making expensive queries.""".format(
                daily_limit=DAILY_LIMIT,
                approval_threshold=APPROVAL_THRESHOLD
            )),
            ("user", "{input}"),
            MessagesPlaceholder(variable_name="agent_scratchpad"),
        ])
        
        agent = create_openai_tools_agent(self.llm, self.tools, prompt)
        return AgentExecutor(agent=agent, tools=self.tools, verbose=True)
    
    def query(self, question: str) -> str:
        """Query the agent"""
        try:
            result = self.agent.invoke({"input": question})
            return result.get("output", "No response generated")
        except Exception as e:
            return f"Error: {str(e)}"


def main():
    """Main function to run the research agent"""
    print("🚀 Initializing Research Agent with Chimoney Wallet...")
    print(f"📊 Daily Limit: ${DAILY_LIMIT}")
    print(f"✅ Auto-approval threshold: ${APPROVAL_THRESHOLD}")
    print()
    
    agent = ResearchAgent()
    
    # Example queries
    examples = [
        "What's the weather in New York?",
        "What's the current price of AAPL stock?",
        "Get me the latest news about AI",
        "Check my spending",
    ]
    
    print("Example queries:")
    for i, query in enumerate(examples, 1):
        print(f"{i}. {query}")
    
    print("\n" + "="*50)
    print("Agent is ready! Try asking questions.")
    print("="*50 + "\n")
    
    # Interactive mode
    while True:
        try:
            question = input("You: ")
            if question.lower() in ['exit', 'quit', 'q']:
                break
            
            response = agent.query(question)
            print(f"Agent: {response}\n")
        except KeyboardInterrupt:
            print("\n👋 Goodbye!")
            break
        except Exception as e:
            print(f"❌ Error: {e}\n")


if __name__ == "__main__":
    main()



================================================
FILE: submissions/.gitkeep
================================================


================================================
FILE: submissions/Articles/Contributing-to-Chimoney-Hacktoberfest.md
================================================
# Contributing to Chimoney Projects: A Hacktoberfest 2024 Guide

## 1. Introduction to Hacktoberfest and Chimoney

### What is Hacktoberfest?

Hacktoberfest is an annual event that celebrates open source software and encourages meaningful contributions to open source projects. It's sponsored by DigitalOcean and runs throughout the month of October. Participants who successfully complete the challenge by making 4 valid pull requests to open source repositories are eligible for exciting rewards and recognition.

### Overview of Chimoney's Platform and API

Chimoney is a global payouts and infrastructure provider offering an API that businesses, startups, and communities can integrate to handle bulk payouts, rewards, or disbursements in multiple currencies. Chimoney enables users to send money, gift cards, airtime, and other digital assets to recipients worldwide, making it easier for organizations of all sizes, especially those with distributed teams or diverse communities, to manage payments efficiently.

#### Key features of Chimoney include:

- **Bulk payouts**: Organizations can send payments to multiple recipients at once, with recipients able to redeem in their local currencies, saving time and effort.
- **Multi-currency support**: Chimoney supports a range of currencies, including USD, CAD, and NGN, for global transactions.
- **Payment requests**: Chimoney simplifies the process of requesting and receiving payments, making it easier for users to get paid.
- **API integration**: Developers can integrate Chimoney’s API into their systems, automating payment processes and scaling effortlessly.

### Why Open-Source Contributions Matter to Chimoney

Open-source contributions are vital to Chimoney's growth and innovation. By engaging with the developer community, Chimoney can:

- Improve its platform and API based on real-world use cases and feedback
- Foster innovation through collaboration with developers worldwide
- Build a strong, supportive community around its products
- Enhance documentation and examples, making it easier for new developers to adopt Chimoney's solutions

## 2. Step-by-Step Contribution Guide

### Requirements for Contributing

Before you start contributing, make sure you have:

- A GitHub account
- Git installed on your local machine
- Node.js and npm (for running JavaScript projects)
- Basic knowledge of JavaScript, React, or relevant technologies used in Chimoney's projects

### How to Set Up the Project Locally

#### Cloning the Repository

1. Fork the Chimoney repository you want to contribute to by clicking the "Fork" button on GitHub.

![Fork Repo](../../images/fork_a_repo.png)

2. Clone your forked repository to your local machine:

![Clone Repo](../../images/clone_repo.png)

```bash
git clone https://github.com/your-username/repository-name.git
cd repository-name
```

![Cd Repo](../../images/cd_repo.png)

#### Running the Project Locally

1. Install the project dependencies:

```bash
npm install
```

2. Set up any necessary environment variables (refer to the project's README for specific instructions).

3. Start the development server:

```bash
npm run dev
```

## 3. Making Your First Contribution

### How to Choose an Issue

1. Browse the issues in the Chimoney repository you're interested in.
2. Look for issues labeled `good first issue` or `help wanted` for beginner-friendly tasks.
3. Read through the issue description and comments to understand the requirements.

### Being Assigned an Issue

1. Comment on the issue expressing your interest in working on it.
2. Wait for a maintainer to assign the issue to you.

### Contributing Code or Documentation

1. Create a new branch for your contribution:

```bash
git checkout -b feature/your-feature-name
```

2. Make your changes, following the project's coding style and guidelines.
3. Test your changes thoroughly.
4. Commit your changes with a meaningful commit message:

```bash
git commit -m "Add feature: Brief description of your changes"
```

### How to Create and Submit a Pull Request (PR)

1. Push your changes to your forked repository:

```bash
git push origin feature/your-feature-name
```

2. Go to the original Chimoney repository on GitHub and click "New pull request".
3. Choose your fork and the branch containing your changes.
4. Fill out the PR template, providing a clear description of your changes.
5. Submit the pull request for review.

### Best Practices for Clean and Maintainable Code

- Follow the project's coding style and conventions.
- Write clear, concise comments and documentation.
- Keep your changes focused and avoid unrelated modifications.
- Write unit tests for new features or bug fixes when applicable.

## 4. Opportunities for Contribution

### Areas Where Chimoney Needs Contributions

- Bug fixes and performance improvements
- New features aligned with Chimoney's roadmap
- Documentation improvements and translations
- Integration examples and SDKs in various programming languages

### Creating Technical Articles or Guides

Consider writing technical articles or guides about:

- Integrating Chimoney's API into different types of applications
- Best practices for using Chimoney in specific use cases
- Tutorials on using Chimoney's features effectively

## 5. Contribution Guidelines

### Overview of Chimoney's Contribution Guidelines

- Always create an issue before submitting a pull request for new features.
- Follow the code of conduct and maintain a respectful, inclusive environment.
- Keep pull requests focused on a single issue or feature.

### How to Write Meaningful Commit Messages

- Use the imperative mood (e.g., "Add feature" instead of "Added feature")
- Keep the first line short (50 characters or less) and descriptive
- Use the body of the commit message to explain the "why" behind the changes

# Code of Conduct

Review Chimoney Community's Code of conduct [here](https://github.com/Chimoney/chimoney-community-projects/blob/main/CODE_OF_CONDUCT.md)

## 6. Benefits of Contributing

### What Contributors Gain from Hacktoberfest

- Practical experience working on real-world projects
- Networking opportunities within the open-source community
- Hacktoberfest swag (t-shirts, stickers) for qualifying participants
- Personal growth and learning new technologies

### How Contributions Impact Chimoney's Platform and Mission

Your contributions help Chimoney:

- Improve its products and services
- Reach a wider audience of developers and businesses
- Accelerate innovation in global payment solutions
- Create a more robust and reliable platform for users worldwide

## 7. Next Steps After Contribution

### Staying Involved in the Chimoney Community

- Join Chimoney's developer community on [Discord](https://discord.gg/TsyKnzT4qV)
- Attend Chimoney's events [here](https://lu.ma/Chimoney) to connect with its global community and be updated on the community initiatives.

### Opportunities for Continuous Contributions

- Consider becoming a regular contributor 
- Mentor new contributors and help them get started
- Propose and lead new initiatives or features within the Chimoney ecosystem

By contributing to Chimoney's open-source projects, you're not just improving your skills and building your portfolio—you're also making a tangible impact on global financial inclusivity and innovation. We look forward to your contributions and can't wait to see what we can achieve together during Hacktoberfest 2024 and beyond!

## About the Author
### Daniel Oladepo
Daniel Oladepo is a passionate backend developer and software engineer with a strong foundation in mechanical engineering. With a keen interest in web technologies and server-side development, Daniel has contributed to various projects, from creating reusable templates to developing full-fledged messaging systems. His diverse skill set spans multiple programming languages and frameworks, making him a versatile developer capable of tackling complex challenges. Daniel's experience in both academic and professional settings demonstrates his commitment to continuous learning and innovation in the field of software development.


================================================
FILE: submissions/Articles/Flexible-payout-solutions.md
================================================
![Payment Infrastructure and API](https://cdn.hashnode.com/res/hashnode/image/upload/v1727998479498/066fadba-9d43-48e5-8355-e15354cec4da.png?w=1600&h=840&fit=crop&crop=entropy&auto=compress,format&format=webp)

# Why Flexible Payout Solutions Matter for Marketplace and Gig Economies

There has been a continuous shift in how employers connect with the workforce and the demand for gig workers has continued to grow since the [COVID-19](https://www.forbes.com/sites/rebeccahenderson/2020/12/10/how-covid-19-has-transformed-the-gig-economy/) pandemic. [Data from the World Bank shows that gig economy accounts for up to 12% of labor force globally](https://www.worldbank.org/en/news/press-release/2023/09/07/demand-for-online-gig-work-rapidly-rising-in-developing-countries). However, finding a payment service that enables gig workers to receive payment on their terms has become a recurring challenge.

Challenges such as differences in currencies and payment systems between freelancers and employers that cause payout delays and other bottlenecks are factors why freelancers and platform owners should adopt Flexible Payout Solutions that facilitate faster payment in freelancers' preferred currencies.

## What are Flexible Payout Solutions?

Flexible payment solutions provide tailored payment systems that allow gig workers to receive money in their preferred currencies and on any payment options they choose. Simply put, it supports quick and seamless payment to workers across various countries through cryptocurrencies, bank transfers or mobile wallets, removing payment barriers like currency differences. An example of a flexible payment solution is [Chimoney’s API](https://chimoney.readme.io/reference/getting-started-with-your-api).

### The Importance of Flexible Payout Solutions

Flexible payout solutions provide a fast and real-time payout that benefits actors in the gig economy and online marketplace. It is vital to see why this solution has become a go-to option for payment. Here are factors why flexible payout solutions is a better option for handling diverse payments across countries and currencies.

**User Convenience and Satisfaction:** Offering flexible payment options such as bank transfers, digital wallets, and mobile money payment provides gig workers the flexibility to choose among the more convenient options, thereby boosting user experience.

**Seamless Currency Conversion:** By making it possible for multiple currencies to be available locally for easy conversion, flexible payout solutions enable gig workers to experience stress-free international transactions, thereby removing the challenges of local currency conversion and additional transaction fees.

**Global Reach and Inclusivity:** Flexible payout solutions handle diverse payments in user terms, allowing workers or sellers globally to receive payment in their local currencies. It also supports payments through local methods to meet the needs of global users.

**Faster Payments:** Since the gig economy operates remotely without physical contact, delay in payment could affect trust. Flexible payment solutions offer a quicker transfer like instant wallet transfers, helping gig workers to receive payment as at when due.

## Overview of Marketplace and Gig Economies

A marketplace is an online platform that connects third-party sellers and buyers and helps facilitate buying and selling. It's an intermediary that helps buyers find sellers who advertise their products and services. A marketplace provides the platform for a gig economy to thrive by easily connecting gig employers to gig workers. You may be wondering what the gig economy means. Simply put, the gig economy is temporary work that provides a short-term position to freelancers who work independently. The gig economy guarantees flexibility as the workers can work remotely without being confined in a space.

### Actors Driving Marketplace and Gig Economies

The two key actors that drive the marketplace and gig economies are the employer and the gig worker. They complement each other by offering value in reward and services. Here are the two key actors:

**The Gig Employer:**
An employer in a marketplace and gig economy refers to a person or business that offers employment to a gig worker for a service or product and rewards the worker for their service.

**The Gig Worker:**
Gig workers offer extensive services or products to an employer on a temporal or contract basis to get a monetary reward at the end of their task.

### Challenges Faced by Gig Economy Workers and Marketplace Sellers
The gig economy workers and marketplace sellers often experience underlying challenges that affect revenue generation and overall user experience.

Here are some of the challenges they face:

- Currency Disparities: A huge concern for gig economy workers and marketplace sellers is how they could convert the currencies they receive to their local currencies without incurring extra charges. The exchange rate changes during conversion, and the additional charges could affect earnings.

- Delayed Payments: Delay in payment is a common experience for gig economy workers and marketplace sellers. This delay in cross-border transactions is frustrating for users and could affect trust.

- Limited Payment Methods: Workers in the gig economy cut across various countries with unique means of receiving payment. Many platforms only have limited payout options, which may not be accessible to users.

- Lack of Transparency: There are incidents where workers and sellers lose a large chunk of their earnings due to hidden fees during payout. Some platforms also fail to handle chargebacks and refunds efficiently.

## How Chimoney’s API Addresses These Issues

Chimoney’s API enables flexibility in payment structure and offers a wide variety of services to over 100 countries on a single Platform and API. Here is how Chimoney’s API addresses challenges faced by gig economy workers and marketplace sellers.

- Multiple Currencies Options: Once you sign up with [Chimoney’s API](https://chimoney.readme.io/reference/getting-started-with-your-api), you can integrate multiple currency payout options, including gift cards and cryptocurrencies. The [API](https://chimoney.readme.io/reference/getting-started-with-your-api) endpoints allow you to initiate a transaction from a Chimney wallet to a recipient's preferred local currency.

- Multiple Payout Methods: [Chimoney](https://chimoney.io/) provides multiple payout options, such as [Payout Chimoney, Payout Mobile Money, Payout Bank, Payout Giftcard](https://chimoney.readme.io/reference/getting-started-with-your-api#payout-mobile-money) and more. By integrating [Chimoney’s API](https://chimoney.readme.io/reference/getting-started-with-your-api), developers or platform owners can initiate transactions from its multi-currency wallet to a receiver payment option.

- Cross-border Payouts: [Chimoney’s API](https://chimoney.readme.io/reference/getting-started-with-your-api) eliminates cross-border payment complexities by providing seamless payment solutions, multi-currency, and allowing payment across various countries. It supports local compliance with regulators and helps platform owners achieve global reach.

- Secured and Transparency: Every transaction carried out when using [Chimoney’s API](https://chimoney.readme.io/reference/getting-started-with-your-api) is fast and secure. The payment process is simple and detailed, with transactions done swiftly, empowering users to control their cash flow and payment history. There are no hidden fees during the transaction.

- Ease of integration: [Chimoney’s API](https://chimoney.readme.io/reference/getting-started-with-your-api) offers a flexible API that developers can easily integrate with, launch and scale payment solutions. It also provides robust services that can integrate into any marketplace platform irrespective of the tech stack.

## Conclusion

Chimoney’s API provides wholesome and seamless cross-border payout solutions. It guarantees instant, secured and simplified payment options for workers in over 100 countries. Whether you are a [developer](https://dash.chimoney.io/auth/signin?next=/developers), a platform owner, or a gig worker, with [Chimoney’s API](https://chimoney.readme.io/reference/getting-started-with-your-api), your payout and disbursement needs are well covered. [Get started now](https://chimoney.readme.io/reference/getting-started-with-your-api).


## About the Author

**Chukwuemeka Abuba**
A technical writer and frontend developer specializing in TypeScript and Next.js. Passionate about crafting clear documentation, building user-centric interfaces, and sharing knowledge with the developer community.


================================================
FILE: submissions/Articles/GlobalPayoutGuide.md
================================================
# How to Choose the Right API for Global Payouts: A Developer's Guide

As businesses expand globally, developers must choose the right payout API to facilitate secure, seamless, and scalable financial operations. Whether you're sending payments to international employees, rewarding users with gift cards, or transferring funds via mobile money, the right API can make the difference between a smooth or painful experience. This guide will help you navigate the key factors when selecting a global payout API, compare leading solutions, and spotlight **Chimoney's API** as a standout option.

## Key Factors to Consider When Choosing a Payout API

When evaluating a payout API, developers should focus on several essential factors to ensure the best fit for their business needs:

### 1. **Security**
Security is the backbone of any financial transaction system, and handling global payouts is no exception. Look for APIs that adhere to industry-standard security protocols, such as encryption, secure tokenization, and multi-factor authentication (MFA). These practices ensure that sensitive data, like personal information and financial details, are protected against breaches.

### 2. **Ease of Integration**
An API's usability can make or break a developer's experience. A well-documented API with simple, intuitive endpoints and easy-to-follow examples will save time and reduce the chances of errors. Tools such as SDKs, libraries, and clear onboarding documentation enhance the integration process, allowing developers to get up and running quickly.

### 3. **Global and Multi-Currency Support**
Global payout systems must cater to various regions and currencies. Consider whether the API supports multiple currencies, international payment methods (e.g., bank transfers, mobile money, gift cards), and can handle different compliance requirements for countries worldwide. The more expansive the reach, the better suited the API will be for businesses with global operations.

### 4. **Scalability**
Your payout needs today may not be the same a year from now. An API that scales with your business, supporting high transaction volumes without performance degradation, is crucial for growing companies.

### 5. **Flexibility**
The flexibility of an API is often measured by the variety of payout methods it supports, and whether it allows for customization. An ideal API would let businesses send payouts via multiple channels like bank transfers, mobile money, airtime, or gift cards, giving users flexibility in receiving payments.

### 6. **Cost-Effectiveness**
Look for APIs with transparent pricing structures that align with your budget. It's important to account for transaction fees, currency conversion costs, and any hidden charges that may apply. Ensure that the payout API offers a cost-effective solution for your business's needs.

---

## Comparing Chimoney’s API to Other Global Payout Solutions

### **Chimoney API**

Chimoney provides a comprehensive global payout API that offers unmatched flexibility for developers and businesses. It allows companies to send various types of payouts, including mobile money, bank transfers, airtime, and gift cards, across more than 130 countries. 

- **Ease of Integration:** Chimoney offers well-documented endpoints and example use cases to simplify integration. Developers can quickly get started with Chimoney’s API and scale their solution as needed.
- **Security:** Chimoney's API is designed with stringent security measures, ensuring secure transactions with encryption and compliance with global payment standards.
- **Global Support:** Chimoney excels in global coverage, supporting multiple payment methods across more than 130 countries, making it a versatile solution for businesses operating internationally.
- **Scalability:** Chimoney is built to handle high transaction volumes, making it a reliable option for businesses that anticipate significant growth.
- **Flexibility:** From bank transfers to mobile money and airtime rewards, Chimoney offers diverse payout options, ensuring that users can receive payments in their preferred method.

### **Other Global Payout Solutions**

While there are many payout APIs in the market, Chimoney's flexibility and global reach make it stand out. However, here’s how some other solutions compare:

- **[PayPal](https://chimoney.io/using/paypal/for-sending/mass-payments/vs-using/chimoney/)** offers global payouts, but primarily focuses on traditional payment methods like bank transfers and digital wallets, lacking support for mobile money and airtime.

- **[Wise](https://chimoney.io/using/wise/for-sending/cross-border-payout/vs-using/chimoney/)** (formerly TransferWise) specializes in low-cost international money transfers, but doesn’t offer gift cards or mobile money payouts.

- **[Payoneer](https://chimoney.io/using/payoneer/for-sending/contractor-payments/vs-using/chimoney/)** supports global payments, but its focus is more on freelancer payments and business-to-business (B2B) transfers, limiting its payout method variety.

---

## Chimoney API: A Unique Solution for Global Payouts

What makes Chimoney particularly special is the variety of payout methods it supports and its global reach. Here's an overview of what Chimoney offers:

### 1. **Payout Chimoney**
Chimoney's API allows businesses to send flexible rewards (Chimoney) that can be exchanged for various services, such as airtime, mobile money, gift cards, and more. This gives businesses the freedom to offer diverse rewards that cater to user preferences.

- [Payout Chimoney API Documentation](https://chimoney.readme.io/reference/post_v0-2-payouts-chimoney-1)

### 2. **Mobile Money Payouts**
Chimoney supports **mobile money payouts** in over 10 countries, making it easier to send payments to regions where mobile money is a popular payment method. This is particularly useful for businesses operating in parts of Africa and Southeast Asia.

- [Payout Mobile Money API Documentation](https://chimoney.readme.io/reference/post_v0-2-payouts-mobile-money-1)
- [Supported Mobile Money Countries](https://chimoney.readme.io/reference/get_v0-2-info-mobile-money-codes-1)

### 3. **Airtime Payouts**
Chimoney allows businesses to send **airtime payouts** across 10+ countries. This feature is ideal for companies that want to reward users with mobile prepaid credit, a common payment method in emerging markets.

- [Payout Airtime API Documentation](https://chimoney.readme.io/reference/post_v0-2-payouts-airtime-1)
- [Supported Airtime Countries](https://chimoney.readme.io/reference/get_v0-2-info-airtime-countries-1)

### 4. **Bank Payouts**
With support for bank transfers in over **130 countries**, Chimoney makes it simple for businesses to send funds directly to users' bank accounts. This ensures that users in countries with strong banking infrastructures can receive payments seamlessly.

- [Payout Bank API Documentation](https://chimoney.readme.io/reference/post_v0-2-payouts-bank-1)
- [Supported Bank Countries](https://chimoney.readme.io/reference/get_v0-2-info-country-banks-1)

### 5. **Gift Card Payouts**
Chimoney offers **gift card payouts** in over 20 countries, with more than 200 gift card options. This is a great solution for businesses looking to reward users with popular gift card options in various regions.

- [Payout Gift Card API Documentation](https://chimoney.readme.io/reference/post_v0-2-payouts-gift-card-1)

### 6. **Interledger Payment Pointers for Web Monetization**
Chimoney supports **Interledger Payment Pointers for Web Monetization**, enabling businesses to leverage blockchain technology for fast and secure payouts. This feature provides an innovative way to handle digital asset transactions on a global scale.

- [Payout API Documentation](https://chimoney.readme.io/reference/post_v0-2-payouts-initiate-chimoney-1)

---

## To get started with the Chimoney API, follow this process:

- **Get Sandbox Access**:  
Before integrating Chimoney's Global Payouts API into your live environment, start by accessing the **Sandbox** environment. This allows you to safely test your payment solutions in a simulated setting, ensuring everything runs smoothly without affecting real transactions. You can [Get Sandbox Access here](https://chimoney.readme.io/reference/sandbox-environment) and begin experimenting with API calls right away.

- **Test Your Integration**:  
Once you've set up your API in the sandbox environment, it's time to test. Run through various payment scenarios, simulate real transactions, and confirm that your integration meets your business requirements. Thoroughly testing in the sandbox ensures your payment infrastructure is robust and error-free before going live.

- **Go Live!**:  
After successful testing in the sandbox environment, you're ready to launch your payment system in the live environment. Switching to live mode is straightforward and enables real transactions, allowing you to harness the full power of Chimoney’s Global Payouts API for seamless global payments. Ensure that you have completed all checks before flipping the switch to provide your users with an uninterrupted payment experience.



## Conclusion

Choosing the right payout API depends on several factors, such as security, ease of integration, and global support. Chimoney’s API offers a robust solution for businesses that need flexible, secure, and scalable payouts across multiple methods and countries. With support for mobile money, airtime, gift cards, bank transfers, and even XRPL payments, Chimoney stands out as a reliable and versatile choice for global payouts.
Interested in learning more about how the Chimoney API can streamline your payouts? Book a [demo session](https://chimoney.io/?book_a_demo=1) with us today.


================================================
FILE: submissions/Articles/Quickstart_Guide.md
================================================
# Quickstart Guide to Integrate Chimoney API

Welcome to the Chimoney Quickstart Guide! This guide will help you easily integrate the Chimoney API into your applications.

## Step 1: API Key Generation

To start using the Chimoney API, you need to sign up and generate an API key from the developer dashboard:

1. Go to the [Chimoney Developer Dashboard](https://dash.chimoney.io/auth/signin?next=/).
2. Sign up for an account or log in if you already have one.
3. Navigate to the "API Keys" section.
4. Click on "Generate New API Key" and save your key securely.

## Step 2: SDK Installation

Chimoney provides SDKs for popular programming languages to simplify integration. Below are instructions for installing the SDK for Node.js and Python.

### Node.js

To install the Chimoney SDK for Node.js, use npm:

```bash
npm install chimoney-sdk
```

### Python

To install the Chimoney SDK for Python, use pip:

```bash
pip install chimoney-sdk
```

## Step 3: Making a Sample Request

Here’s how to make a basic API call to initiate a payout using the Chimoney SDK.

### Node.js Example

```javascript
const Chimoney = require('chimoney-sdk');

const chimoney = new Chimoney('YOUR_API_KEY');

chimoney.payout({
    amount: 100,
    currency: 'USD',
    recipient: 'recipient@example.com',
})
.then(response => {
    console.log('Payout successful:', response);
})
.catch(error => {
    console.error('Error initiating payout:', error);
});
```

### Python Example

```python
from chimoney import Chimoney

chimoney = Chimoney(api_key='YOUR_API_KEY')

response = chimoney.payout(amount=100, currency='USD', recipient='recipient@example.com')

print('Payout successful:', response)
```

## Step 4: Overview of Key Features

The Chimoney API provides several key functionalities, including:

- **Payouts**: With Chimoney’s API, you can initiate seamless payouts to over 130 countries via bank, mobile money, airtime, or even Interledger-enabled accounts.
- **Multi-Currency Wallets**: Manage balances in multiple currencies, enabling smooth cross-border payments and better control over currency exchanges.
- **Payment Requests**: Request payments from customers or clients, making invoicing and collections easier with a streamlined API integration.
- **Redemption of Value**: Offer users the ability to redeem Chimoney through options such as bank transfers, Mobile Money, gift cards, or airtime.

For more detailed information, please refer to the [API Documentation](https://chimoney.io/developers-api/).

---

## Libraries & Plugins

Chimoney offers pre-written code packages (server-side helper libraries) to make using the API easier! Below are links to some popular SDKs available in the Chimoney community:

- **Python SDK**: [Chimoney-Python](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/Chimoney-Python)
- **PHP-Laravel SDK**: [Chiconnect Laravel Web App](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/chiconnect-laravel-web-app)
- **JavaScript (NPM)**: [Chimoney-JS](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/chimoney-js)
- **Flutter SDK**: [Chispend Widget](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/chispend_widget)

## Use Cases

Here are a few implementations of the Chimoney API built and maintained by our Chimoney Community:

- **Instant Airtime Redemption Page**: [Redeem Airtime](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/chimoney-redeem-airtime)
- **Payout using Chimoney Twitter Bot**: [Chisend](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/Chisend)
- **Payout Gift Card**: [Gift Card Payout](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/chiconnect-giftcard-payout)
- **Mobile Money Payout**: [Mobile Money Payout](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/chiconnect-mobile-money-payout)
- **Bank Payout**: [Bank API Payout](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/chiconnect-bank-api-payoutt)
- **Paypaddy**: [Paypaddy](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/pay-paddy)
- **Secret Santa**: [Secret Santa](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/secret-santa)
- **Chimap**: [Chimap](https://github.com/Chimoney/chimoney-community-projects/tree/main/submissions/chimap)

For more examples and resources, visit the [Chimoney Community Projects](https://github.com/Chimoney/chimoney-community-projects).

## Author

# I’m Brijesh Thummar, a second-year Computer Science student (Class of 2027) and aspiring Quant Developer. I love coding, solving complex problems, and building innovative software solutions. Let’s connect and create something impactful


================================================
FILE: submissions/Articles/README.md
================================================
# Articles

This folder contains all articles written and submitted by our open-source contributors. Each article here highlights unique perspectives, use cases, and technical insights related to Chimoney's platform, API and services.

## How to Submit

- Create a markdown for your submission (e.g., `article-title.md`).
- Use a descriptive file name, such as `optimizing-chimoney-integration.md`.
- Include your name and a brief bio at the end of your article.
- Add your article within this `Articles` folder.
- Create a Pull Request to submit your article for review 


================================================
FILE: submissions/Articles/Update-Authentication-page.md
================================================
# Authentication

This guide explains how to authenticate your requests to the Chimoney API. Follow these steps to get started with integrating Chimoney's payment solutions into your applications.

## Getting Started

### For Businesses

1. **Create an Account**
   - Sign up at [dash.chimoney.io](https://dash.chimoney.io)
   - Complete the registration process

2. **Request API Access**
   - Email support@chimoney.io to request "Verification and API Access"
   - Include:
     - Links to your website
     - Description of your use case
   - Alternatively, you can [book a demo](https://chimoney.io/book-a-demo/)

3. **Choose a Plan**
   - Review available plans at [chimoney.io/pricing](https://chimoney.io/pricing/)
   - Select an appropriate subscription tier
   - Complete the payment process

### For Developers (Testing)

If you're just testing the API, you can use our sandbox environment. Visit our [Sandbox Environment Guide](https://chimoney.readme.io/reference/sandbox-environment) to get started.

## API Key Authentication

### Obtaining Your API Key

Once your account is approved, you can find your API key in the Chimoney developer dashboard. Two types of keys are provided:
- **Test API Key**: For development and testing
- **Live API Key**: For production use

### Using Your API Key

Include your API key in the `Authorization` header of all requests:

```bash
# Example curl request
curl -X POST https://api.chimoney.io/v0.2/payment/initiate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100,
    "currency": "USD"
  }'
```

### Sample Response

```json
{
  "status": 200,
  "data": {
    "id": "pay_123xyz",
    "status": "pending"
  }
}
```

## Security Best Practices

1. **Protect Your API Keys**
   - Never expose API keys in client-side code
   - Store keys in environment variables
   - Don't commit API keys to version control

2. **Key Management**
   - Rotate API keys periodically
   - Use different keys for development and production
   - Revoke compromised keys immediately

3. **Environment Variables Example**
   ```bash
   # .env file
   CHIMONEY_API_KEY=your_api_key_here
   ```

## Error Handling

### Common Authentication Errors

1. **401 Unauthorized**
   ```json
   {
     "status": 401,
     "error": "Invalid API key provided"
   }
   ```
   *Solution*: Verify your API key is correct and properly formatted in the Authorization header

2. **403 Forbidden**
   ```json
   {
     "status": 403,
     "error": "Insufficient permissions"
   }
   ```
   *Solution*: Ensure your account has the necessary permissions for the requested operation

## Code Examples

### Node.js
```javascript
const axios = require('axios');

const chimoneyAPI = axios.create({
  baseURL: 'https://api.chimoney.io/v0.2/',
  headers: {
    'Authorization': `Bearer ${process.env.CHIMONEY_API_KEY}`,
    'Content-Type': 'application/json'
  }
});

async function initiatePayment() {
  try {
    const response = await chimoneyAPI.post('/payment/initiate', {
      amount: 100,
      currency: 'USD'
    });
    console.log(response.data);
  } catch (error) {
    console.error('Authentication error:', error.response.data);
  }
}
```

### Python
```python
import requests
import os

CHIMONEY_API_KEY = os.getenv('CHIMONEY_API_KEY')

headers = {
    'Authorization': f'Bearer {CHIMONEY_API_KEY}',
    'Content-Type': 'application/json'
}

def initiate_payment():
    try:
        response = requests.post(
            'https://api.chimoney.io/v0.2/payment/initiate',
            headers=headers,
            json={
                'amount': 100,
                'currency': 'USD'
            }
        )
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"Authentication error: {e}")
```

## Additional Resources

- [API Reference](https://chimoney.readme.io/reference/knowing-the-api)
- [Sandbox Environment](https://chimoney.readme.io/reference/sandbox-environment)
- [Pricing Plans](https://chimoney.io/pricing/)
- [Book a Demo](https://chimoney.io/book-a-demo/)

For additional support or questions, contact support@chimoney.io

================================================
FILE: submissions/Articles/chimoney-global-data-annotators.md
================================================
# The Future of Payments for AI Workforce: Why Chimoney is the Perfect Solution for Paying Global Data Annotators

Artificial intelligence (AI) companies rely on large volumes of carefully labeled data to train their systems, and much of this work is done by a global workforce of data annotators. As the AI industry grows, so does the need for an efficient, reliable way to compensate annotators from various countries. Managing payments across borders comes with its own set of challenges, including different currencies, payout methods, and local regulations. This is where **Chimoney** provides an invaluable solution—enabling AI companies to handle global payments quickly and securely.

---

## The Role of Data Annotation in AI Development

AI models require vast amounts of annotated data to function properly. Data annotators play a critical role in preparing this data by labeling images, videos, text, and other content. As demand for AI-driven applications continues to grow, so does the need for a highly skilled, distributed workforce to handle data annotation.

Given the global nature of the workforce, AI companies often hire annotators from different countries, each with unique payment preferences and systems. Efficiently managing these payments is crucial to ensure timely compensation and continued worker satisfaction.

---

## Challenges of Paying Global Data Annotators

AI companies face several common challenges when compensating their global workforce:

1. **Currency Exchange and Fees**: Managing payouts across various currencies means dealing with fluctuating exchange rates and conversion fees, which can lead to additional costs for both the company and the annotators.

2. **Slow Payment Processes**: Traditional international bank transfers are often slow, taking days or even weeks to clear. These delays can frustrate annotators and harm the company's ability to retain talent.

3. **Diverse Payout Preferences**: Some workers prefer bank transfers, while others rely on mobile money, digital wallets, or even cryptocurrency. Offering limited payment options can reduce a company’s appeal in certain regions.

4. **International Compliance and Regulations**: Each country has its own set of financial regulations, including anti-money laundering (AML) and know-your-customer (KYC) requirements. AI companies must ensure compliance with these laws to avoid legal complications, which can be a complex and time-consuming process.

---

## How Chimoney Simplifies Payments for AI Companies

Chimoney’s API is specifically designed to tackle these global payment challenges. With Chimoney, AI companies can streamline payouts, ensuring fast, secure, and compliant payments to annotators across the world.

### 1. Support for Multiple Currencies and Payout Methods

Chimoney’s API allows AI companies to pay annotators in their local currency, saving both parties from high conversion fees and ensuring prompt payments. Chimoney supports an extensive range of currencies and payout methods, including:

- **Currencies**: USD, EUR, GBP, CAD, INR, NGN, GHS, KES, ZAR, and more.
- **Payout Methods**: Bank transfers, mobile money (such as M-Pesa), digital wallets (like PayPal and Venmo), cryptocurrency (Bitcoin, Ethereum), and gift cards.

By offering these flexible options, Chimoney ensures that data annotators, regardless of their location, can receive payments in the most convenient way for them.

### 2. Faster Payment Processing

With Chimoney’s API, AI companies can automate their payment process, significantly reducing the time it takes to compensate annotators. Traditional payment methods often result in lengthy delays, but Chimoney guarantees fast and secure transactions across borders.

Prompt payments lead to happier workers, allowing AI companies to maintain an engaged and reliable workforce, which is critical for projects with tight deadlines.

### 3. Simplified Compliance

Managing international compliance is one of the most challenging aspects of paying global workers. Chimoney simplifies this by ensuring compliance with international financial regulations, including AML, KYC, and local financial reporting laws. Chimoney’s API helps AI companies navigate this complex landscape by automating compliance procedures, reducing the administrative burden, and helping companies stay compliant with the relevant regulations in each country.

By streamlining both tax and regulatory compliance, Chimoney allows AI companies to focus on growing their business without getting bogged down by complex legal requirements.

### 4. Scalability for Growing Teams

Chimoney’s API is built to scale alongside your AI company’s growing workforce. Whether you’re managing payments for a handful of annotators or thousands of workers worldwide, Chimoney can handle the volume of transactions efficiently and securely. As your workforce grows, Chimoney grows with you, providing a seamless payout experience for all team members.

---

## Integrating Chimoney’s API: A Seamless Solution

Chimoney’s API is designed for easy integration, making it simple for developers and AI platforms to implement global payout solutions without overhauling their systems. Here’s how to get started:

### Step 1: Access Chimoney API Documentation

Visit Chimoney’s [API documentation](https://chimoney.io/) for step-by-step instructions. The documentation includes detailed guides and code samples that help developers integrate Chimoney into any platform.

### Step 2: Set Up an API Key

Create your API key for secure authentication. This key allows your platform to securely communicate with Chimoney’s services, ensuring that all payout requests are processed safely.

### Step 3: Configure Payout Methods

Choose the currencies and payout methods that best fit your global workforce. Chimoney supports a wide variety of payout options, including local currencies and alternative payment methods like mobile money, digital wallets, and cryptocurrency.

### Step 4: Automate Payouts

Automate payouts by setting triggers based on task completion or other custom logic. Chimoney’s API enables fully automated, timely payments with minimal manual intervention.

### Step 5: Test and Launch

Before going live, use Chimoney’s sandbox environment to test the integration. Once the tests are successful, launch your platform and enjoy streamlined global payouts.

---

## Why Chimoney is the Perfect Fit for AI Companies

For AI companies relying on a global workforce of data annotators, managing cross-border payments is a complex and often inefficient process. Chimoney offers a reliable, scalable solution to these challenges, supporting multiple currencies, offering diverse payout methods, and ensuring compliance with international regulations.

By integrating Chimoney’s API, AI companies can reduce payment delays, save on conversion fees, and meet the diverse needs of their annotators across the world. The result? A more satisfied workforce and a smoother, faster payment process that benefits both the company and its workers.

---

**Ready to experience seamless payouts to data annotators globally?** [Book a session](https://chimoney.io/) with Chimoney today!

### A bit about me:

I am [Adarsh](https://www.github.com/adarsh-jha-dev), a 3rd year CS undergraduate and a full-stack developer from India with some interest in technical writing as well.


================================================
FILE: submissions/Articles/global-payouts-non-profits.md
================================================

# How Global Payout Platforms Can Empower Communities and Non-profits

You’re hosting a charity baking event, raising funds to help an underserved community overseas gain access to 24/7 electricity and clean water. After reaching your monetary goal, you send the money using a platform like PayPal, feeling accomplished. But a few days later, when you check for updates, there's no clear sign that the funds have reached the community. The excitement of making a difference turns into frustration and uncertainty. A possible solution to this issue is using Chimoney. The platform allows global payouts to 130+ countries via the recipient's email and in this case the community you're sending to will be able to redeem the received payment to their own registered bank account, or mobile money instantly depending on their location. This article explores how global payout platforms can empower non-profits and community initiatives, using Chimoney as a solution to streamlining international transfers.

## How Global Payout Platforms Offer Transparency and Save You Money

Non-profits often face a common challenge when using traditional banking to send funds overseas: these platforms typically charge high fees for transactions and require additional payments to access many of their services. For example, [just last year alone, nonprofits collectively spent approximately $3 billion on transaction fees.](https://www.zeffy.com/blog/nonprofits-paid-2-billion-in-transaction-fees-last-year). In other words, traditional banking platforms can be prohibitively expensive. Unlike traditional banks, Chimoney offers transparent and affordable payment rates, with clearly disclosed fees, making it easier for nonprofits to plan and budget their funding effectively. The platform was founded by [Uchi Uchibeke, who experienced firsthand the high fees of traditional banking while trying to send prize money to winners of AfriHacks, a hackathon he was hosting.](https://chimoney.io/blogs/techstars-backs-chimoney-to-revolutionize-global-payouts/) With Chimoney, he was able to pay the winners without hidden fees. And transparent fees are just one way that global payouts can empower your nonprofit or community initiative. Let’s explore another advantage.

## Overcome Geographical Barriers with Global Payout Platforms
Another common issue that nonprofits and community initiatives face when it comes to sending funds overseas is restrictions that limit them to certain countries. This limitation can be especially challenging for organizations whose mission is to provide aid to those in need, regardless of location. Unlike traditional banks, global payout platforms like [Chimoney enable transactions in over 130 countries worldwide](https://chimoney.io/payouts/), giving nonprofits the freedom to support their intended recipients wherever they are. With this capability, nonprofits can overcome geographical barriers and better fulfill their mission.

## How Global Payout Platforms Can Make Your Transactions Quick

It may sound cliché, but "time is money" truly applies when it comes to getting funds where they’re needed—on time. Unfortunately, traditional banks often have limited transfer windows, especially for international transactions, as they [must follow country-specific protocols](https://tipalti.com/resources/learn/global-payouts/#the-challenges-that-face-global-payouts). For instance, Bank of America customers who need to send international transfers can only do so [by 5:00 pm Eastern Time](https://www.bankofamerica.com/help/cutoff-times/), and they [must use SWIFT codes](https://info.bankofamerica.com/en/digital-banking/wire-transfers), which can add [delays to the process](https://meestpay.com/what-is-swift-money-transfer-and-its-disadvantages/). These restrictions can hinder nonprofits by delaying the vital funds needed for their communities.

Global payout platforms like Chimoney offer fast delivery and 24/7 payment processing, allowing nonprofits to make quick, reliable transfers across borders. This means no waiting for banking hours or dealing with restrictive protocols—funds reach recipients quickly. For example, [AfricaHacks uses Chimoney's bulk payout feature to reward hackathon winners](https://chimoney.io/blogs/5-types-of-people-who-should-use-chimoneys-bulk-gift-cards-feature/). With just one click, all winners receive their payouts instantly, redeemable via bank transfers, mobile money, airtime, or gift cards.

Now, before you go, there’s just one more benefit of using global payout platforms like Chimoney for nonprofit funding.

## How Global Payout Platforms Can Give You Multiple Ways To Send Money

Even though traditional banks provide ways to send money, their options are often limited. For instance, [Bank of America only allows users to send money internationally via its website or mobile app](https://info.bankofamerica.com/en/digital-banking/wire-transfers), while some local banks require in-person visits. This setup can be a challenge for nonprofits, as the communities they serve may lack access to these specific channels or may not have these banks in their country.

In contrast, global payout platforms like Chimoney offer a wider range of transfer methods, allowing nonprofits to choose the delivery method that best meets the needs of their organization and recipients. For example, through Chimoney’s partnership with the [International Student Identity Card (ISIC), students can manage their finances more easily](https://chimoney.io/blogs/chimoney-partners-with-isic-to-expand-global-benefits-for-chimoney-app-users/) and send or receive funds through email, or within Chimoney app.

Now that you know the advantages of global payout systems, let’s explore how Chimoney's platform can further empower nonprofits and communities.

## How Chimoney Empowers Communities and Non-profits

Before spending time searching for global payout platforms, consider Chimoney. Chimoney simplifies payments for non-profits, helping them receive donations from around the world through Chimoney wallets. With [TryOpenGiving](https://tryopengiving.com/), an open-source platform developed by Chimoney, non-profits can accept donations via Chimoney, Interledger, and other payment methods, making financial contributions seamless and accessible for both donors and organizations.

## Now It's Your Turn

Timely financial support and transparency are essential for empowering non-profits and community initiatives to drive meaningful change. With the right global payout solution, you can enhance your impact, ensuring funds reach the people who need them most. Take the first step toward transforming your community and discover how Chimoney can unlock new possibilities.

## About the Author

Christine Belzie is a technical writer and open source maintainer. Her articles have been featured on websites like FreeCodeCamp and Pieces For Developers. If you want to connect with her, check out her socials on [Linktree](https://linktr.ee/ChrissyCodes).


================================================
FILE: submissions/Articles/payout-digital-marketplaces.md
================================================
# A Chimoney Guide to Payouts for Digital Marketplaces

Welcome to the Chimoney guide on payouts for digital marketplaces! If you run a platform that connects buyers and sellers, you know how important it is to handle payments smoothly. This guide will explain how Chimoney can help you make payouts easy and reliable for your users.

---

## Why Payouts Matter for Digital Marketplaces

Payouts ensure that sellers, freelancers, or service providers are paid accurately and on time. Delays or issues with payments can damage trust and impact the growth of your platform. A smooth payout system means vendors stay engaged, and your business operates seamlessly.

---

## Common Payout Challenges for Marketplaces

Managing payouts on a global scale isn’t without its challenges. Some of the most common issues include:

1. **Currency and Exchange Rates**: Users in different countries often need payouts in their local currencies. Converting currencies can result in poor exchange rates and fees, making the payout less valuable for your users.
2. **Regulation and compliance:** Each country has unique financial laws, such as anti-money laundering (AML) regulations, data privacy rules, and tax requirements, which businesses must follow to process payouts legally.

3. **Payment Preferences**: Different regions favor different payment methods. Offering limited payout options might alienate users from certain areas, making your platform less appealing globally.

4. **Delayed Payments**: International payments can take days or even weeks to process. This delay frustrates users and can make your marketplace less competitive.

---

## How Chimoney’s API Simplifies Global Payouts

Chimoney’s API is designed to solve the complex challenges of handling global payouts. Here’s how Chimoney can make things easier for your marketplace:

### 1. Multiple Currencies and Payout Methods

Chimoney’s API supports a variety of currencies and payout methods, including bank transfers, mobile money, digital wallets and gift cards. This flexibility allows you to cater to users worldwide, ensuring they get paid in their preferred currency and method.

### 2. Regulatory Compliance

Chimoney's API is designed with compliance in mind, ensuring that all transactions adhere to the regulatory requirements of each country involved.

### 3. Faster Payouts with Automation

By integrating Chimoney’s API, you can offer faster payouts with less manual work. The API automates payment processing, reducing delays and ensuring users are paid quickly, no matter where they are.

### 4. Scalable Payment Infrastructure

Chimoney’s API is designed to grow with your platform. Whether you’re handling payments for a few users or thousands, the API’s scalable infrastructure ensures smooth and efficient payouts, even as your marketplace expands.

---

## How to Integrate Chimoney’s API into Your Marketplace

Integrating Chimoney’s API is a straightforward process. Follow these steps to get started:

### Step 1: Access Chimoney’s API Documentation

Visit the [Chimoney API Documentation](https://chimoney.readme.io/reference/getting-started-with-your-api) to get all the resources you need. The documentation offers step-by-step instructions and code samples to help developers integrate the API seamlessly.

### Step 2: Get Your API Key

Create an API key to authenticate your marketplace.

### Step 3: Configure Payout Options

Customize the payout options available on your platform to best suit your user base. Chimoney offers allows you to support multiple currencies (USD, CAD, NGN) and different payment methods such as bank, Mobile Money, [Interac](https://chimoney.io/blogs/interac-e-transfer-bulk-for-canadian-businesses-integration-and-api/), Airtime and Gift cards

### Step 4: Automate Payouts

Use Chimoney’s API to automate your payout process. For instance, you can trigger automatic payouts after a sale is completed or a service is approved, ensuring users get paid without any delays.

### Step 5: Test Your Integration

Use Chimoney’s sandbox environment to test your integration before going live. Ensure all payment methods and currencies are working correctly to avoid any disruptions for your users.

### Step 6: Go Live

Once everything is tested, launch the integration. Chimoney’s reliable infrastructure ensures smooth operation, even as your platform grows globally.

---

## Example Code: Making a Payout Request

Here’s a simple code sample demonstrating how to make a payout request using Chimoney’s API:

```javascript
const axios = require("axios");

const options = {
  method: "POST",
  url: "https://api.chimoney.io/v0.2/payouts/bank",
  headers: {
    accept: "application/json",
    "content-type": "application/json",
    Authorization: "Bearer YOUR_API_KEY", // Replace with your actual API key
  },
  data: {
    subAccount: "yourSubAccountID", // Optional: Wallet account to payout from
    turnOffNotification: false, // Optional: set to true to disable notifications
    debitCurrency: "USD", // Currency to debit from
    banks: [
      {
        countryToSend: "NG", // Payout country
        account_bank: "044", // Bank code
        account_number: "1234567890", // Recipient account number
        valueInUSD: 100, // Payout value in USD
        amount: 100, // Payout amount in specified currency
        reference: "txn123456", // Unique transaction reference
        fullname: "John Doe", // Full name of the beneficiary
        branch_code: "", // Optional: Required for some countries, not Nigeria
        narration: "Payout for services", // Description for the user
        collectionPaymentIssueID: "issue123", // Optional: Issue ID for payment
      },
    ],
  },
};

axios
  .request(options)
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    console.error(error);
  });
```

This code sends a payout request for $100 USD to a recipient's bank account using Chimoney's API.

---

## Why Chimoney Is the Right Choice for Your Marketplace

Digital marketplaces need flexible and reliable payout systems to thrive and Chimoney’s API provides the tools you need to handle multiple currencies, offering various payout methods, and ensuring faster payments — all while simplifying compliance and scaling with your platform’s growth.

---

## Get Started with Chimoney Today

Ready to make payouts easier? Visit the [Chimoney API Documentation](https://chimoney.readme.io/reference/getting-started-with-your-api) to learn more and start building an efficient payout solution for your marketplace.

---

## About Me

I am [Adarsh](https://www.github.com/adarsh-jha-dev), a 3rd year CS undergraduate and full-stack developer from India.


================================================
FILE: submissions/Articles/tutorial_on_sending_p2p_Interledger _payments.md
================================================
# Tutorial: Integrating Chimoney's Payment Pointer for Sending and Verifying Payments

This tutorial will guide you through the process of sending and verifying payments using Chimoney's API and Payment Pointers. We will cover setting up your environment, sending a payment to an Interledger Wallet Address, and verifying the transaction.

## 1. Environment Setup

Before you start, you'll need a Chimoney developer account and your API key.

### Getting Your API Key

1. Go to the Chimoney Developer Portal and create an account.
2. Log in and navigate to the "Developers" tab to create a new App.
3. Your API Key will be generated. Copy it and keep it safe.

**Note**: This tutorial covers all steps in sandbox mode. The sandbox base URL is https://api-v2-sandbox.chimoney.io/v0.2.4/ For those working on production, please replace the sandbox base URL with the production URL: https://api.chimoney.io/v0.2.4/

### Setting up your .env file

Create a `.env` file in your project's root directory to store your API key securely.

```
CHIMONEY_API_KEY="YOUR_API_KEY"
```

### Dependencies

This tutorial uses Node.js and the node-fetch library to make API requests. Make sure you have Node.js installed and then install node-fetch:

```bash
npm install node-fetch
```

## 2. Step-by-Step Guide On P2P Transfers

### Step 1: Send a Payment

To send a payment to an Interledger Wallet Address, you will use the `POST /v0.2.4/payouts/interledger-wallet-address` endpoint.

**EndPoint**:https://api.chimoney.io/v0.2.4/payouts/interledger-wallet-address

#### Explanation

This endpoint allows you to initiate a payout to a user's Interledger Payment Pointer. You need to specify the debit currency and provide a list of wallets to send to — including the recipient's Interledger Wallet Address, the currency, the amount, and a narration for the transaction.

#### Code Snippet (JavaScript)

```javascript
import fetch from 'node-fetch';

const sendPayment = async () => {
  const url = 'https://api-v2-sandbox.chimoney.io/v0.2.4/payouts/interledger-wallet-address';
  const options = {
    method: 'POST',
    headers: {
      'accept': 'application/json',
      'content-type': 'application/json',
      'X-API-KEY': process.env.CHIMONEY_API_KEY
    },
    body: JSON.stringify({
      debitCurrency: 'USD',
      interledgerWallets: [
        {
          interledgerWalletAddress: '$ilp.uphold.com/24NNrh1B32g4', // Example payment pointer
          currency: 'USD',
          amountToDeliver: 1,
          narration: 'Payment for services'
        }
      ]
    })
  };

  try {
    const res = await fetch(url, options);
    const json = await res.json();
    console.log(json);
  } catch (err) {
    console.error('error:' + err);
  }
};

sendPayment();
```

### Step 2: Verify the Payment

After sending a payment, you will receive an `issueID`. You can use this ID to verify the status of your transaction with the `POST /v0.2.4/payment/verify` endpoint.

**EndPoint**:https://api.chimoney.io/v0.2.4/payment/verify

#### Explanation

This endpoint helps you confirm if a transaction was successful. You pass the issueID from the previous step in the request body. This endpoint is particularly useful for verifying the final status of the transaction, as it will confirm one of these four states: "failed", "expired", "fraud", or "paid".

#### Code Snippet (JavaScript)

```javascript
import fetch from 'node-fetch';

const verifyPayment = async (issueID) => {
  const url = 'https://api-v2-sandbox.chimoney.io/v0.2.4/payment/verify';
  const options = {
    method: 'POST',
    headers: {
      'accept': 'application/json',
      'content-type': 'application/json',
      'X-API-KEY': process.env.CHIMONEY_API_KEY
    },
    body: JSON.stringify({
      id: issueID
    })
  };

  try {
    const res = await fetch(url, options);
    const json = await res.json();
    console.log(json);
  } catch (err) {
    console.error('error:' + err);
  }
};

// Replace with the issueID from your "Send Payment" response
const issueID = "YOUR_ISSUE_ID";
verifyPayment(issueID);
```

## 3. Optional Features

### Sending Payments in Multiple Currencies

Chimoney's API supports multiple currencies. To send a payment in a different currency, change the `debitCurrency` and the `currency` in the `interledgerWallets` array to your desired currency code (e.g., "CAD", "NGN").

### Transaction Notifications

For transaction notifications, you can set up a webhook in your Chimoney developer dashboard. This allows Chimoney to send real-time updates about your transactions to a URL you specify.

## 4. Conclusion and Further Resources

You have now learned the basic workflow for sending and verifying payments with Chimoney's Payment Pointer integration.

For more detailed information, refer to the official documentation:

- **Payment Pointer Integration Use Case Guide:**  
  https://chimoney.io/usecases/interledger-receive-and-send-payments/

- **Chimoney API Reference:**  
  https://chimoney.readme.io/reference/getting-started-with-your-api

- **Introductory Video:**  
  For a great introduction to the Chimoney API, check out this Payment API 101 video.
  https://www.youtube.com/watch?v=VItvZbPH9cU

================================================
FILE: submissions/Chimoney-Python/LICENSE
================================================

MIT License

Copyright (c) 2022 Asikhalaye Samuel

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

================================================
FILE: submissions/Chimoney-Python/README.md
================================================
# PyChimoney

pychimoney is a python wrapper for <a href="https://chimoney.io"> Chimoney </a>

    - Account
    - Info
    - Payout
    - Mobile Money 
    - Wallet
    - Sub-Account
    - Redeem

## Getting Started
- Register with <a href="https://chimoney.io"> Chimoney </a>
- Request for API KEY from support
- set Your "CHIMONEY_AUTH_KEY" environment variable

## Installing 
    - pip install chimoney-py
### OR
    - git clone "the repo"
    - cd pychimoney
    - python setup.py install or
    - pip3 install .

## Usage
#### Importing the package
```python
from chimoney import Chimoney
```
#### Creating an instance of the Chimoney class
```python
chimoney = Chimoney.set_api_key("API-KEY")
```

#### Full Example
```python
    from pychimoney import Chimoney
    import os

    # Initialize Chimoney
    chimoney = Chimoney.set_api_key("CHIMONEY_AUTH_KEY")
```
 #### Using the Account API
 ```python

    chimoney.account.required_function(params)
```

## TODO

- [x] Add all Endpoints
- [ ] Write Unit Tests
- [x] Package the Library
- [x] Add to Pip
- [ ] Add Pytest and Covrage for Test
- [ ] Documentation


================================================
FILE: submissions/Chimoney-Python/build/lib/pychimoney/__init__.py
================================================
from .Base import BaseAPI
from .Info import Info
from .Account import Account
from .Payouts import Payouts
from .SubAccount import SubAccount
from .Wallet import Wallet
from .Redeem import Redeem
from .Chimoney import Chimoney
from .Payments import Payments
from .AI import AI

================================================
FILE: submissions/Chimoney-Python/chimoney/AI.py
================================================
from chimoney import BaseAPI

class AI(BaseAPI):
    """
    A class that extends the BaseAPI class to handle AI-based invoice generation requests.

    Methods:
    --------
    invoice_gen(instruction: str) -> dict
        Generates an invoice based on a given instruction.
    """
    def invoice_gen(self, instruction: str):
        """
        Generates an invoice by sending a POST request with the given instruction to the AI endpoint.

        Parameters:
        -----------
        instruction : str
            A description or set of details required to generate the invoice. It should specify key elements
            like items, quantities, prices, and any additional instructions for the invoice layout.

        Returns:
        --------
        dict
            A dictionary containing the response from the invoice generation API, which includes details of the generated invoice.

        Raises:
        -------
        ValueError
            If the 'instruction' parameter is empty or None.
        """
        if not instruction:
            raise ValueError("Instruction is required")

        payload = {
            "instruction": instruction
        }

        return self._handle_request("POST", "/v0.2/ai/invoice/generate", payload)


================================================
FILE: submissions/Chimoney-Python/chimoney/Account.py
================================================
from chimoney import BaseAPI


class Account(BaseAPI):
    """
    Account Endpoints Wrapper

    This class wraps the Account endpoints of the Chi Money API.

    list of endpoints:
        - transactions_by_issue_id
        - all_transaction
        - transaction_by_id
        - account_transfer
        - delete_unpaid_transaction
    """

    def transactions_by_issue_id(self, issue_id, sub_account=None) -> dict:
        """
        This function returns a list of transactions by issue ID.

        Args:
            issue_id (str): The issue ID of the transaction.(required)
            sub_account (str):  The sub account of the transaction.

        Returns:
            The JSON response fron the Chimoney API
        """
        if not isinstance(issue_id, str):
            raise TypeError("Issue ID must be a string.")

        if not issue_id:
            raise ValueError("Issue ID is required.")

        params = {"issueID": issue_id}
        payload = {}
        if sub_account:
            payload["subAccount"] = sub_account

        return self._handle_request(
            "POST", "/v0.2/accounts/issue-id-transactions", params=params, data=payload
        )

    def all_transaction(self, sub_account=None) -> dict:
        """
        This function returns a list of transactions by account .

        Args:
            sub_account(str): The sub account of the transaction.

        Returns:
            The JSON response from the Chimoney API
        """
        payload = {}
        if sub_account:
            payload["subAccount"] = sub_account

        return self._handle_request(
            "POST",
            "/v0.2/accounts/transactions",
            data=payload,
        )

    def transaction_by_id(self, transaction_id, sub_account=None) -> dict:
        """
        This function returns a transaction by ID.

        Args:
            transaction_id(str): The ID of the transaction.(required)
            sub_account(str): The sub account of the transaction.

        Returns:
            The JSON response from the Chimoney API
        """
        if not isinstance(transaction_id, str):
            raise TypeError("Transaction ID must be a string.")

        if not transaction_id:
            raise ValueError("Transaction ID is required.")

        params = {"id": transaction_id}
        payload = {}
        if sub_account:
            payload["subAccount"] = sub_account

        return self._handle_request(
            "GET", "/v0.2/accounts/transaction", params=params, data=payload
        )

    def account_transfer(self, receiver, amount, wallet, sub_account=None) -> dict:
        """
        This function transfers funds from one account to another.

        Args:
            reciever(str): The receiver of the funds.
            amount(float): The amount of the funds in USD.
            wallet(str): The wallet type.[chi, momo, airtime]
            sub_aacount(str): The sub account of the transaction.

        Returns:
            The JSON response from Chimoney API
        """
        if not isinstance(receiver, str):
            raise TypeError("Receiver must be a string.")

        if not isinstance(amount, int):
            raise TypeError("Amount must be an integer.")

        if not isinstance(wallet, str):
            raise TypeError("Wallet must be a string.")

        if not receiver and amount and
Download .txt
gitextract_639vv6hg/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.yml
│   │   ├── config.yml
│   │   ├── enhancement.yml
│   │   ├── feature.yml
│   │   └── other.yml
│   ├── PULL_REQUEST_TEMPLATE/
│   │   └── pull_request_template.md
│   ├── scripts/
│   │   └── badge-automation.js
│   └── workflows/
│       ├── badge-automation.yml
│       └── translate.yml
├── .gitignore
├── .gitmodules
├── .idea/
│   ├── .gitignore
│   ├── chimoney-community-project.iml
│   ├── misc.xml
│   ├── modules.xml
│   └── vcs.xml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── GSOC/
│   ├── Contributor Guide.md
│   └── Project Ideas.md
├── LICENSE
├── README-BN.md
├── README-CN.md
├── README-ES.md
├── README-GM.md
├── README-HN.md
├── README-JP.md
├── README-KO.md
├── README.md
├── ai-passport-and-wallet-examples/
│   ├── .gitignore
│   ├── README.md
│   ├── crewai-support-agent/
│   │   ├── README.md
│   │   ├── requirements.txt
│   │   └── support_agent.py
│   ├── data-processing-agent/
│   │   ├── README.md
│   │   ├── data_agent.py
│   │   └── requirements.txt
│   └── langchain-research-agent/
│       ├── README.md
│       ├── requirements.txt
│       └── research_agent.py
└── submissions/
    ├── .gitkeep
    ├── Articles/
    │   ├── Contributing-to-Chimoney-Hacktoberfest.md
    │   ├── Flexible-payout-solutions.md
    │   ├── GlobalPayoutGuide.md
    │   ├── Quickstart_Guide.md
    │   ├── README.md
    │   ├── Update-Authentication-page.md
    │   ├── chimoney-global-data-annotators.md
    │   ├── global-payouts-non-profits.md
    │   ├── payout-digital-marketplaces.md
    │   └── tutorial_on_sending_p2p_Interledger _payments.md
    ├── Chimoney-Python/
    │   ├── LICENSE
    │   ├── README.md
    │   ├── build/
    │   │   └── lib/
    │   │       └── pychimoney/
    │   │           └── __init__.py
    │   ├── chimoney/
    │   │   ├── AI.py
    │   │   ├── Account.py
    │   │   ├── Base.py
    │   │   ├── Chimoney.py
    │   │   ├── Errors.py
    │   │   ├── Info.py
    │   │   ├── Payments.py
    │   │   ├── Payouts.py
    │   │   ├── Redeem.py
    │   │   ├── SubAccount.py
    │   │   ├── Wallet.py
    │   │   └── __init__.py
    │   ├── examples/
    │   │   ├── chimoney_examples.py
    │   │   └── test.py
    │   ├── setup.py
    │   └── tests/
    │       └── __init__.py
    ├── Chimoney-Slackbot/
    │   ├── .gitignore
    │   ├── Readme.md
    │   ├── main.py
    │   └── utils/
    │       ├── app/
    │       │   ├── __init__.py
    │       │   ├── models.py
    │       │   └── views.py
    │       ├── bot.py
    │       ├── collation.py
    │       ├── functions.py
    │       ├── rtm.py
    │       └── run.py
    ├── Chimoney-Slackbot-V2/
    │   ├── .gitignore
    │   ├── Dockerfile
    │   ├── README.md
    │   ├── modules/
    │   │   ├── choices.py
    │   │   ├── giveaway.py
    │   │   ├── sendchimoney.py
    │   │   └── validators.py
    │   ├── requirements.txt
    │   ├── slackbot.py
    │   └── tests/
    │       ├── __init__.py
    │       └── validator_tests.py
    ├── Chisend/
    │   ├── .gitignore
    │   ├── Dockerfile
    │   ├── README.md
    │   ├── bots/
    │   │   ├── chisend.py
    │   │   ├── entrypoint.sh
    │   │   ├── main.py
    │   │   ├── oauth-key-gen.py
    │   │   └── utils.py
    │   └── requirements.txt
    ├── Dev focused articles/
    │   └── top-3-payment-challenges-solutions-ifeoluwa-favour
    ├── FAQs/
    │   └── FAQs.md
    ├── GetStarted/
    │   ├── Blogs.html
    │   ├── README.md
    │   └── style.css
    ├── Proposed-Chimoney-Copy/
    │   └── ChimoneyUXCopy.md
    ├── chiconnect-bank-api-payout/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.cjs
    │   ├── src/
    │   │   ├── App.jsx
    │   │   ├── index.css
    │   │   ├── main.jsx
    │   │   └── service/
    │   │       └── fetchApi.js
    │   ├── tailwind.config.cjs
    │   └── vite.config.js
    ├── chiconnect-giftcard-payout/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.cjs
    │   ├── src/
    │   │   ├── App.jsx
    │   │   ├── components/
    │   │   │   ├── Giftcard.jsx
    │   │   │   └── Giftcards.jsx
    │   │   ├── index.css
    │   │   ├── main.jsx
    │   │   └── service/
    │   │       └── fetchApi.js
    │   ├── tailwind.config.cjs
    │   └── vite.config.js
    ├── chiconnect-laravel-web-app/
    │   ├── .editorconfig
    │   ├── .gitattributes
    │   ├── .gitignore
    │   ├── Laravel SDK Installation and Setup Guide.md
    │   ├── Procfile
    │   ├── README.md
    │   ├── app/
    │   │   ├── Console/
    │   │   │   └── Kernel.php
    │   │   ├── Exceptions/
    │   │   │   └── Handler.php
    │   │   ├── Http/
    │   │   │   ├── Controllers/
    │   │   │   │   ├── AccountController.php
    │   │   │   │   ├── Auth/
    │   │   │   │   │   ├── AuthenticatedSessionController.php
    │   │   │   │   │   ├── ConfirmablePasswordController.php
    │   │   │   │   │   ├── EmailVerificationNotificationController.php
    │   │   │   │   │   ├── EmailVerificationPromptController.php
    │   │   │   │   │   ├── NewPasswordController.php
    │   │   │   │   │   ├── PasswordResetLinkController.php
    │   │   │   │   │   ├── RegisteredUserController.php
    │   │   │   │   │   └── VerifyEmailController.php
    │   │   │   │   ├── Controller.php
    │   │   │   │   ├── PayoutController.php
    │   │   │   │   └── ProfileController.php
    │   │   │   ├── Kernel.php
    │   │   │   ├── Livewire/
    │   │   │   │   ├── Auth/
    │   │   │   │   │   └── RegisterUser.php
    │   │   │   │   ├── ProcessAirtime.php
    │   │   │   │   ├── ProcessBank.php
    │   │   │   │   └── Username.php
    │   │   │   ├── Middleware/
    │   │   │   │   ├── Authenticate.php
    │   │   │   │   ├── EncryptCookies.php
    │   │   │   │   ├── PreventRequestsDuringMaintenance.php
    │   │   │   │   ├── RedirectIfAuthenticated.php
    │   │   │   │   ├── TrimStrings.php
    │   │   │   │   ├── TrustHosts.php
    │   │   │   │   ├── TrustProxies.php
    │   │   │   │   ├── ValidateSignature.php
    │   │   │   │   └── VerifyCsrfToken.php
    │   │   │   └── Requests/
    │   │   │       └── Auth/
    │   │   │           └── LoginRequest.php
    │   │   ├── Models/
    │   │   │   ├── Payout.php
    │   │   │   ├── Transaction.php
    │   │   │   ├── TransactionReference.php
    │   │   │   └── User.php
    │   │   ├── Providers/
    │   │   │   ├── AppServiceProvider.php
    │   │   │   ├── AuthServiceProvider.php
    │   │   │   ├── BroadcastServiceProvider.php
    │   │   │   ├── EventServiceProvider.php
    │   │   │   └── RouteServiceProvider.php
    │   │   ├── Support/
    │   │   │   ├── Chiconnect/
    │   │   │   │   ├── Account.php
    │   │   │   │   ├── Info.php
    │   │   │   │   ├── Payout.php
    │   │   │   │   ├── SubAccount.php
    │   │   │   │   └── Wallet.php
    │   │   │   └── Helpers.php
    │   │   └── View/
    │   │       └── Components/
    │   │           ├── AppLayout.php
    │   │           └── GuestLayout.php
    │   ├── artisan
    │   ├── bootstrap/
    │   │   ├── app.php
    │   │   └── cache/
    │   │       └── .gitignore
    │   ├── composer.json
    │   ├── config/
    │   │   ├── app.php
    │   │   ├── auth.php
    │   │   ├── broadcasting.php
    │   │   ├── cache.php
    │   │   ├── chimoney.php
    │   │   ├── cors.php
    │   │   ├── country_code.php
    │   │   ├── database.php
    │   │   ├── filesystems.php
    │   │   ├── hashing.php
    │   │   ├── logging.php
    │   │   ├── mail.php
    │   │   ├── queue.php
    │   │   ├── sanctum.php
    │   │   ├── services.php
    │   │   ├── session.php
    │   │   └── view.php
    │   ├── database/
    │   │   ├── .gitignore
    │   │   ├── factories/
    │   │   │   └── UserFactory.php
    │   │   ├── migrations/
    │   │   │   ├── 2014_10_12_000000_create_users_table.php
    │   │   │   ├── 2014_10_12_100000_create_password_resets_table.php
    │   │   │   ├── 2019_08_19_000000_create_failed_jobs_table.php
    │   │   │   ├── 2019_12_14_000001_create_personal_access_tokens_table.php
    │   │   │   ├── 2022_10_17_080103_add_username_to_users_table.php
    │   │   │   ├── 2022_10_17_194518_create_transactions_table.php
    │   │   │   ├── 2022_10_20_180113_add_chi_wallet_id_to_users_table.php
    │   │   │   ├── 2022_10_20_204612_create_payouts_table.php
    │   │   │   ├── 2022_10_22_165728_create_transaction_references_table.php
    │   │   │   └── 2022_10_22_171931_alter_type_column_in_payouts_table.php
    │   │   └── seeders/
    │   │       └── DatabaseSeeder.php
    │   ├── lang/
    │   │   └── en/
    │   │       ├── auth.php
    │   │       ├── pagination.php
    │   │       ├── passwords.php
    │   │       └── validation.php
    │   ├── package.json
    │   ├── phpunit.xml
    │   ├── postcss.config.js
    │   ├── public/
    │   │   ├── .htaccess
    │   │   ├── index.php
    │   │   └── robots.txt
    │   ├── resources/
    │   │   ├── css/
    │   │   │   └── app.css
    │   │   ├── js/
    │   │   │   ├── app.js
    │   │   │   └── bootstrap.js
    │   │   └── views/
    │   │       ├── account/
    │   │       │   └── topup-user.blade.php
    │   │       ├── auth/
    │   │       │   ├── confirm-password.blade.php
    │   │       │   ├── forgot-password.blade.php
    │   │       │   ├── login.blade.php
    │   │       │   ├── register.blade.php
    │   │       │   ├── reset-password.blade.php
    │   │       │   └── verify-email.blade.php
    │   │       ├── components/
    │   │       │   ├── application-logo.blade.php
    │   │       │   ├── auth-card.blade.php
    │   │       │   ├── auth-session-status.blade.php
    │   │       │   ├── dropdown-link.blade.php
    │   │       │   ├── dropdown.blade.php
    │   │       │   ├── input-error.blade.php
    │   │       │   ├── input-label.blade.php
    │   │       │   ├── modal.blade.php
    │   │       │   ├── nav-link.blade.php
    │   │       │   ├── primary-button.blade.php
    │   │       │   ├── responsive-nav-link.blade.php
    │   │       │   └── text-input.blade.php
    │   │       ├── dashboard.blade.php
    │   │       ├── layouts/
    │   │       │   ├── app.blade.php
    │   │       │   ├── guest.blade.php
    │   │       │   └── navigation.blade.php
    │   │       ├── livewire/
    │   │       │   ├── auth/
    │   │       │   │   └── register-user.blade.php
    │   │       │   ├── process-airtime.blade.php
    │   │       │   ├── process-bank.blade.php
    │   │       │   └── username.blade.php
    │   │       ├── payout/
    │   │       │   ├── airtime.blade.php
    │   │       │   ├── bank.blade.php
    │   │       │   └── history.blade.php
    │   │       ├── profile/
    │   │       │   ├── index.blade.php
    │   │       │   └── show.blade.php
    │   │       ├── transfer/
    │   │       │   ├── create.blade.php
    │   │       │   └── history.blade.php
    │   │       └── welcome.blade.php
    │   ├── routes/
    │   │   ├── api.php
    │   │   ├── auth.php
    │   │   ├── channels.php
    │   │   ├── console.php
    │   │   └── web.php
    │   ├── storage/
    │   │   ├── app/
    │   │   │   └── .gitignore
    │   │   └── framework/
    │   │       ├── .gitignore
    │   │       ├── cache/
    │   │       │   └── .gitignore
    │   │       ├── sessions/
    │   │       │   └── .gitignore
    │   │       ├── testing/
    │   │       │   └── .gitignore
    │   │       └── views/
    │   │           └── .gitignore
    │   ├── tailwind.config.js
    │   ├── tests/
    │   │   ├── CreatesApplication.php
    │   │   ├── Feature/
    │   │   │   ├── Auth/
    │   │   │   │   ├── AuthenticationTest.php
    │   │   │   │   ├── EmailVerificationTest.php
    │   │   │   │   ├── PasswordConfirmationTest.php
    │   │   │   │   ├── PasswordResetTest.php
    │   │   │   │   └── RegistrationTest.php
    │   │   │   └── ExampleTest.php
    │   │   ├── TestCase.php
    │   │   └── Unit/
    │   │       └── ExampleTest.php
    │   └── vite.config.js
    ├── chiconnect-mobile-money-payout/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.cjs
    │   ├── src/
    │   │   ├── App.jsx
    │   │   ├── index.css
    │   │   ├── main.jsx
    │   │   └── service/
    │   │       └── fetchApi.js
    │   ├── tailwind.config.cjs
    │   └── vite.config.js
    ├── chimap/
    │   ├── .eslintrc.json
    │   ├── .gitignore
    │   ├── README.md
    │   ├── components/
    │   │   ├── card/
    │   │   │   └── service.card.js
    │   │   └── map/
    │   │       └── global.map.js
    │   ├── helpers/
    │   │   └── query.js
    │   ├── hooks/
    │   │   └── getInfo.js
    │   ├── next.config.js
    │   ├── package.json
    │   ├── pages/
    │   │   ├── _app.js
    │   │   ├── api/
    │   │   │   └── hello.js
    │   │   └── index.js
    │   ├── postcss.config.js
    │   ├── styles/
    │   │   └── globals.css
    │   ├── tailwind.config.js
    │   └── utils/
    │       └── countries.json
    ├── chimoney-discord-bot/
    │   ├── .dockerignore
    │   ├── .gitignore
    │   ├── app.js
    │   ├── bot-client.js
    │   ├── commands/
    │   │   └── sendChimoney.js
    │   ├── controllers/
    │   │   └── webhook.controller.js
    │   ├── deploy-commands.js
    │   ├── dockerfile
    │   ├── index.js
    │   ├── package.json
    │   ├── procfile
    │   ├── readme.md
    │   ├── routes/
    │   │   └── webhooks.js
    │   └── utils/
    │       └── helpers.js
    ├── chimoney-github-bot/
    │   ├── .gitignore
    │   ├── CODE_OF_CONDUCT.md
    │   ├── CONTRIBUTING.md
    │   ├── Dockerfile
    │   ├── LICENSE
    │   ├── README.md
    │   ├── app.yml
    │   ├── index.js
    │   ├── package.json
    │   ├── test/
    │   │   ├── fixtures/
    │   │   │   └── issues.opened.json
    │   │   └── index.test.js
    │   └── utils.js
    ├── chimoney-interledger-wallet-transfer/
    │   ├── .gitignore
    │   ├── CONTRIBUTING.md
    │   ├── PROJECT_SUMMARY.md
    │   ├── README.md
    │   ├── SCREENSHOTS.md
    │   ├── __tests__/
    │   │   ├── TransferForm.test.tsx
    │   │   ├── api/
    │   │   │   └── transfer.test.ts
    │   │   └── utils.test.ts
    │   ├── app/
    │   │   ├── api/
    │   │   │   ├── transactions/
    │   │   │   │   └── route.ts
    │   │   │   └── transfer/
    │   │   │       └── route.ts
    │   │   ├── globals.css
    │   │   ├── layout.tsx
    │   │   └── page.tsx
    │   ├── components/
    │   │   ├── Providers.tsx
    │   │   ├── TransactionHistory.tsx
    │   │   ├── TransferForm.tsx
    │   │   └── ui/
    │   │       ├── button.tsx
    │   │       ├── card.tsx
    │   │       ├── dialog.tsx
    │   │       ├── input.tsx
    │   │       └── label.tsx
    │   ├── lib/
    │   │   └── utils.ts
    │   ├── next.config.js
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── tailwind.config.js
    │   ├── tsconfig.json
    │   ├── types/
    │   │   └── index.ts
    │   ├── vitest.config.ts
    │   └── vitest.setup.ts
    ├── chimoney-js/
    │   ├── .gitignore
    │   ├── Errors.js
    │   ├── index.js
    │   ├── modules/
    │   │   ├── Account.js
    │   │   ├── Info.js
    │   │   ├── MobileMoney.js
    │   │   ├── Payouts.js
    │   │   ├── Redeem.js
    │   │   ├── SubAccount.js
    │   │   └── Wallet.js
    │   ├── package.json
    │   ├── readme.md
    │   ├── tests/
    │   │   ├── account.test.js
    │   │   ├── info.test.js
    │   │   ├── mobileMoney.test.js
    │   │   ├── payouts.test.js
    │   │   ├── redeem.test.js
    │   │   ├── subAccount.test.js
    │   │   └── wallet.test.js
    │   └── utils/
    │       └── helpers.js
    ├── chimoney-lib/
    │   ├── .editorconfig
    │   ├── .gitignore
    │   ├── .vscode/
    │   │   ├── extensions.json
    │   │   ├── launch.json
    │   │   └── tasks.json
    │   ├── README.md
    │   ├── angular.json
    │   ├── package.json
    │   ├── projects/
    │   │   └── ngx-chimoney-airtime-payouts/
    │   │       ├── README.md
    │   │       ├── ng-package.json
    │   │       ├── package.json
    │   │       ├── src/
    │   │       │   ├── lib/
    │   │       │   │   ├── components/
    │   │       │   │   │   ├── airtime/
    │   │       │   │   │   │   ├── airtime.component.css
    │   │       │   │   │   │   ├── airtime.component.html
    │   │       │   │   │   │   ├── airtime.component.spec.ts
    │   │       │   │   │   │   └── airtime.component.ts
    │   │       │   │   │   ├── bank/
    │   │       │   │   │   │   ├── bank.component.css
    │   │       │   │   │   │   ├── bank.component.html
    │   │       │   │   │   │   ├── bank.component.spec.ts
    │   │       │   │   │   │   └── bank.component.ts
    │   │       │   │   │   └── payouts/
    │   │       │   │   │       ├── payouts.component.css
    │   │       │   │   │       ├── payouts.component.html
    │   │       │   │   │       ├── payouts.component.spec.ts
    │   │       │   │   │       └── payouts.component.ts
    │   │       │   │   ├── ngx-chimoney-airtime-payouts.component.spec.ts
    │   │       │   │   ├── ngx-chimoney-airtime-payouts.component.ts
    │   │       │   │   ├── ngx-chimoney-airtime-payouts.service.spec.ts
    │   │       │   │   └── ngx-chimoney-airtime-payouts.service.ts
    │   │       │   └── public-api.ts
    │   │       ├── tsconfig.lib.json
    │   │       ├── tsconfig.lib.prod.json
    │   │       └── tsconfig.spec.json
    │   └── tsconfig.json
    ├── chimoney-payout-airtime/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── package.json
    │   ├── public/
    │   │   ├── index.html
    │   │   ├── manifest.json
    │   │   └── robots.txt
    │   └── src/
    │       ├── App.css
    │       ├── App.js
    │       ├── PayChimoney.js
    │       ├── index.css
    │       ├── index.js
    │       ├── reportWebVitals.js
    │       └── style.js
    ├── chimoney-react-components/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── src/
    │   │   ├── ChimoneyReactComponents.jsx
    │   │   ├── components/
    │   │   │   ├── ChimoneyAccountUpdate.tsx
    │   │   │   ├── ChimoneyPaymentForm.tsx
    │   │   │   ├── ChimoneyTransactionList.tsx
    │   │   │   ├── chimoneyButton.tsx
    │   │   │   └── chimoneyInput.tsx
    │   │   ├── index.js
    │   │   └── styles/
    │   │       └── tailwind.css
    │   ├── tailwind.config.js
    │   └── vite.config.js
    ├── chimoney-redeem-airtime/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── package.json
    │   ├── public/
    │   │   ├── index.html
    │   │   ├── manifest.json
    │   │   └── robots.txt
    │   └── src/
    │       ├── App.css
    │       ├── App.js
    │       ├── components/
    │       │   ├── Home.js
    │       │   └── Redeem.js
    │       ├── index.css
    │       ├── index.js
    │       └── reportWebVitals.js
    ├── chimoney-telegram/
    │   ├── package.json
    │   └── src/
    │       ├── payments.json
    │       ├── start.js
    │       └── users.json
    ├── chispend-presentation/
    │   └── README.md
    ├── chispend-proposed-copy/
    │   └── README.md
    ├── chispend_app/
    │   ├── .gitignore
    │   ├── .metadata
    │   ├── README.md
    │   ├── analysis_options.yaml
    │   ├── android/
    │   │   ├── .gitignore
    │   │   ├── app/
    │   │   │   ├── build.gradle
    │   │   │   └── src/
    │   │   │       ├── debug/
    │   │   │       │   └── AndroidManifest.xml
    │   │   │       ├── main/
    │   │   │       │   ├── AndroidManifest.xml
    │   │   │       │   ├── kotlin/
    │   │   │       │   │   └── com/
    │   │   │       │   │       └── example/
    │   │   │       │   │           └── chispend_app/
    │   │   │       │   │               └── MainActivity.kt
    │   │   │       │   └── res/
    │   │   │       │       ├── drawable/
    │   │   │       │       │   └── launch_background.xml
    │   │   │       │       ├── drawable-v21/
    │   │   │       │       │   └── launch_background.xml
    │   │   │       │       ├── values/
    │   │   │       │       │   └── styles.xml
    │   │   │       │       └── values-night/
    │   │   │       │           └── styles.xml
    │   │   │       └── profile/
    │   │   │           └── AndroidManifest.xml
    │   │   ├── build.gradle
    │   │   ├── gradle/
    │   │   │   └── wrapper/
    │   │   │       └── gradle-wrapper.properties
    │   │   ├── gradle.properties
    │   │   └── settings.gradle
    │   ├── ios/
    │   │   ├── .gitignore
    │   │   ├── Flutter/
    │   │   │   ├── AppFrameworkInfo.plist
    │   │   │   ├── Debug.xcconfig
    │   │   │   └── Release.xcconfig
    │   │   ├── Runner/
    │   │   │   ├── AppDelegate.swift
    │   │   │   ├── Assets.xcassets/
    │   │   │   │   ├── AppIcon.appiconset/
    │   │   │   │   │   └── Contents.json
    │   │   │   │   └── LaunchImage.imageset/
    │   │   │   │       ├── Contents.json
    │   │   │   │       └── README.md
    │   │   │   ├── Base.lproj/
    │   │   │   │   ├── LaunchScreen.storyboard
    │   │   │   │   └── Main.storyboard
    │   │   │   ├── Info.plist
    │   │   │   └── Runner-Bridging-Header.h
    │   │   ├── Runner.xcodeproj/
    │   │   │   ├── project.pbxproj
    │   │   │   ├── project.xcworkspace/
    │   │   │   │   ├── contents.xcworkspacedata
    │   │   │   │   └── xcshareddata/
    │   │   │   │       ├── IDEWorkspaceChecks.plist
    │   │   │   │       └── WorkspaceSettings.xcsettings
    │   │   │   └── xcshareddata/
    │   │   │       └── xcschemes/
    │   │   │           └── Runner.xcscheme
    │   │   └── Runner.xcworkspace/
    │   │       ├── contents.xcworkspacedata
    │   │       └── xcshareddata/
    │   │           ├── IDEWorkspaceChecks.plist
    │   │           └── WorkspaceSettings.xcsettings
    │   ├── lib/
    │   │   ├── data/
    │   │   │   ├── common/
    │   │   │   │   └── helper_functions.dart
    │   │   │   ├── constant/
    │   │   │   │   └── api_constants.dart
    │   │   │   ├── models/
    │   │   │   │   └── api/
    │   │   │   │       └── initiate_chimoney.dart
    │   │   │   └── services/
    │   │   │       ├── api/
    │   │   │       │   ├── payout.dart
    │   │   │       │   └── request_helper/
    │   │   │       │       └── index.dart
    │   │   │       └── navigation/
    │   │   │           └── index.dart
    │   │   ├── di/
    │   │   │   └── get_it.dart
    │   │   ├── main.dart
    │   │   └── presentation/
    │   │       └── ui/
    │   │           └── webview/
    │   │               └── index.dart
    │   ├── pubspec.yaml
    │   ├── test/
    │   │   └── widget_test.dart
    │   ├── web/
    │   │   ├── index.html
    │   │   └── manifest.json
    │   └── windows/
    │       ├── .gitignore
    │       ├── CMakeLists.txt
    │       ├── flutter/
    │       │   ├── CMakeLists.txt
    │       │   ├── generated_plugin_registrant.cc
    │       │   ├── generated_plugin_registrant.h
    │       │   └── generated_plugins.cmake
    │       └── runner/
    │           ├── CMakeLists.txt
    │           ├── Runner.rc
    │           ├── flutter_window.cpp
    │           ├── flutter_window.h
    │           ├── main.cpp
    │           ├── resource.h
    │           ├── runner.exe.manifest
    │           ├── utils.cpp
    │           ├── utils.h
    │           ├── win32_window.cpp
    │           └── win32_window.h
    ├── chispend_widget/
    │   ├── .flutter-plugins
    │   ├── .flutter-plugins-dependencies
    │   ├── .gitignore
    │   ├── .metadata
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── analysis_options.yaml
    │   ├── lib/
    │   │   └── chispend_widget.dart
    │   ├── pubspec.yaml
    │   └── test/
    │       └── chispend_widget_test.dart
    ├── github-bot/
    │   ├── .github/
    │   │   └── workflows/
    │   │       └── main.yml
    │   ├── index.js
    │   ├── package.json
    │   ├── payments.json
    │   └── readme.md
    ├── pay-paddy/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.cjs
    │   ├── src/
    │   │   ├── App.jsx
    │   │   ├── components/
    │   │   │   ├── Banner.jsx
    │   │   │   ├── Feature.jsx
    │   │   │   ├── Footer.jsx
    │   │   │   ├── Hero.jsx
    │   │   │   ├── Layout.jsx
    │   │   │   ├── MoreInfo.jsx
    │   │   │   ├── Navbar.jsx
    │   │   │   └── auth/
    │   │   │       ├── LoginModal.jsx
    │   │   │       └── SignUpModal.jsx
    │   │   ├── firebase/
    │   │   │   └── firebase-config.js
    │   │   ├── index.css
    │   │   ├── main.jsx
    │   │   ├── pages/
    │   │   │   └── Home.jsx
    │   │   ├── service/
    │   │   │   └── createAccount.js
    │   │   └── store/
    │   │       ├── modalReducer.js
    │   │       └── userReducer.js
    │   ├── tailwind.config.cjs
    │   ├── vite.config.js
    │   └── vite.config.js.timestamp-1666936810916.mjs
    ├── readme-translator/
    │   ├── .github/
    │   │   └── workflow/
    │   │       └── translate.yml
    │   └── README.md
    ├── resolution_2025/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── components.json
    │   ├── next.config.ts
    │   ├── package.json
    │   ├── postcss.config.mjs
    │   ├── src/
    │   │   ├── app/
    │   │   │   ├── auth/
    │   │   │   │   └── page.tsx
    │   │   │   ├── globals.css
    │   │   │   ├── layout.tsx
    │   │   │   ├── page.tsx
    │   │   │   └── resolutions/
    │   │   │       └── page.tsx
    │   │   ├── components/
    │   │   │   └── ui/
    │   │   │       ├── alert.tsx
    │   │   │       ├── badge.tsx
    │   │   │       ├── button.tsx
    │   │   │       ├── card.tsx
    │   │   │       ├── input.tsx
    │   │   │       ├── label.tsx
    │   │   │       └── progress.tsx
    │   │   └── lib/
    │   │       └── utils.ts
    │   ├── tailwind.config.ts
    │   └── tsconfig.json
    ├── secret-santa/
    │   ├── .gitignore
    │   ├── README.md
    │   ├── app/
    │   │   ├── globals.css
    │   │   ├── home/
    │   │   │   └── page.js
    │   │   ├── layout.js
    │   │   └── page.js
    │   ├── components/
    │   │   ├── PaymentPopup.js
    │   │   ├── chimoneypaymentpopup.js
    │   │   └── paymentverification.js
    │   ├── jsconfig.json
    │   ├── next.config.js
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── tailwind.config.js
    │   └── utility/
    │       └── index.js
    ├── simple_blog/
    │   └── README.md
    ├── telegram-bot-node/
    │   ├── package.json
    │   └── src/
    │       ├── payments.json
    │       ├── start.js
    │       └── users.json
    └── whatsapp-bot-node/
        ├── index.js
        ├── package.json
        ├── payments.json
        └── readme.md
Download .txt
SYMBOL INDEX (543 symbols across 181 files)

FILE: .github/scripts/badge-automation.js
  function main (line 5) | async function main() {

FILE: ai-passport-and-wallet-examples/crewai-support-agent/support_agent.py
  class ChimoneyWallet (line 34) | class ChimoneyWallet:
    method __init__ (line 37) | def __init__(self, api_key: str, base_url: str):
    method create_wallet (line 48) | def create_wallet(self, name: str, email: str, daily_refund_limit: flo...
    method process_refund (line 77) | def process_refund(self, customer_email: str, amount: float, reason: s...
    method get_audit_trail (line 133) | def get_audit_trail(self) -> List[Dict]:
    method get_transaction_by_id (line 137) | def get_transaction_by_id(self, issue_id: str) -> Dict:
  class SupportAgent (line 147) | class SupportAgent:
    method __init__ (line 150) | def __init__(self):
    method initialize_wallet (line 156) | def initialize_wallet(self):
    method _create_crew (line 171) | def _create_crew(self) -> Crew:
    method process_refund_request (line 204) | def process_refund_request(self, customer_email: str, amount: float, r...
    method get_daily_summary (line 226) | def get_daily_summary(self) -> Dict:
    method get_audit_trail (line 249) | def get_audit_trail(self) -> List[Dict]:
  function main (line 254) | def main():

FILE: ai-passport-and-wallet-examples/data-processing-agent/data_agent.py
  class ChimoneyWallet (line 28) | class ChimoneyWallet:
    method __init__ (line 31) | def __init__(self, api_key: str, base_url: str):
    method create_wallet (line 41) | def create_wallet(self, name: str, email: str, daily_limit: float = 10...
    method transfer_to_agent (line 72) | def transfer_to_agent(self, destination_wallet_id: str, amount: float,...
    method pay_agent_via_chimoney (line 94) | def pay_agent_via_chimoney(self, amount: float, agent_email: str, task...
    method pay_agent_via_interledger (line 128) | def pay_agent_via_interledger(self, amount: float, interledger_address...
    method get_transactions (line 151) | def get_transactions(self, limit: int = 10) -> List[Dict]:
  class WorkerAgent (line 172) | class WorkerAgent:
    method __init__ (line 175) | def __init__(self, name: str, email: str, specialization: str, wallet:...
    method initialize (line 182) | def initialize(self):
    method process_task (line 193) | def process_task(self, task: str) -> Dict:
  class DataProcessingAgent (line 205) | class DataProcessingAgent:
    method __init__ (line 208) | def __init__(self):
    method initialize_wallet (line 214) | def initialize_wallet(self):
    method register_worker_agent (line 229) | def register_worker_agent(self, name: str, email: str, specialization:...
    method delegate_task (line 238) | def delegate_task(self, task: str, worker_agent_name: str, payment_amo...
    method get_transaction_history (line 286) | def get_transaction_history(self) -> List[Dict]:
  function main (line 291) | def main():

FILE: ai-passport-and-wallet-examples/langchain-research-agent/research_agent.py
  class ChimoneyWallet (line 37) | class ChimoneyWallet:
    method __init__ (line 40) | def __init__(self, api_key: str, base_url: str):
    method create_wallet (line 50) | def create_wallet(self, name: str, email: str, daily_limit: float = 50...
    method issue_payment_pointer (line 83) | def issue_payment_pointer(self, user_id: str, ilp_username: str) -> Dict:
    method pay_for_api_access (line 95) | def pay_for_api_access(self, amount: float, api_name: str, recipient_e...
    method get_transaction_history (line 130) | def get_transaction_history(self, limit: int = 10) -> List[Dict]:
  class ResearchAgent (line 151) | class ResearchAgent:
    method __init__ (line 154) | def __init__(self):
    method initialize_wallet (line 161) | def initialize_wallet(self):
    method _create_tools (line 185) | def _create_tools(self) -> List[Tool]:
    method _create_agent (line 261) | def _create_agent(self) -> AgentExecutor:
    method query (line 278) | def query(self, question: str) -> str:
  function main (line 287) | def main():

FILE: submissions/Chimoney-Python/chimoney/AI.py
  class AI (line 3) | class AI(BaseAPI):
    method invoice_gen (line 12) | def invoice_gen(self, instruction: str):

FILE: submissions/Chimoney-Python/chimoney/Account.py
  class Account (line 4) | class Account(BaseAPI):
    method transactions_by_issue_id (line 18) | def transactions_by_issue_id(self, issue_id, sub_account=None) -> dict:
    method all_transaction (line 44) | def all_transaction(self, sub_account=None) -> dict:
    method transaction_by_id (line 64) | def transaction_by_id(self, transaction_id, sub_account=None) -> dict:
    method account_transfer (line 90) | def account_transfer(self, receiver, amount, wallet, sub_account=None)...
    method delete_unpaid_transaction (line 130) | def delete_unpaid_transaction(self, transaction_id, sub_account=None):

FILE: submissions/Chimoney-Python/chimoney/Base.py
  class APIResponse (line 13) | class APIResponse:
    method __init__ (line 32) | def __init__(self, data, status_code, success=True, error=None):
  class BaseAPI (line 38) | class BaseAPI(object):
    method __init__ (line 48) | def __init__(self):
    method headers (line 69) | def headers(self):
    method parse_json (line 82) | def parse_json(self, response):
    method _url (line 96) | def _url(self, path):
    method _handle_request (line 108) | def _handle_request(

FILE: submissions/Chimoney-Python/chimoney/Chimoney.py
  class Chimoney (line 45) | class Chimoney:
    method __init__ (line 79) | def __init__(self, sandbox=False):
    method set_api_key (line 93) | def set_api_key(cls, auth_key):

FILE: submissions/Chimoney-Python/chimoney/Errors.py
  class PyChimoneyError (line 1) | class PyChimoneyError(Exception):
  class MissingAuthKeyError (line 7) | class MissingAuthKeyError(PyChimoneyError):
  class InvalidMethodError (line 13) | class InvalidMethodError(PyChimoneyError):
  class Error (line 19) | class Error(PyChimoneyError):

FILE: submissions/Chimoney-Python/chimoney/Info.py
  class Info (line 4) | class Info(BaseAPI):
    method airtime_countries (line 9) | def airtime_countries(self) -> dict:
    method assets (line 18) | def assets(self, country_code=None) -> dict:
    method banks (line 35) | def banks(self, country="NG") -> dict:
    method local_ammount_in_usd (line 56) | def local_ammount_in_usd(self, source_currency, ammount_in_local):
    method mobile_money_codes (line 86) | def mobile_money_codes(self):
    method usd_to_local (line 92) | def usd_to_local(self, destination_currency, ammount_in_usd):
    method get_exchange_rates (line 123) | def get_exchange_rates(self) -> dict:
    method get_bank_branches (line 132) | def get_bank_branches(self, bank_code: str) -> dict:
    method verify_bank_account_number (line 151) | def verify_bank_account_number(self, account_number: list) -> dict:

FILE: submissions/Chimoney-Python/chimoney/Payments.py
  class Payments (line 4) | class Payments(BaseAPI):
    method initiate_payment (line 9) | def initiate_payment(
    method verify_payment (line 42) | def verify_payment(self, sub_account, payment_id):
    method simulate_transaction (line 55) | def simulate_transaction(self, issue_id, status, sub_account):

FILE: submissions/Chimoney-Python/chimoney/Payouts.py
  class Payouts (line 4) | class Payouts(BaseAPI):
    method airtime (line 9) | def airtime(self, airtimes, subaccount=None, turn_off_notification=None):
    method bank (line 43) | def bank(self, banks, subaccount=None, turn_off_notification=None):
    method chimoney (line 81) | def chimoney(self, chimoneys, subaccount=None, turn_off_notification=N...
    method mobile_money (line 115) | def mobile_money(self, momos, subaccount=None, turn_off_notification=N...
    method gift_card (line 151) | def gift_card(self, gift_cards, subaccount=None, turn_off_notification...
    method status (line 189) | def status(self, chi_ref, subaccount=None):
    method initiate_chimoney (line 210) | def initiate_chimoney(
    method wallet (line 279) | def wallet(self, subaccount=None, turn_off_notifications=None, wallets...

FILE: submissions/Chimoney-Python/chimoney/Redeem.py
  class Redeem (line 4) | class Redeem(BaseAPI):
    method airtime (line 9) | def airtime(
    method any (line 37) | def any(
    method chimoney (line 76) | def chimoney(self, chimoneys, sub_account=None):
    method giftcard (line 104) | def giftcard(self, chi_ref, redeem_options, sub_account=None):
    method mobile_money (line 130) | def mobile_money(self, chi_ref, redeem_options, sub_account=None):

FILE: submissions/Chimoney-Python/chimoney/SubAccount.py
  class SubAccount (line 4) | class SubAccount(BaseAPI):
    method create (line 9) | def create(self, email, name):
    method delete (line 30) | def delete(self, user_id):
    method get_detials (line 47) | def get_detials(self, user_id):
    method list (line 64) | def list(self):

FILE: submissions/Chimoney-Python/chimoney/Wallet.py
  class Wallet (line 4) | class Wallet(BaseAPI):
    method list (line 9) | def list(self, subaccount=None):
    method detials (line 25) | def detials(self, wallet_id, subaccount=None):
    method transfer (line 45) | def transfer(self, receiver_id, wallet_type, amount, subaccount=None):

FILE: submissions/Chimoney-Python/examples/chimoney_examples.py
  function test (line 9) | def test():
  function avaliable_countries (line 14) | def avaliable_countries():

FILE: submissions/Chimoney-Slackbot-V2/modules/choices.py
  class ValidatorRegexFormats (line 1) | class ValidatorRegexFormats:
    method __init__ (line 2) | def __init__(self):
    method get_regex (line 9) | def get_regex(self, regex_format):

FILE: submissions/Chimoney-Slackbot-V2/modules/giveaway.py
  function initiate_chimoney_async (line 16) | async def initiate_chimoney_async(checkout_values):
  function giveaway_with_tagged_users (line 20) | async def giveaway_with_tagged_users(client, text):
  function random_giveaway (line 72) | async def random_giveaway(client, text, channel_id):
  function clean_amount (line 137) | def clean_amount(amount):
  function get_channel_users (line 144) | async def get_channel_users(client, channel_id):
  function get_user_email (line 153) | async def get_user_email(client, user_id):

FILE: submissions/Chimoney-Slackbot-V2/modules/sendchimoney.py
  function initiate_chimoney_async (line 23) | async def initiate_chimoney_async(checkout_values):
  function send_chimoney (line 27) | async def send_chimoney(client, text, team_id):
  function clean_amount (line 76) | def clean_amount(amount):
  function get_user_email (line 91) | def get_user_email(client, user_id):
  function get_user_email_from_username (line 110) | async def get_user_email_from_username(client, username, workspace_id):
  function clean_username (line 157) | def clean_username(name):

FILE: submissions/Chimoney-Slackbot-V2/modules/validators.py
  function validate_sendchimoney_text (line 5) | def validate_sendchimoney_text(text):
  function validate_giveaway_text (line 19) | def validate_giveaway_text(text):

FILE: submissions/Chimoney-Slackbot-V2/slackbot.py
  function send_chimoney (line 52) | async def send_chimoney(ack, say, command, client, logger):
  function giveaway (line 84) | async def giveaway(ack, say, command, client, logger):
  function event_test (line 150) | async def event_test(body, say, logger):

FILE: submissions/Chimoney-Slackbot-V2/tests/validator_tests.py
  function test_validate_sendchimoney_text (line 30) | def test_validate_sendchimoney_text(test_input, expected):

FILE: submissions/Chimoney-Slackbot/main.py
  function main (line 25) | def main():

FILE: submissions/Chimoney-Slackbot/utils/app/models.py
  class AccessToken (line 4) | class AccessToken(db.Model):
    method __init__ (line 10) | def __init__(self, team_id, access_token) -> None:
    method __repr__ (line 14) | def __repr__(self) -> str:
  function init_db (line 18) | def init_db():

FILE: submissions/Chimoney-Slackbot/utils/app/views.py
  function oauth_redirect (line 16) | def oauth_redirect():
  function oauth_callback (line 24) | def oauth_callback():
  function get_all_access_token (line 62) | def get_all_access_token():

FILE: submissions/Chimoney-Slackbot/utils/collation.py
  class SlackBot (line 3) | class SlackBot:
    method __init__ (line 4) | def __init__(self, api_key):
    method handle_command (line 7) | def handle_command(self):
    method parse_bot_command (line 10) | def parse_bot_command(self):
    method get_mentioned_user_email (line 13) | def get_mentioned_user_email(self):
    method start_bot (line 16) | def start_bot(self):

FILE: submissions/Chimoney-Slackbot/utils/functions.py
  function get_user_email (line 5) | def get_user_email(client, user_id):
  function get_bot_id (line 10) | def get_bot_id(client):
  function is_mention (line 14) | def is_mention(client, event, bot_id=None):
  function is_valid_command (line 20) | def is_valid_command(client, event, bot_id=None):
  function send_chimoney (line 26) | def send_chimoney(client, text):

FILE: submissions/Chimoney-Slackbot/utils/rtm.py
  function start_rtm (line 13) | def start_rtm(token):
  function run_processes (line 49) | def run_processes():

FILE: submissions/Chisend/bots/chisend.py
  class ChiSend (line 18) | class ChiSend(object):
    method __init__ (line 19) | def __init__(
    method clear_search_terms (line 40) | def clear_search_terms(self):
    method add_search_term (line 44) | def add_search_term(self, term):
    method remove_search_term (line 48) | def remove_search_term(self, term):
    method start_stream (line 52) | def start_stream(self):
    class MyStream (line 68) | class MyStream(tweepy.StreamingClient):
      method __init__ (line 69) | def __init__(
      method on_connect (line 113) | def on_connect(self):
      method on_exception (line 117) | def on_exception(self, exception):
      method on_timeout (line 122) | def on_timeout(self):
      method on_error (line 127) | def on_error(self, error):
      method on_disconnect (line 132) | def on_disconnect(self):
      method send_tweet (line 135) | def send_tweet(self, tweet, reply_id):
      method send_dm (line 152) | def send_dm(self, user_id, message):
      method perform_task (line 169) | def perform_task(self, tweet_content):
      method on_tweet (line 217) | def on_tweet(self, tweet):

FILE: submissions/Chisend/bots/utils.py
  function is_following (line 1) | def is_following(api: object, id_1: int, id_2: int) -> bool:

FILE: submissions/chiconnect-bank-api-payout/src/App.jsx
  function App (line 5) | function App() {

FILE: submissions/chiconnect-bank-api-payout/src/service/fetchApi.js
  constant API_KEY (line 1) | const API_KEY = `${import.meta.env.VITE_API_KEY}`

FILE: submissions/chiconnect-giftcard-payout/src/App.jsx
  function App (line 6) | function App() {

FILE: submissions/chiconnect-giftcard-payout/src/service/fetchApi.js
  constant API_KEY (line 1) | const API_KEY = `${import.meta.env.VITE_API_KEY}`

FILE: submissions/chiconnect-laravel-web-app/app/Console/Kernel.php
  class Kernel (line 8) | class Kernel extends ConsoleKernel
    method schedule (line 16) | protected function schedule(Schedule $schedule)
    method commands (line 26) | protected function commands()

FILE: submissions/chiconnect-laravel-web-app/app/Exceptions/Handler.php
  class Handler (line 8) | class Handler extends ExceptionHandler
    method register (line 44) | public function register()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/AccountController.php
  class AccountController (line 11) | class AccountController extends Controller
    method topUpForm (line 13) | public function topUpForm(User $user)
    method topUp (line 20) | public function topUp(Request $request)
    method createTransfer (line 44) | public function createTransfer()
    method processTransfer (line 53) | public function processTransfer(Request $request)
    method transferHistory (line 80) | public function transferHistory()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/AuthenticatedSessionController.php
  class AuthenticatedSessionController (line 11) | class AuthenticatedSessionController extends Controller
    method create (line 18) | public function create()
    method store (line 29) | public function store(LoginRequest $request)
    method destroy (line 44) | public function destroy(Request $request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/ConfirmablePasswordController.php
  class ConfirmablePasswordController (line 11) | class ConfirmablePasswordController extends Controller
    method show (line 18) | public function show()
    method store (line 29) | public function store(Request $request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/EmailVerificationNotificationController.php
  class EmailVerificationNotificationController (line 9) | class EmailVerificationNotificationController extends Controller
    method store (line 17) | public function store(Request $request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/EmailVerificationPromptController.php
  class EmailVerificationPromptController (line 9) | class EmailVerificationPromptController extends Controller
    method __invoke (line 17) | public function __invoke(Request $request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/NewPasswordController.php
  class NewPasswordController (line 13) | class NewPasswordController extends Controller
    method create (line 21) | public function create(Request $request)
    method store (line 34) | public function store(Request $request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/PasswordResetLinkController.php
  class PasswordResetLinkController (line 9) | class PasswordResetLinkController extends Controller
    method create (line 16) | public function create()
    method store (line 29) | public function store(Request $request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/RegisteredUserController.php
  class RegisteredUserController (line 17) | class RegisteredUserController extends Controller
    method create (line 24) | public function create()
    method store (line 37) | public function store(Request $request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/VerifyEmailController.php
  class VerifyEmailController (line 10) | class VerifyEmailController extends Controller
    method __invoke (line 18) | public function __invoke(EmailVerificationRequest $request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/Controller.php
  class Controller (line 10) | class Controller extends BaseController

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/PayoutController.php
  class PayoutController (line 9) | class PayoutController extends Controller
    method history (line 11) | public function history()
    method createAirtime (line 18) | public function createAirtime()
    method createBank (line 27) | public function createBank()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Controllers/ProfileController.php
  class ProfileController (line 9) | class ProfileController extends Controller
    method index (line 11) | public function index()
    method show (line 18) | public function show(User $user)
    method dashboard (line 31) | public function dashboard()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Kernel.php
  class Kernel (line 7) | class Kernel extends HttpKernel

FILE: submissions/chiconnect-laravel-web-app/app/Http/Livewire/Auth/RegisterUser.php
  class RegisterUser (line 8) | class RegisterUser extends Component
    method mount (line 12) | public function mount()
    method updatedUsername (line 17) | public function updatedUsername()
    method render (line 24) | public function render()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Livewire/ProcessAirtime.php
  class ProcessAirtime (line 11) | class ProcessAirtime extends Component
    method mount (line 19) | public function mount()
    method submit (line 24) | public function submit()
    method render (line 51) | public function render()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Livewire/ProcessBank.php
  class ProcessBank (line 13) | class ProcessBank extends Component
    method mount (line 24) | public function mount()
    method updatedCountry (line 29) | public function updatedCountry()
    method updatedBank (line 43) | public function updatedBank()
    method updatedAccount (line 48) | public function updatedAccount()
    method confirmAccount (line 54) | public function confirmAccount()
    method submit (line 66) | public function submit()
    method render (line 104) | public function render()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Livewire/Username.php
  class Username (line 8) | class Username extends Component
    method mount (line 14) | public function mount()
    method selectUser (line 19) | public function selectUser($username)
    method updatedSearch (line 26) | public function updatedSearch()
    method render (line 36) | public function render()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/Authenticate.php
  class Authenticate (line 7) | class Authenticate extends Middleware
    method redirectTo (line 15) | protected function redirectTo($request)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/EncryptCookies.php
  class EncryptCookies (line 7) | class EncryptCookies extends Middleware

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/PreventRequestsDuringMaintenance.php
  class PreventRequestsDuringMaintenance (line 7) | class PreventRequestsDuringMaintenance extends Middleware

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/RedirectIfAuthenticated.php
  class RedirectIfAuthenticated (line 10) | class RedirectIfAuthenticated
    method handle (line 20) | public function handle(Request $request, Closure $next, ...$guards)

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/TrimStrings.php
  class TrimStrings (line 7) | class TrimStrings extends Middleware

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/TrustHosts.php
  class TrustHosts (line 7) | class TrustHosts extends Middleware
    method hosts (line 14) | public function hosts()

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/TrustProxies.php
  class TrustProxies (line 8) | class TrustProxies extends Middleware

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/ValidateSignature.php
  class ValidateSignature (line 7) | class ValidateSignature extends Middleware

FILE: submissions/chiconnect-laravel-web-app/app/Http/Middleware/VerifyCsrfToken.php
  class VerifyCsrfToken (line 7) | class VerifyCsrfToken extends Middleware

FILE: submissions/chiconnect-laravel-web-app/app/Http/Requests/Auth/LoginRequest.php
  class LoginRequest (line 12) | class LoginRequest extends FormRequest
    method authorize (line 19) | public function authorize()
    method rules (line 29) | public function rules()
    method authenticate (line 44) | public function authenticate()
    method ensureIsNotRateLimited (line 66) | public function ensureIsNotRateLimited()
    method throttleKey (line 89) | public function throttleKey()

FILE: submissions/chiconnect-laravel-web-app/app/Models/Payout.php
  class Payout (line 8) | class Payout extends Model

FILE: submissions/chiconnect-laravel-web-app/app/Models/Transaction.php
  class Transaction (line 8) | class Transaction extends Model
    method to (line 18) | public function to()
    method from (line 23) | public function from()

FILE: submissions/chiconnect-laravel-web-app/app/Models/TransactionReference.php
  class TransactionReference (line 8) | class TransactionReference extends Model

FILE: submissions/chiconnect-laravel-web-app/app/Models/User.php
  class User (line 11) | class User extends Authenticatable

FILE: submissions/chiconnect-laravel-web-app/app/Providers/AppServiceProvider.php
  class AppServiceProvider (line 8) | class AppServiceProvider extends ServiceProvider
    method register (line 15) | public function register()
    method boot (line 25) | public function boot()

FILE: submissions/chiconnect-laravel-web-app/app/Providers/AuthServiceProvider.php
  class AuthServiceProvider (line 8) | class AuthServiceProvider extends ServiceProvider
    method boot (line 24) | public function boot()

FILE: submissions/chiconnect-laravel-web-app/app/Providers/BroadcastServiceProvider.php
  class BroadcastServiceProvider (line 8) | class BroadcastServiceProvider extends ServiceProvider
    method boot (line 15) | public function boot()

FILE: submissions/chiconnect-laravel-web-app/app/Providers/EventServiceProvider.php
  class EventServiceProvider (line 10) | class EventServiceProvider extends ServiceProvider
    method boot (line 28) | public function boot()
    method shouldDiscoverEvents (line 38) | public function shouldDiscoverEvents()

FILE: submissions/chiconnect-laravel-web-app/app/Providers/RouteServiceProvider.php
  class RouteServiceProvider (line 11) | class RouteServiceProvider extends ServiceProvider
    method boot (line 27) | public function boot()
    method configureRateLimiting (line 46) | protected function configureRateLimiting()

FILE: submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/Account.php
  class Account (line 7) | class Account
    method transfer (line 9) | public static function transfer(string $from = null, string $to, strin...
    method getWallets (line 34) | public static function getWallets(string $sub_account)
    method getWalletByType (line 51) | public static function getWalletByType(string $type, string $sub_account)

FILE: submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/Info.php
  class Info (line 7) | class Info
    method AirtimeCountries (line 9) | public static function AirtimeCountries()
    method CountryBanks (line 24) | public static function CountryBanks(string $country_code)
    method VerifyAccountNumber (line 41) | public static function VerifyAccountNumber(string $country_code, strin...

FILE: submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/Payout.php
  class Payout (line 7) | class Payout
    method Airtime (line 9) | public static function Airtime(string $sub_account, string $country, s...
    method Bank (line 33) | public static function Bank(string $sub_account, string $country, stri...
    method Status (line 61) | public static function Status(string $sub_account, string $chiRef)

FILE: submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/SubAccount.php
  class SubAccount (line 7) | class SubAccount
    method create (line 9) | public static function create(string $name, string $email)

FILE: submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/Wallet.php
  class Wallet (line 7) | class Wallet
    method fetchAll (line 9) | public static function fetchAll(string $sub_account)
    method fetchType (line 26) | public static function fetchType(string $type, string $sub_account)
    method fetchBalance (line 33) | public static function fetchBalance(string $wallet_id, string $sub_acc...

FILE: submissions/chiconnect-laravel-web-app/app/Support/Helpers.php
  function isAdmin (line 4) | function isAdmin()
  function getCountryCodes (line 11) | function getCountryCodes()

FILE: submissions/chiconnect-laravel-web-app/app/View/Components/AppLayout.php
  class AppLayout (line 7) | class AppLayout extends Component
    method render (line 14) | public function render()

FILE: submissions/chiconnect-laravel-web-app/app/View/Components/GuestLayout.php
  class GuestLayout (line 7) | class GuestLayout extends Component
    method render (line 14) | public function render()

FILE: submissions/chiconnect-laravel-web-app/database/factories/UserFactory.php
  class UserFactory (line 11) | class UserFactory extends Factory
    method definition (line 18) | public function definition()
    method unverified (line 34) | public function unverified()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2014_10_12_000000_create_users_table.php
  method up (line 14) | public function up()
  method down (line 35) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2014_10_12_100000_create_password_resets_table.php
  method up (line 14) | public function up()
  method down (line 28) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
  method up (line 14) | public function up()
  method down (line 32) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
  method up (line 14) | public function up()
  method down (line 33) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2022_10_17_080103_add_username_to_users_table.php
  method up (line 14) | public function up()
  method down (line 26) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2022_10_17_194518_create_transactions_table.php
  method up (line 14) | public function up()
  method down (line 32) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2022_10_20_180113_add_chi_wallet_id_to_users_table.php
  method up (line 14) | public function up()
  method down (line 26) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2022_10_20_204612_create_payouts_table.php
  method up (line 14) | public function up()
  method down (line 32) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2022_10_22_165728_create_transaction_references_table.php
  method up (line 14) | public function up()
  method down (line 29) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/migrations/2022_10_22_171931_alter_type_column_in_payouts_table.php
  method up (line 17) | public function up()
  method down (line 27) | public function down()

FILE: submissions/chiconnect-laravel-web-app/database/seeders/DatabaseSeeder.php
  class DatabaseSeeder (line 8) | class DatabaseSeeder extends Seeder
    method run (line 15) | public function run()

FILE: submissions/chiconnect-laravel-web-app/tests/CreatesApplication.php
  type CreatesApplication (line 7) | trait CreatesApplication
    method createApplication (line 14) | public function createApplication()

FILE: submissions/chiconnect-laravel-web-app/tests/Feature/Auth/AuthenticationTest.php
  class AuthenticationTest (line 10) | class AuthenticationTest extends TestCase
    method test_login_screen_can_be_rendered (line 14) | public function test_login_screen_can_be_rendered()
    method test_users_can_authenticate_using_the_login_screen (line 21) | public function test_users_can_authenticate_using_the_login_screen()
    method test_users_can_not_authenticate_with_invalid_password (line 34) | public function test_users_can_not_authenticate_with_invalid_password()

FILE: submissions/chiconnect-laravel-web-app/tests/Feature/Auth/EmailVerificationTest.php
  class EmailVerificationTest (line 13) | class EmailVerificationTest extends TestCase
    method test_email_verification_screen_can_be_rendered (line 17) | public function test_email_verification_screen_can_be_rendered()
    method test_email_can_be_verified (line 28) | public function test_email_can_be_verified()
    method test_email_is_not_verified_with_invalid_hash (line 49) | public function test_email_is_not_verified_with_invalid_hash()

FILE: submissions/chiconnect-laravel-web-app/tests/Feature/Auth/PasswordConfirmationTest.php
  class PasswordConfirmationTest (line 9) | class PasswordConfirmationTest extends TestCase
    method test_confirm_password_screen_can_be_rendered (line 13) | public function test_confirm_password_screen_can_be_rendered()
    method test_password_can_be_confirmed (line 22) | public function test_password_can_be_confirmed()
    method test_password_is_not_confirmed_with_invalid_password (line 34) | public function test_password_is_not_confirmed_with_invalid_password()

FILE: submissions/chiconnect-laravel-web-app/tests/Feature/Auth/PasswordResetTest.php
  class PasswordResetTest (line 11) | class PasswordResetTest extends TestCase
    method test_reset_password_link_screen_can_be_rendered (line 15) | public function test_reset_password_link_screen_can_be_rendered()
    method test_reset_password_link_can_be_requested (line 22) | public function test_reset_password_link_can_be_requested()
    method test_reset_password_screen_can_be_rendered (line 33) | public function test_reset_password_screen_can_be_rendered()
    method test_password_can_be_reset_with_valid_token (line 50) | public function test_password_can_be_reset_with_valid_token()

FILE: submissions/chiconnect-laravel-web-app/tests/Feature/Auth/RegistrationTest.php
  class RegistrationTest (line 9) | class RegistrationTest extends TestCase
    method test_registration_screen_can_be_rendered (line 13) | public function test_registration_screen_can_be_rendered()
    method test_new_users_can_register (line 20) | public function test_new_users_can_register()

FILE: submissions/chiconnect-laravel-web-app/tests/Feature/ExampleTest.php
  class ExampleTest (line 8) | class ExampleTest extends TestCase
    method test_the_application_returns_a_successful_response (line 15) | public function test_the_application_returns_a_successful_response()

FILE: submissions/chiconnect-laravel-web-app/tests/TestCase.php
  class TestCase (line 7) | abstract class TestCase extends BaseTestCase

FILE: submissions/chiconnect-laravel-web-app/tests/Unit/ExampleTest.php
  class ExampleTest (line 7) | class ExampleTest extends TestCase
    method test_that_true_is_true (line 14) | public function test_that_true_is_true()

FILE: submissions/chiconnect-mobile-money-payout/src/App.jsx
  function App (line 6) | function App() {

FILE: submissions/chiconnect-mobile-money-payout/src/service/fetchApi.js
  constant API_KEY (line 1) | const API_KEY = `${import.meta.env.VITE_API_KEY}`

FILE: submissions/chimap/components/card/service.card.js
  function ServiceCard (line 4) | function ServiceCard(props) {

FILE: submissions/chimap/components/map/global.map.js
  function positionChange (line 40) | function positionChange(i) {

FILE: submissions/chimap/helpers/query.js
  function filterByCountry (line 2) | function filterByCountry(param, data) {
  function filterGiftCardByCountry (line 8) | function filterGiftCardByCountry(param, data) {
  function parseAssetType (line 17) | function parseAssetType(data) {
  function filterByType (line 29) | function filterByType(param, data) {

FILE: submissions/chimap/hooks/getInfo.js
  function useInfo (line 5) | function useInfo() {

FILE: submissions/chimap/pages/_app.js
  function MyApp (line 4) | function MyApp({ Component, pageProps }) {

FILE: submissions/chimap/pages/api/hello.js
  function handler (line 3) | function handler(req, res) {

FILE: submissions/chimap/pages/index.js
  function Home (line 4) | function Home() {

FILE: submissions/chimoney-discord-bot/commands/sendChimoney.js
  method execute (line 25) | async execute(interaction, client) {

FILE: submissions/chimoney-discord-bot/controllers/webhook.controller.js
  function handleAsync (line 21) | function handleAsync(callback) {

FILE: submissions/chimoney-discord-bot/utils/helpers.js
  function loadCommands (line 8) | function loadCommands(client) {
  function buildRedeemLink (line 38) | function buildRedeemLink(chiRef) {
  function verifyWebhook (line 56) | function verifyWebhook(body, headers) {
  function buildReceiverMessage (line 83) | function buildReceiverMessage(chimoney, valueInUSD, discordSenderId, chi...
  function buildSenderMessage (line 95) | function buildSenderMessage(valueInUSD, discordReceiver) {

FILE: submissions/chimoney-github-bot/index.js
  constant MIN_PAYOUT (line 12) | const MIN_PAYOUT = 1;
  constant MAX_PAYOUT (line 13) | const MAX_PAYOUT = 100;
  function payoutCommandHandler (line 26) | async function payoutCommandHandler(context, command) {
  function pullRequestClosedHandler (line 92) | async function pullRequestClosedHandler(context) {

FILE: submissions/chimoney-github-bot/utils.js
  function findMaintainer (line 1) | async function findMaintainer(context) {
  function getCollaboratorPermissions (line 19) | async function getCollaboratorPermissions(context, username) {
  function addComment (line 29) | async function addComment(context, body) {
  function resolveUsernameToEmail (line 35) | async function resolveUsernameToEmail(context, username) {
  function extractPayoutCommandArgs (line 40) | function extractPayoutCommandArgs(arguments) {
  function notifyMaintainerOfPaymentStatus (line 50) | async function notifyMaintainerOfPaymentStatus(context, username, amount) {
  function handlePaymentErrors (line 59) | async function handlePaymentErrors(context, error) {

FILE: submissions/chimoney-interledger-wallet-transfer/app/api/transactions/route.ts
  function GET (line 33) | async function GET() {

FILE: submissions/chimoney-interledger-wallet-transfer/app/api/transfer/route.ts
  constant CHIMONEY_API_BASE_URL (line 5) | const CHIMONEY_API_BASE_URL = 'https://api-v2-sandbox.chimoney.io/v0.2.4';
  constant CHIMONEY_API_KEY (line 6) | const CHIMONEY_API_KEY = process.env.CHIMONEY_API_KEY;
  function POST (line 8) | async function POST(request: NextRequest) {

FILE: submissions/chimoney-interledger-wallet-transfer/app/layout.tsx
  function RootLayout (line 13) | function RootLayout({

FILE: submissions/chimoney-interledger-wallet-transfer/app/page.tsx
  function Home (line 4) | function Home() {

FILE: submissions/chimoney-interledger-wallet-transfer/components/Providers.tsx
  function Providers (line 6) | function Providers({ children }: { children: React.ReactNode }) {

FILE: submissions/chimoney-interledger-wallet-transfer/components/TransactionHistory.tsx
  function TransactionHistory (line 15) | function TransactionHistory() {

FILE: submissions/chimoney-interledger-wallet-transfer/components/TransferForm.tsx
  function TransferForm (line 28) | function TransferForm() {

FILE: submissions/chimoney-interledger-wallet-transfer/components/ui/button.tsx
  type ButtonProps (line 36) | interface ButtonProps

FILE: submissions/chimoney-interledger-wallet-transfer/components/ui/input.tsx
  type InputProps (line 5) | interface InputProps

FILE: submissions/chimoney-interledger-wallet-transfer/lib/utils.ts
  function cn (line 4) | function cn(...inputs: ClassValue[]) {

FILE: submissions/chimoney-interledger-wallet-transfer/types/index.ts
  type TransferRequest (line 1) | interface TransferRequest {
  type TransferResponse (line 7) | interface TransferResponse {
  type Transaction (line 20) | interface Transaction {
  type ApiError (line 29) | interface ApiError {

FILE: submissions/chimoney-js/Errors.js
  class ChiMoneyError (line 1) | class ChiMoneyError extends Error {
    method constructor (line 2) | constructor(message = "Chi Money Error") {
  class ValueError (line 8) | class ValueError extends ChiMoneyError {
    method constructor (line 9) | constructor(message, errors) {
  class TypeError (line 16) | class TypeError extends ChiMoneyError {
    method constructor (line 17) | constructor(message, errors) {
  class AuthKeyError (line 24) | class AuthKeyError extends ChiMoneyError {
    method constructor (line 25) | constructor(message) {

FILE: submissions/chimoney-js/index.js
  function parseArgs (line 34) | function parseArgs(optionsOrAPIKey) {

FILE: submissions/chimoney-js/modules/Account.js
  function getTransactionsByIssueID (line 15) | async function getTransactionsByIssueID(issueID, subAccount = null) {
  function getAllTransactions (line 39) | async function getAllTransactions(subAccount = null) {
  function accountTransfer (line 59) | async function accountTransfer(receiver, amount, wallet, subAccount = nu...
  function deleteUnpaidTransaction (line 96) | async function deleteUnpaidTransaction(chiRef, subAccount = null) {
  function getTransactionByID (line 119) | async function getTransactionByID(transctionId, subAccount = null) {

FILE: submissions/chimoney-js/modules/Info.js
  function airtimeCountries (line 13) | async function airtimeCountries() {
  function assets (line 24) | async function assets() {
  function banks (line 36) | async function banks(country = "NG") {
  function localAmountInUSD (line 57) | async function localAmountInUSD(originCurrency, amountInOriginCurrency) {
  function mobileMoneyCodes (line 87) | async function mobileMoneyCodes() {
  function usdInLocalAmount (line 100) | async function usdInLocalAmount(destinationCurrency, amountInUSD) {

FILE: submissions/chimoney-js/modules/MobileMoney.js
  function getAllTransactions (line 14) | async function getAllTransactions(subAccount = null) {
  function makePayment (line 32) | async function makePayment(paymentDetails, subAccount = null) {
  function verifyPayment (line 68) | async function verifyPayment(id, subAccount = null) {

FILE: submissions/chimoney-js/modules/Payouts.js
  function airtime (line 23) | async function airtime(airtimes = [], subAccount = null) {
  function bank (line 56) | async function bank(banks = [], subAccount = null) {
  function chimoney (line 87) | async function chimoney(chimoneys = [], subAccount = null) {
  function mobileMoney (line 119) | async function mobileMoney(momos = [], subAccount = null) {
  function giftCard (line 154) | async function giftCard(giftCards = [], subAccount = null) {
  function status (line 177) | async function status(chiRef, subAccount = null) {
  function initiateChimoney (line 222) | async function initiateChimoney(

FILE: submissions/chimoney-js/modules/Redeem.js
  function airtime (line 18) | async function airtime(
  function any (line 68) | async function any(chiRef, redeemData, meta, subAccount = null) {
  function chimoney (line 106) | async function chimoney(chimoneys, subAccount = null) {
  function giftCard (line 130) | async function giftCard(chiRef, redeemOptions, subAccount = null) {
  function mobileMoney (line 163) | async function mobileMoney(chiRef, redeemOptions, subAccount = null) {

FILE: submissions/chimoney-js/modules/SubAccount.js
  function create (line 15) | async function create(name, email) {
  function deleteAccount (line 44) | async function deleteAccount(id) {
  function getDetails (line 63) | async function getDetails(id) {
  function getAll (line 81) | async function getAll() {

FILE: submissions/chimoney-js/modules/Wallet.js
  function list (line 14) | async function list(subAccount = null) {
  function details (line 32) | async function details(id, subAccount = null) {
  function transfer (line 56) | async function transfer(receiver, wallet, amount, subAccount) {

FILE: submissions/chimoney-js/utils/helpers.js
  constant HTTPMETHODS (line 11) | const HTTPMETHODS = {
  constant LIVE_URL (line 17) | const LIVE_URL = "https://api.chimoney.io";
  constant SANDBOX_URL (line 18) | const SANDBOX_URL = "https://api-v2-sandbox.chimoney.io";
  function formatJoiErrors (line 84) | function formatJoiErrors(error) {

FILE: submissions/chimoney-lib/projects/ngx-chimoney-airtime-payouts/src/lib/components/airtime/airtime.component.ts
  class AirtimeComponent (line 11) | class AirtimeComponent {
    method payoutAirtime (line 23) | payoutAirtime() {}

FILE: submissions/chimoney-lib/projects/ngx-chimoney-airtime-payouts/src/lib/components/bank/bank.component.ts
  class BankComponent (line 11) | class BankComponent {
    method payoutBank (line 25) | payoutBank() {

FILE: submissions/chimoney-lib/projects/ngx-chimoney-airtime-payouts/src/lib/components/payouts/payouts.component.ts
  class PayoutsComponent (line 11) | class PayoutsComponent {
    method payoutChimoney (line 23) | payoutChimoney() {

FILE: submissions/chimoney-lib/projects/ngx-chimoney-airtime-payouts/src/lib/ngx-chimoney-airtime-payouts.component.ts
  class NgxChimoneyAirtimePayoutsComponent (line 14) | class NgxChimoneyAirtimePayoutsComponent {

FILE: submissions/chimoney-lib/projects/ngx-chimoney-airtime-payouts/src/lib/ngx-chimoney-airtime-payouts.service.ts
  class NgxChimoneyAirtimePayoutsService (line 6) | class NgxChimoneyAirtimePayoutsService {
    method constructor (line 8) | constructor() { }

FILE: submissions/chimoney-payout-airtime/src/App.js
  function App (line 10) | function App() {

FILE: submissions/chimoney-react-components/src/components/ChimoneyPaymentForm.tsx
  type ChimoneyPaymentProps (line 5) | interface ChimoneyPaymentProps {
  type ChimoneyPaymentType (line 153) | type ChimoneyPaymentType = "email" | "phone";
  type ChimoneyPaymentData (line 155) | interface ChimoneyPaymentData {

FILE: submissions/chimoney-redeem-airtime/src/App.js
  function App (line 11) | function App() {

FILE: submissions/chimoney-telegram/src/start.js
  constant PORT (line 6) | const PORT = process.env.PORT;
  function isValidInteger (line 213) | function isValidInteger(text) {

FILE: submissions/chispend_app/lib/data/common/helper_functions.dart
  function loader (line 3) | void loader(BuildContext context)

FILE: submissions/chispend_app/lib/data/constant/api_constants.dart
  class ApiConstants (line 1) | class ApiConstants{

FILE: submissions/chispend_app/lib/data/models/api/initiate_chimoney.dart
  function initiateChimoneyResFromMap (line 3) | InitiateChimoneyRes initiateChimoneyResFromMap(String str)
  class InitiateChimoneyRes (line 5) | class InitiateChimoneyRes {
  class Data (line 17) | class Data {
  class Datum (line 35) | class Datum {

FILE: submissions/chispend_app/lib/data/services/api/payout.dart
  class PayoutService (line 8) | abstract class PayoutService {
    method initiateChimoney (line 9) | Future<bool> initiateChimoney({required String channelStr})
    method redeemAny (line 10) | Future<bool> redeemAny({required String chiRef})
  class PayoutServiceImpl (line 13) | class PayoutServiceImpl extends PayoutService {
    method initiateChimoney (line 19) | Future<bool> initiateChimoney({required String channelStr})
    method redeemAny (line 53) | Future<bool> redeemAny({required String chiRef})

FILE: submissions/chispend_app/lib/data/services/api/request_helper/index.dart
  class RequestHelpers (line 8) | abstract class RequestHelpers {
    method post (line 9) | Future<http.Response?> post(
  class RequestHelpersImpl (line 13) | class RequestHelpersImpl extends RequestHelpers {
    method post (line 21) | Future<http.Response?> post(

FILE: submissions/chispend_app/lib/data/services/navigation/index.dart
  class NavigationService (line 3) | abstract class NavigationService {
    method navigateTo (line 4) | Future<dynamic> navigateTo(String routeName, {dynamic arguments})
    method replaceWith (line 6) | Future<dynamic> replaceWith(String routeName, {dynamic arguments})
    method pop (line 8) | void pop({dynamic v})
    method replaceUntil (line 10) | Future<dynamic> replaceUntil(
  class NavigationServiceImpl (line 16) | class NavigationServiceImpl extends NavigationService {
    method pop (line 22) | void pop({dynamic v = false})
    method navigateTo (line 27) | Future<dynamic> navigateTo(String routeName, {dynamic arguments})
    method replaceWith (line 33) | Future<dynamic> replaceWith(String routeName, {dynamic arguments})
    method replaceUntil (line 39) | Future<dynamic> replaceUntil(

FILE: submissions/chispend_app/lib/di/get_it.dart
  function initDependencies (line 10) | Future initDependencies()

FILE: submissions/chispend_app/lib/main.dart
  function main (line 7) | void main()
  class MyApp (line 12) | class MyApp extends StatelessWidget {
    method build (line 17) | Widget build(BuildContext context)

FILE: submissions/chispend_app/lib/presentation/ui/webview/index.dart
  class ChiSpendWebView (line 8) | class ChiSpendWebView extends StatelessWidget {
    method build (line 12) | Widget build(BuildContext context)

FILE: submissions/chispend_app/test/widget_test.dart
  function main (line 13) | void main()

FILE: submissions/chispend_app/windows/flutter/generated_plugin_registrant.cc
  function RegisterPlugins (line 10) | void RegisterPlugins(flutter::PluginRegistry* registry) {

FILE: submissions/chispend_app/windows/runner/flutter_window.cpp
  function LRESULT (line 40) | LRESULT

FILE: submissions/chispend_app/windows/runner/flutter_window.h
  function class (line 12) | class FlutterWindow : public Win32Window {

FILE: submissions/chispend_app/windows/runner/main.cpp
  function wWinMain (line 8) | int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,

FILE: submissions/chispend_app/windows/runner/utils.cpp
  function CreateAndAttachConsole (line 10) | void CreateAndAttachConsole() {
  function GetCommandLineArguments (line 24) | std::vector<std::string> GetCommandLineArguments() {
  function Utf8FromUtf16 (line 44) | std::string Utf8FromUtf16(const wchar_t* utf16_string) {

FILE: submissions/chispend_app/windows/runner/win32_window.cpp
  function Scale (line 18) | int Scale(int source, double scale_factor) {
  function EnableFullDpiSupportIfAvailable (line 24) | void EnableFullDpiSupportIfAvailable(HWND hwnd) {
  class WindowClassRegistrar (line 41) | class WindowClassRegistrar {
    method WindowClassRegistrar (line 46) | static WindowClassRegistrar* GetInstance() {
    method WindowClassRegistrar (line 62) | WindowClassRegistrar() = default;
  function wchar_t (line 71) | const wchar_t* WindowClassRegistrar::GetWindowClass() {
  function LRESULT (line 133) | LRESULT CALLBACK Win32Window::WndProc(HWND const window,
  function LRESULT (line 152) | LRESULT
  function Win32Window (line 208) | Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept {
  function RECT (line 224) | RECT Win32Window::GetClientArea() {
  function HWND (line 230) | HWND Win32Window::GetHandle() {

FILE: submissions/chispend_app/windows/runner/win32_window.h
  type Size (line 21) | struct Size {

FILE: submissions/chispend_widget/lib/chispend_widget.dart
  type ChiSpendTheme (line 6) | enum ChiSpendTheme { light, dark, moonlight, royal }
  class ChiSpendWidget (line 8) | class ChiSpendWidget extends StatefulWidget {
    method createState (line 39) | State<ChiSpendWidget> createState()
  class _ChiSpendWidgetState (line 42) | class _ChiSpendWidgetState extends State<ChiSpendWidget> {
    method initState (line 48) | void initState()
    method build (line 56) | Widget build(BuildContext context)

FILE: submissions/chispend_widget/test/chispend_widget_test.dart
  function main (line 5) | void main()

FILE: submissions/github-bot/index.js
  constant PORT (line 4) | const PORT = process.env.PORT;
  function isValidInteger (line 98) | function isValidInteger(text) {

FILE: submissions/pay-paddy/src/App.jsx
  function App (line 5) | function App() {

FILE: submissions/pay-paddy/src/service/createAccount.js
  constant API_KEY (line 3) | const API_KEY = `${process.env.API_KEY}`

FILE: submissions/pay-paddy/src/store/modalReducer.js
  method showSignUpModal (line 10) | showSignUpModal(state, action) {
  method showSignInModal (line 13) | showSignInModal(state, action) {

FILE: submissions/pay-paddy/src/store/userReducer.js
  method create (line 8) | create(state, action) {

FILE: submissions/resolution_2025/src/app/auth/page.tsx
  function AuthScreen (line 24) | function AuthScreen() {

FILE: submissions/resolution_2025/src/app/layout.tsx
  function RootLayout (line 20) | function RootLayout({

FILE: submissions/resolution_2025/src/app/page.tsx
  function Home (line 3) | function Home() {

FILE: submissions/resolution_2025/src/app/resolutions/page.tsx
  function Resolutions (line 9) | function Resolutions() {

FILE: submissions/resolution_2025/src/components/ui/badge.tsx
  type BadgeProps (line 26) | interface BadgeProps
  function Badge (line 30) | function Badge({ className, variant, ...props }: BadgeProps) {

FILE: submissions/resolution_2025/src/components/ui/button.tsx
  type ButtonProps (line 36) | interface ButtonProps

FILE: submissions/resolution_2025/src/lib/utils.ts
  function cn (line 4) | function cn(...inputs: ClassValue[]) {

FILE: submissions/secret-santa/app/layout.js
  function RootLayout (line 11) | function RootLayout({ children }) {

FILE: submissions/secret-santa/app/page.js
  function Main (line 3) | function Main() {

FILE: submissions/secret-santa/utility/index.js
  constant API_KEY (line 3) | const API_KEY = process.env.NEXT_PUBLIC_API_KEY;
  function initiateChimoneyPayment (line 15) | async function initiateChimoneyPayment(email, phone, valueInUSD) {
  function initiateMomoPayment (line 34) | async function initiateMomoPayment(countryToSend, phoneNumber, valueInUS...
  function verifyPayment (line 62) | async function verifyPayment(issueID) {

FILE: submissions/telegram-bot-node/src/start.js
  constant PORT (line 7) | const PORT = process.env.PORT;
  function isValidInteger (line 193) | function isValidInteger(text) {

FILE: submissions/whatsapp-bot-node/index.js
  function start (line 8) | async function start() {
  constant PORT (line 22) | const PORT = process.env.PORT;
  function isValidInteger (line 124) | function isValidInteger(text) {
Condensed preview — 624 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,307K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE/bug.yml",
    "chars": 881,
    "preview": "name: \"👾 Bug Report\"\ndescription: \"File a Bug here to help improve the project.\"\ntitle: \"Bug: \"\nlabels: [\"bug\"]\nbody:\n  "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 173,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: \"❓ Question\"\n    url: \"https://discord.gg/Q3peDrPG95\"\n    about: \"F"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/enhancement.yml",
    "chars": 835,
    "preview": "name: \"✨ Enhancement\"\ndescription: \"Suggest an enhancement or improvement to the project.\"\ntitle: \"Enhancement: \"\nlabels"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature.yml",
    "chars": 579,
    "preview": "name: \"🚀 Feature Request\"\ndescription: \"Suggest a feature request\"\ntitle: \"feat:\"\nlabels: [\"feature\"]\nbody:\n  - type: te"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/other.yml",
    "chars": 611,
    "preview": "name: \"🔶 Other\"\ndescription: \"Use this for any other issues. Please do NOT create blank issues.\"\nlabels: [\"other\"]\nbody:"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE/pull_request_template.md",
    "chars": 815,
    "preview": "# Pull Request Details\n\n#### Issue Number:\n\n#### PR Type:\n- [ ]  Feature\n- [ ]  Improvement\n- [ ]  Bug\n- [ ]  New Projec"
  },
  {
    "path": ".github/scripts/badge-automation.js",
    "chars": 3585,
    "preview": "const nodemailer = require(\"nodemailer\");\nconst fs = require(\"fs\").promises;\nconst path = require(\"path\");\n\nasync functi"
  },
  {
    "path": ".github/workflows/badge-automation.yml",
    "chars": 702,
    "preview": "name: PR Merge Badge Automation\n\non:\n  pull_request:\n    types: [closed]\n\njobs:\n  badge_automation:\n    if: github.event"
  },
  {
    "path": ".github/workflows/translate.yml",
    "chars": 948,
    "preview": "name: Chimoney Projects README Translator\non: workflow_dispatch\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n   "
  },
  {
    "path": ".gitignore",
    "chars": 1610,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nlerna-debug.log*\n\n# Diagnostic reports (https://nodejs."
  },
  {
    "path": ".gitmodules",
    "chars": 121,
    "preview": "[submodule \"submissions/topdelivr\"]\n\tpath = submissions/topdelivr\n\turl = https://github.com/KelvinNjiraini/TopDelivr.git"
  },
  {
    "path": ".idea/.gitignore",
    "chars": 47,
    "preview": "# Default ignored files\n/shelf/\n/workspace.xml\n"
  },
  {
    "path": ".idea/chimoney-community-project.iml",
    "chars": 605,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\">\n  <component name=\"NewModuleRootManager\" "
  },
  {
    "path": ".idea/misc.xml",
    "chars": 172,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectRootManager\">\n    <output url=\"fi"
  },
  {
    "path": ".idea/modules.xml",
    "chars": 304,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n   "
  },
  {
    "path": ".idea/vcs.xml",
    "chars": 167,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping dire"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5225,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3125,
    "preview": "Before contributing to this repository, you can either [visit this article](https://hashnode.com/post/clneirt08000309ihc"
  },
  {
    "path": "GSOC/Contributor Guide.md",
    "chars": 2914,
    "preview": "# Chimoney Contributor Guide\n\nWelcome to Chimoney's Google Summer of Code (GSoC) contributor guide! We are excited to me"
  },
  {
    "path": "GSOC/Project Ideas.md",
    "chars": 5638,
    "preview": "# Google Summer of Code 2025 - Chimoney Open Source Projects\n\nWelcome to Chimoney's **Google Summer of Code (GSoC) 2025*"
  },
  {
    "path": "LICENSE",
    "chars": 1065,
    "preview": "MIT License\n\nCopyright (c) 2025 Chimoney\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
  },
  {
    "path": "README-BN.md",
    "chars": 5406,
    "preview": "<div align=\"center\">\n  \n[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/"
  },
  {
    "path": "README-CN.md",
    "chars": 3364,
    "preview": "<div align=\"center\">\n  \n[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/"
  },
  {
    "path": "README-ES.md",
    "chars": 6173,
    "preview": "<div align=\"center\">\n  \n[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/"
  },
  {
    "path": "README-GM.md",
    "chars": 6138,
    "preview": "<div align=\"center\">\n  \n[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/"
  },
  {
    "path": "README-HN.md",
    "chars": 5600,
    "preview": "<div align=\"center\">\r\n  \r\n[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.i"
  },
  {
    "path": "README-JP.md",
    "chars": 3247,
    "preview": "<div align=\"center\">\n  \n[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/"
  },
  {
    "path": "README-KO.md",
    "chars": 3766,
    "preview": "<div align=\"center\">\n  \n[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/"
  },
  {
    "path": "README.md",
    "chars": 7376,
    "preview": "<div align=\"center\">\n  \n[![Docs](https://img.shields.io/badge/docs-chimoney.readme.io-blue)](https://chimoney.readme.io/"
  },
  {
    "path": "ai-passport-and-wallet-examples/.gitignore",
    "chars": 338,
    "preview": "# Environment variables\n.env\n.env.local\n.env.*.local\n\n# Python\n__pycache__/\n*.py[cod]\n*$py.class\n*.so\n.Python\nbuild/\ndev"
  },
  {
    "path": "ai-passport-and-wallet-examples/README.md",
    "chars": 2200,
    "preview": "# AI Passport and Wallet Examples\n\nWorking integrations demonstrating how to create AI agents with Chimoney wallets, pol"
  },
  {
    "path": "ai-passport-and-wallet-examples/crewai-support-agent/README.md",
    "chars": 3513,
    "preview": "# CrewAI Support Agent with Chimoney Wallet\n\nA CrewAI multi-agent system for customer support that autonomously issues r"
  },
  {
    "path": "ai-passport-and-wallet-examples/crewai-support-agent/requirements.txt",
    "chars": 124,
    "preview": "crewai>=0.1.0\nlangchain>=0.1.0\nlangchain-openai>=0.0.5\nopenai>=1.0.0\npython-dotenv>=1.0.0\nrequests>=2.31.0\npydantic>=2.0"
  },
  {
    "path": "ai-passport-and-wallet-examples/crewai-support-agent/support_agent.py",
    "chars": 11588,
    "preview": "\"\"\"\nCrewAI Support Agent with Chimoney Wallet Integration\n\nThis agent autonomously issues refunds up to $100/day with L4"
  },
  {
    "path": "ai-passport-and-wallet-examples/data-processing-agent/README.md",
    "chars": 3522,
    "preview": "# Data Processing Agent with Chimoney Wallet\n\nA custom Python agent that pays other agents for specialized analysis. Dem"
  },
  {
    "path": "ai-passport-and-wallet-examples/data-processing-agent/data_agent.py",
    "chars": 13268,
    "preview": "\"\"\"\nData Processing Agent with Chimoney Wallet Integration\n\nThis agent pays other agents for specialized analysis, demon"
  },
  {
    "path": "ai-passport-and-wallet-examples/data-processing-agent/requirements.txt",
    "chars": 55,
    "preview": "python-dotenv>=1.0.0\nrequests>=2.31.0\npydantic>=2.0.0\n\n"
  },
  {
    "path": "ai-passport-and-wallet-examples/langchain-research-agent/README.md",
    "chars": 3427,
    "preview": "# LangChain Research Agent with Chimoney Wallet\n\nA LangChain agent that autonomously pays for API access to data sources"
  },
  {
    "path": "ai-passport-and-wallet-examples/langchain-research-agent/requirements.txt",
    "chars": 110,
    "preview": "langchain>=0.1.0\nlangchain-openai>=0.0.5\nopenai>=1.0.0\npython-dotenv>=1.0.0\nrequests>=2.31.0\npydantic>=2.0.0\n\n"
  },
  {
    "path": "ai-passport-and-wallet-examples/langchain-research-agent/research_agent.py",
    "chars": 12924,
    "preview": "\"\"\"\nLangChain Research Agent with Chimoney Wallet Integration\n\nThis agent autonomously pays for API access to data sourc"
  },
  {
    "path": "submissions/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "submissions/Articles/Contributing-to-Chimoney-Hacktoberfest.md",
    "chars": 8121,
    "preview": "# Contributing to Chimoney Projects: A Hacktoberfest 2024 Guide\n\n## 1. Introduction to Hacktoberfest and Chimoney\n\n### W"
  },
  {
    "path": "submissions/Articles/Flexible-payout-solutions.md",
    "chars": 8743,
    "preview": "![Payment Infrastructure and API](https://cdn.hashnode.com/res/hashnode/image/upload/v1727998479498/066fadba-9d43-48e5-8"
  },
  {
    "path": "submissions/Articles/GlobalPayoutGuide.md",
    "chars": 9784,
    "preview": "# How to Choose the Right API for Global Payouts: A Developer's Guide\n\nAs businesses expand globally, developers must ch"
  },
  {
    "path": "submissions/Articles/Quickstart_Guide.md",
    "chars": 4862,
    "preview": "# Quickstart Guide to Integrate Chimoney API\n\nWelcome to the Chimoney Quickstart Guide! This guide will help you easily "
  },
  {
    "path": "submissions/Articles/README.md",
    "chars": 572,
    "preview": "# Articles\n\nThis folder contains all articles written and submitted by our open-source contributors. Each article here h"
  },
  {
    "path": "submissions/Articles/Update-Authentication-page.md",
    "chars": 4163,
    "preview": "# Authentication\n\nThis guide explains how to authenticate your requests to the Chimoney API. Follow these steps to get s"
  },
  {
    "path": "submissions/Articles/chimoney-global-data-annotators.md",
    "chars": 7394,
    "preview": "# The Future of Payments for AI Workforce: Why Chimoney is the Perfect Solution for Paying Global Data Annotators\n\nArtif"
  },
  {
    "path": "submissions/Articles/global-payouts-non-profits.md",
    "chars": 7018,
    "preview": "\n# How Global Payout Platforms Can Empower Communities and Non-profits\n\nYou’re hosting a charity baking event, raising f"
  },
  {
    "path": "submissions/Articles/payout-digital-marketplaces.md",
    "chars": 6724,
    "preview": "# A Chimoney Guide to Payouts for Digital Marketplaces\n\nWelcome to the Chimoney guide on payouts for digital marketplace"
  },
  {
    "path": "submissions/Articles/tutorial_on_sending_p2p_Interledger _payments.md",
    "chars": 5202,
    "preview": "# Tutorial: Integrating Chimoney's Payment Pointer for Sending and Verifying Payments\n\nThis tutorial will guide you thro"
  },
  {
    "path": "submissions/Chimoney-Python/LICENSE",
    "chars": 1074,
    "preview": "\nMIT License\n\nCopyright (c) 2022 Asikhalaye Samuel\n\nPermission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "submissions/Chimoney-Python/README.md",
    "chars": 1121,
    "preview": "# PyChimoney\n\npychimoney is a python wrapper for <a href=\"https://chimoney.io\"> Chimoney </a>\n\n    - Account\n    - Info\n"
  },
  {
    "path": "submissions/Chimoney-Python/build/lib/pychimoney/__init__.py",
    "chars": 276,
    "preview": "from .Base import BaseAPI\nfrom .Info import Info\nfrom .Account import Account\nfrom .Payouts import Payouts\nfrom .SubAcco"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/AI.py",
    "chars": 1260,
    "preview": "from chimoney import BaseAPI\n\nclass AI(BaseAPI):\n    \"\"\"\n    A class that extends the BaseAPI class to handle AI-based i"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Account.py",
    "chars": 4618,
    "preview": "from chimoney import BaseAPI\n\n\nclass Account(BaseAPI):\n    \"\"\"\n    Account Endpoints Wrapper\n\n    This class wraps the A"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Base.py",
    "chars": 6056,
    "preview": "import json\nimport os\nimport logging\nimport time\nimport requests\nfrom requests.exceptions import ConnectTimeout, HTTPErr"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Chimoney.py",
    "chars": 4189,
    "preview": "\"\"\"\nChimoney API Integration\n\nThis module provides a Python wrapper for the Chi Money API, enabling access to \nvarious f"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Errors.py",
    "chars": 375,
    "preview": "class PyChimoneyError(Exception):\n    \"\"\"Base class for PyChimoney errors.\"\"\"\n\n    pass\n\n\nclass MissingAuthKeyError(PyCh"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Info.py",
    "chars": 5165,
    "preview": "from chimoney import BaseAPI\n\n\nclass Info(BaseAPI):\n    \"\"\"\n    This class handles the Info API\n    \"\"\"\n\n    def airtime"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Payments.py",
    "chars": 1826,
    "preview": "# from Base import APIResponse\nfrom chimoney import BaseAPI\n\nclass Payments(BaseAPI):\n    \"\"\"\n    Chimoney's Payment Wra"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Payouts.py",
    "chars": 9936,
    "preview": "from chimoney import BaseAPI\n\n\nclass Payouts(BaseAPI):\n    \"\"\"\n    This Wraps the Payouts API of Chi Money\n    \"\"\"\n\n    "
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Redeem.py",
    "chars": 4543,
    "preview": "from chimoney import BaseAPI\n\n\nclass Redeem(BaseAPI):\n    \"\"\"\n    This is a Wrapper for the Redeem API of Chimoney\n    \""
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/SubAccount.py",
    "chars": 1663,
    "preview": "from chimoney import BaseAPI\n\n\nclass SubAccount(BaseAPI):\n    \"\"\"\n    This is a Wrapper for the SubAccount API of Chimon"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/Wallet.py",
    "chars": 2094,
    "preview": "from chimoney import BaseAPI\n\n\nclass Wallet(BaseAPI):\n    \"\"\"\n    This class handles the Wallet API of Chimoney\n    \"\"\"\n"
  },
  {
    "path": "submissions/Chimoney-Python/chimoney/__init__.py",
    "chars": 276,
    "preview": "from .Base import BaseAPI\nfrom .Info import Info\nfrom .Account import Account\nfrom .Payouts import Payouts\nfrom .SubAcco"
  },
  {
    "path": "submissions/Chimoney-Python/examples/chimoney_examples.py",
    "chars": 324,
    "preview": "import os\nfrom chimoney import Chimoney\n\nos.environ[\"CHIMONEY_AUTH_KEY\"] = \"API_KEY\"\n\nchimoney = Chimoney()\n\n\ndef test()"
  },
  {
    "path": "submissions/Chimoney-Python/examples/test.py",
    "chars": 372,
    "preview": "import os\nfrom chimoney import Chimoney\n\nchimoney = Chimoney.set_api_key(\"API_KEY\")\n\nchimoneys = [\n    {\n        \"email\""
  },
  {
    "path": "submissions/Chimoney-Python/setup.py",
    "chars": 1278,
    "preview": "from setuptools import setup, find_packages\n\nwith open(\"README.md\", \"r\") as fh:\n    long_description = fh.read()\n\nsetup("
  },
  {
    "path": "submissions/Chimoney-Python/tests/__init__.py",
    "chars": 159,
    "preview": "import os\nimport time\nfrom unittest import TestCase, main\nfrom chimoney import Chimoney, BaseAPI\n\ntest_chimoney_auth_key"
  },
  {
    "path": "submissions/Chimoney-Slackbot/.gitignore",
    "chars": 12,
    "preview": "venv\ntemp.py"
  },
  {
    "path": "submissions/Chimoney-Slackbot/Readme.md",
    "chars": 37,
    "preview": "# CHIMONEY SLACKBOT \n\n## Description\n"
  },
  {
    "path": "submissions/Chimoney-Slackbot/main.py",
    "chars": 1052,
    "preview": "from dotenv import load_dotenv\nimport os\nimport argparse\n\nload_dotenv()\n\nparser = argparse.ArgumentParser(description=\"C"
  },
  {
    "path": "submissions/Chimoney-Slackbot/utils/app/__init__.py",
    "chars": 622,
    "preview": "from flask import Flask\nfrom flask_sqlalchemy import SQLAlchemy\nimport os\nfrom dotenv import load_dotenv\n\nload_dotenv()\n"
  },
  {
    "path": "submissions/Chimoney-Slackbot/utils/app/models.py",
    "chars": 594,
    "preview": "from app import db\n\n\nclass AccessToken(db.Model):\n    __tablename__ = \"access_token\"\n    id = db.Column(db.Integer, prim"
  },
  {
    "path": "submissions/Chimoney-Slackbot/utils/app/views.py",
    "chars": 2076,
    "preview": "from app import app, db\nfrom flask import render_template, request, redirect, url_for\nfrom app.models import AccessToken"
  },
  {
    "path": "submissions/Chimoney-Slackbot/utils/bot.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "submissions/Chimoney-Slackbot/utils/collation.py",
    "chars": 271,
    "preview": "\n\nclass SlackBot:\n    def __init__(self, api_key):\n        self.api_key = api_key\n\n    def handle_command(self):\n       "
  },
  {
    "path": "submissions/Chimoney-Slackbot/utils/functions.py",
    "chars": 1709,
    "preview": "import os\nfrom chimoney import Chimoney\n\n\ndef get_user_email(client, user_id):\n    user = client.web_client.users_info(u"
  },
  {
    "path": "submissions/Chimoney-Slackbot/utils/rtm.py",
    "chars": 1906,
    "preview": "import os\nfrom slack_sdk.rtm_v2 import RTMClient\nfrom dotenv import load_dotenv\nimport logging\nimport multiprocessing\nfr"
  },
  {
    "path": "submissions/Chimoney-Slackbot/utils/run.py",
    "chars": 91,
    "preview": "#! /usr/bin/env python\nfrom app import app\n\napp.run(debug=True, host=\"0.0.0.0\", port=5050)\n"
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/.gitignore",
    "chars": 96,
    "preview": "data\n.env\nngrok.exe\n.pytest_cache\n.idea\n.vscode\n*.pyc\n*.pyo\n*.pyd\n__pycache__\n*/__pycache__\n*.so"
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/Dockerfile",
    "chars": 355,
    "preview": "FROM python:3.11-alpine\n\n# Install system dependencies\nRUN apk add --no-cache python3-dev libpq gcc musl-dev\n\n# Path: /a"
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/README.md",
    "chars": 6003,
    "preview": "# Chimoney Slack Bot\n\nThe Chimoney Slack Bot is a Python application designed to facilitate money transfers within a Sla"
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/modules/choices.py",
    "chars": 403,
    "preview": "class ValidatorRegexFormats:\n    def __init__(self):\n        self._regex_formats = {\n            \"same_ammount_single_or"
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/modules/giveaway.py",
    "chars": 4971,
    "preview": "from chimoney import Chimoney\nimport time\nimport random\nfrom dotenv import load_dotenv\nimport os\nfrom .sendchimoney impo"
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/modules/sendchimoney.py",
    "chars": 4986,
    "preview": "from chimoney import Chimoney\nimport time\nfrom dotenv import load_dotenv\nimport os\n\nload_dotenv()\n\n\n# Initialize Chimone"
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/modules/validators.py",
    "chars": 1694,
    "preview": "import re\nfrom .choices import ValidatorRegexFormats\n\n\ndef validate_sendchimoney_text(text):\n    # Check if the text is "
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/slackbot.py",
    "chars": 5819,
    "preview": "from slack_bolt.oauth.async_oauth_settings import AsyncOAuthSettings\nfrom slack_bolt.async_app import AsyncApp\nimport os"
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/tests/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "submissions/Chimoney-Slackbot-V2/tests/validator_tests.py",
    "chars": 1150,
    "preview": "# test validators and functions\n\nfrom pytest import mark\nfrom modules import validators\n\n\n# test validators\n@mark.parame"
  },
  {
    "path": "submissions/Chisend/.gitignore",
    "chars": 225,
    "preview": "./venv\nvenv\n__pycache__\n*.pyc\n*.pyo\n*.pyd\n*.so\n*.egg-info\n*.egg\n*.egg-link\n*.dist-info\n*.egg-info\n*.egg\n*.egg-link\n*.dis"
  },
  {
    "path": "submissions/Chisend/Dockerfile",
    "chars": 220,
    "preview": "FROM python:3.9-alpine\n\nCOPY bots/chisend.py /bots/\nCOPY bots/main.py /bots/\nCOPY bots/utils.py /bots/\nCOPY requirements"
  },
  {
    "path": "submissions/Chisend/README.md",
    "chars": 2358,
    "preview": "# CHISEND TWITTER BOT\n\nThe Chisend Twitter Bot that send chimoney to a user when called by a tweet.\n\nLive Demo: https://"
  },
  {
    "path": "submissions/Chisend/bots/chisend.py",
    "chars": 10801,
    "preview": "import re\nimport tweepy\nfrom utils import is_following\nfrom chimoney import Chimoney\nimport logging\nimport time\n\n\n# Set "
  },
  {
    "path": "submissions/Chisend/bots/entrypoint.sh",
    "chars": 111,
    "preview": "#!/bin/bash\n\nset -e\n\n# Run the bot\npython3 -m main.py\n\n# Run the bot in debug mode\n# python3 -m main.py --debug"
  },
  {
    "path": "submissions/Chisend/bots/main.py",
    "chars": 1576,
    "preview": "#!/usr/bin/env python3\n\nfrom dotenv import load_dotenv\nimport os\nimport argparse\nfrom chisend import ChiSend\n\nload_doten"
  },
  {
    "path": "submissions/Chisend/bots/oauth-key-gen.py",
    "chars": 507,
    "preview": "# 3 legged OAuth\n\nimport tweepy\n\noauth1_user_handler = tweepy.OAuth1UserHandler(\n    \"access-token\", \"access-secret\", ca"
  },
  {
    "path": "submissions/Chisend/bots/utils.py",
    "chars": 172,
    "preview": "def is_following(api: object, id_1: int, id_2: int) -> bool:\n    result = api.get_friendship(source_id=id_1, target_id=i"
  },
  {
    "path": "submissions/Chisend/requirements.txt",
    "chars": 249,
    "preview": "certifi==2022.9.24\ncharset-normalizer==2.1.1\nchimoney-py==0.0.2\nflake8==5.0.4\nidna==3.4\nmccabe==0.7.0\noauthlib==3.2.1\npy"
  },
  {
    "path": "submissions/Dev focused articles/top-3-payment-challenges-solutions-ifeoluwa-favour",
    "chars": 5433,
    "preview": "# **Top 3 Challenges Companies Face When Paying Freelancers Globally (And How to Solve Them)** \nby **Ifeoluwa Favour**\n\n"
  },
  {
    "path": "submissions/FAQs/FAQs.md",
    "chars": 5860,
    "preview": "# Chimoney Developer Toolkit - Frequently Asked Questions (FAQs)\n\nWelcome to the Chimoney Developer Toolkit FAQ page! He"
  },
  {
    "path": "submissions/GetStarted/Blogs.html",
    "chars": 12057,
    "preview": "<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale="
  },
  {
    "path": "submissions/GetStarted/README.md",
    "chars": 54,
    "preview": "I have translated the blog post from HTML to Markdown."
  },
  {
    "path": "submissions/GetStarted/style.css",
    "chars": 171,
    "preview": "/* :root {\n    color: aliceblue;\n} */\n\n.title h2 {\n    color: white;\n    font-size: larger;\n    font-size: 30px;\n    tex"
  },
  {
    "path": "submissions/Proposed-Chimoney-Copy/ChimoneyUXCopy.md",
    "chars": 4443,
    "preview": "Chimoney Updated Copy.\n\nSection 1\nOld navbar links: Benefits, Products, About, Testimonials\nNew navbar links: Why choose"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/.gitignore",
    "chars": 258,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/README.md",
    "chars": 1083,
    "preview": "# Chiconnect bank-api-payout\nA mini project to demonstrate integration of Chiconnect bank api payout using React framewo"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/index.html",
    "chars": 359,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/package.json",
    "chars": 786,
    "preview": "{\n  \"name\": \"chiconnect-api-payout\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"de"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/postcss.config.cjs",
    "chars": 82,
    "preview": "module.exports = {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n}\n"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/src/App.jsx",
    "chars": 5534,
    "preview": "import { useEffect, useState } from \"react\";\nimport { API_KEY, getBanks } from \"./service/fetchApi\";\nimport chimoneyLogo"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/src/index.css",
    "chars": 58,
    "preview": "@tailwind base;\n@tailwind components;\n@tailwind utilities;"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/src/main.jsx",
    "chars": 230,
    "preview": "import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/src/service/fetchApi.js",
    "chars": 394,
    "preview": "export const API_KEY = `${import.meta.env.VITE_API_KEY}`\n\nexport const getBanks = async () => {\n    const response = awa"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/tailwind.config.cjs",
    "chars": 184,
    "preview": "/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n  content: [\n    './index.html',\n    './src/**/*.{js,ts,j"
  },
  {
    "path": "submissions/chiconnect-bank-api-payout/vite.config.js",
    "chars": 162,
    "preview": "import { defineConfig } from 'vite'\nimport react from '@vitejs/plugin-react'\n\n// https://vitejs.dev/config/\nexport defau"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/README.md",
    "chars": 1141,
    "preview": "# Chiconnect giftcard payout\nA mini project to demonstrate integration of Chiconnect giftcard payout using React framewo"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/index.html",
    "chars": 364,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/package.json",
    "chars": 558,
    "preview": "{\n  \"name\": \"chiconnect-giftcard-payout\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n  "
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/postcss.config.cjs",
    "chars": 82,
    "preview": "module.exports = {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n}\n"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/src/App.jsx",
    "chars": 10709,
    "preview": "import { useState } from 'react'\n\nimport chimoneyLogo from './assets/chimoney-logo.svg'\nimport Giftcards from './compone"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/src/components/Giftcard.jsx",
    "chars": 784,
    "preview": "const Giftcard = ({ cardImg, name, selected, handleClick }) => {\n    return (\n        <div\n            onClick={() => ha"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/src/components/Giftcards.jsx",
    "chars": 6209,
    "preview": "import { useEffect, useState } from 'react'\nimport { getGiftcards } from '../service/fetchApi'\nimport Giftcard from './G"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/src/index.css",
    "chars": 58,
    "preview": "@tailwind base;\n@tailwind components;\n@tailwind utilities;"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/src/main.jsx",
    "chars": 229,
    "preview": "import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/src/service/fetchApi.js",
    "chars": 391,
    "preview": "export const API_KEY = `${import.meta.env.VITE_API_KEY}`\n\nexport const getGiftcards = async (countryCode) => {\n    const"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/tailwind.config.cjs",
    "chars": 424,
    "preview": "/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n  content: [\n    './index.html',\n    './src/**/*.{js,ts,j"
  },
  {
    "path": "submissions/chiconnect-giftcard-payout/vite.config.js",
    "chars": 262,
    "preview": "import { defineConfig } from 'vite'\nimport react from '@vitejs/plugin-react'\nimport EnvironmentPlugin from 'vite-plugin-"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/.editorconfig",
    "chars": 258,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\ntrim_"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/.gitattributes",
    "chars": 179,
    "preview": "* text=auto\n\n*.blade.php diff=html\n*.css diff=css\n*.html diff=html\n*.md diff=markdown\n*.php diff=php\n\n/.github export-ig"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/.gitignore",
    "chars": 203,
    "preview": "/node_modules\n/public/build\n/public/hot\n/public/storage\n/storage/*.key\n/vendor\n.env\n.env.backup\n.phpunit.result.cache\nHo"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/Laravel SDK Installation and Setup Guide.md",
    "chars": 6687,
    "preview": "# Chimoney Laravel SDK Installation and Setup Guide\n\n## Installation\nInstallation Instructions:\n\n ### Prerequisites:\n- *"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/Procfile",
    "chars": 44,
    "preview": "web: vendor/bin/heroku-php-apache2 public/ \n"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/README.md",
    "chars": 4134,
    "preview": "<p align=\"center\"><a href=\"https://laravel.com\" target=\"_blank\"><img src=\"https://raw.githubusercontent.com/laravel/art/"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Console/Kernel.php",
    "chars": 681,
    "preview": "<?php\n\nnamespace App\\Console;\n\nuse Illuminate\\Console\\Scheduling\\Schedule;\nuse Illuminate\\Foundation\\Console\\Kernel as C"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Exceptions/Handler.php",
    "chars": 1050,
    "preview": "<?php\n\nnamespace App\\Exceptions;\n\nuse Illuminate\\Foundation\\Exceptions\\Handler as ExceptionHandler;\nuse Throwable;\n\nclas"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/AccountController.php",
    "chars": 2865,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers;\n\nuse App\\Models\\Transaction;\nuse App\\Models\\User;\nuse App\\Support\\Chiconnect\\Acco"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/AuthenticatedSessionController.php",
    "chars": 1231,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse App\\Http\\Requests\\Auth\\LoginReques"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/ConfirmablePasswordController.php",
    "chars": 1089,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse App\\Providers\\RouteServiceProvider"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/EmailVerificationNotificationController.php",
    "chars": 711,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse App\\Providers\\RouteServiceProvider"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/EmailVerificationPromptController.php",
    "chars": 586,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse App\\Providers\\RouteServiceProvider"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/NewPasswordController.php",
    "chars": 2300,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Auth\\Events\\PasswordRes"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/PasswordResetLinkController.php",
    "chars": 1377,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Http\\Request;\nuse Illum"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/RegisteredUserController.php",
    "chars": 1878,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse App\\Models\\User;\nuse App\\Providers"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Auth/VerifyEmailController.php",
    "chars": 900,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse App\\Providers\\RouteServiceProvider"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/Controller.php",
    "chars": 361,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers;\n\nuse Illuminate\\Foundation\\Auth\\Access\\AuthorizesRequests;\nuse Illuminate\\Foundat"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/PayoutController.php",
    "chars": 817,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers;\n\nuse App\\Models\\Payout;\nuse App\\Support\\Chiconnect\\Wallet;\nuse Illuminate\\Http\\Re"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Controllers/ProfileController.php",
    "chars": 1228,
    "preview": "<?php\n\nnamespace App\\Http\\Controllers;\n\nuse App\\Models\\User;\nuse App\\Support\\Chiconnect\\Wallet;\nuse Illuminate\\Http\\Requ"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Kernel.php",
    "chars": 2593,
    "preview": "<?php\n\nnamespace App\\Http;\n\nuse Illuminate\\Foundation\\Http\\Kernel as HttpKernel;\n\nclass Kernel extends HttpKernel\n{\n    "
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Livewire/Auth/RegisterUser.php",
    "chars": 467,
    "preview": "<?php\n\nnamespace App\\Http\\Livewire\\Auth;\n\nuse App\\Models\\User;\nuse Livewire\\Component;\n\nclass RegisterUser extends Compo"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Livewire/ProcessAirtime.php",
    "chars": 1577,
    "preview": "<?php\n\nnamespace App\\Http\\Livewire;\n\nuse App\\Models\\Payout as ModelsPayout;\nuse App\\Support\\Chiconnect\\Info;\nuse App\\Sup"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Livewire/ProcessBank.php",
    "chars": 3109,
    "preview": "<?php\n\nnamespace App\\Http\\Livewire;\n\nuse App\\Models\\Payout as ModelsPayout;\nuse App\\Models\\TransactionReference;\nuse App"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Livewire/Username.php",
    "chars": 823,
    "preview": "<?php\n\nnamespace App\\Http\\Livewire;\n\nuse App\\Models\\User;\nuse Livewire\\Component;\n\nclass Username extends Component\n{\n  "
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/Authenticate.php",
    "chars": 469,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Auth\\Middleware\\Authenticate as Middleware;\n\nclass Authenticate ex"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/EncryptCookies.php",
    "chars": 307,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Cookie\\Middleware\\EncryptCookies as Middleware;\n\nclass EncryptCook"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/PreventRequestsDuringMaintenance.php",
    "chars": 366,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance as Mid"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/RedirectIfAuthenticated.php",
    "chars": 877,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse App\\Providers\\RouteServiceProvider;\nuse Closure;\nuse Illuminate\\Http\\Request;"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/TrimStrings.php",
    "chars": 381,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Foundation\\Http\\Middleware\\TrimStrings as Middleware;\n\nclass TrimS"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/TrustHosts.php",
    "chars": 372,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Http\\Middleware\\TrustHosts as Middleware;\n\nclass TrustHosts extend"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/TrustProxies.php",
    "chars": 649,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Http\\Middleware\\TrustProxies as Middleware;\nuse Illuminate\\Http\\Re"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/ValidateSignature.php",
    "chars": 460,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Routing\\Middleware\\ValidateSignature as Middleware;\n\nclass Validat"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Middleware/VerifyCsrfToken.php",
    "chars": 320,
    "preview": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken as Middleware;\n\nclass V"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Http/Requests/Auth/LoginRequest.php",
    "chars": 2232,
    "preview": "<?php\n\nnamespace App\\Http\\Requests\\Auth;\n\nuse Illuminate\\Auth\\Events\\Lockout;\nuse Illuminate\\Foundation\\Http\\FormRequest"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Models/Payout.php",
    "chars": 306,
    "preview": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Mo"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Models/Transaction.php",
    "chars": 544,
    "preview": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Mo"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Models/TransactionReference.php",
    "chars": 302,
    "preview": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Mo"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Models/User.php",
    "chars": 1002,
    "preview": "<?php\n\nnamespace App\\Models;\n\n// use Illuminate\\Contracts\\Auth\\MustVerifyEmail;\nuse Illuminate\\Database\\Eloquent\\Factori"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Providers/AppServiceProvider.php",
    "chars": 473,
    "preview": "<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Support\\ServiceProvider;\n\nclass A"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Providers/AuthServiceProvider.php",
    "chars": 625,
    "preview": "<?php\n\nnamespace App\\Providers;\n\n// use Illuminate\\Support\\Facades\\Gate;\nuse Illuminate\\Foundation\\Support\\Providers\\Aut"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Providers/BroadcastServiceProvider.php",
    "chars": 380,
    "preview": "<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Support\\Facades\\Broadcast;\nuse Illuminate\\Support\\ServiceProvider;\n\nclas"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Providers/EventServiceProvider.php",
    "chars": 926,
    "preview": "<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Auth\\Events\\Registered;\nuse Illuminate\\Auth\\Listeners\\SendEmailVerificat"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Providers/RouteServiceProvider.php",
    "chars": 1332,
    "preview": "<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Cache\\RateLimiting\\Limit;\nuse Illuminate\\Foundation\\Support\\Providers\\Ro"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/Account.php",
    "chars": 1615,
    "preview": "<?php\n\nnamespace App\\Support\\Chiconnect;\n\nuse Illuminate\\Support\\Facades\\Http;\n\nclass Account\n{\n    public static functi"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/Info.php",
    "chars": 1811,
    "preview": "<?php\n\nnamespace App\\Support\\Chiconnect;\n\nuse Illuminate\\Support\\Facades\\Http;\n\nclass Info\n{\n    public static function "
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/Payout.php",
    "chars": 5801,
    "preview": "<?php\n\nnamespace App\\Support\\Chiconnect;\n\nuse Illuminate\\Support\\Facades\\Http;\n\nclass Payout\n{\n    public static functio"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/SubAccount.php",
    "chars": 633,
    "preview": "<?php\n\nnamespace App\\Support\\Chiconnect;\n\nuse Illuminate\\Support\\Facades\\Http;\n\nclass SubAccount\n{\n    public static fun"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Support/Chiconnect/Wallet.php",
    "chars": 1301,
    "preview": "<?php\n\nnamespace App\\Support\\Chiconnect;\n\nuse Illuminate\\Support\\Facades\\Http;\n\nclass Wallet\n{\n    public static functio"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/Support/Helpers.php",
    "chars": 270,
    "preview": "<?php\n\nif (!function_exists('isAdmin')) {\n    function isAdmin()\n    {\n        return auth()->user()->type == 'admin' ? "
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/View/Components/AppLayout.php",
    "chars": 308,
    "preview": "<?php\n\nnamespace App\\View\\Components;\n\nuse Illuminate\\View\\Component;\n\nclass AppLayout extends Component\n{\n    /**\n     "
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/app/View/Components/GuestLayout.php",
    "chars": 312,
    "preview": "<?php\n\nnamespace App\\View\\Components;\n\nuse Illuminate\\View\\Component;\n\nclass GuestLayout extends Component\n{\n    /**\n   "
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/artisan",
    "chars": 1686,
    "preview": "#!/usr/bin/env php\n<?php\n\ndefine('LARAVEL_START', microtime(true));\n\n/*\n|-----------------------------------------------"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/bootstrap/app.php",
    "chars": 1620,
    "preview": "<?php\n\n/*\n|--------------------------------------------------------------------------\n| Create The Application\n|--------"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/bootstrap/cache/.gitignore",
    "chars": 14,
    "preview": "*\n!.gitignore\n"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/composer.json",
    "chars": 1955,
    "preview": "{\n    \"name\": \"laravel/laravel\",\n    \"type\": \"project\",\n    \"description\": \"The Laravel Framework.\",\n    \"keywords\": [\"f"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/app.php",
    "chars": 7782,
    "preview": "<?php\n\nuse Illuminate\\Support\\Facades\\Facade;\n\nreturn [\n\n    /*\n    |---------------------------------------------------"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/auth.php",
    "chars": 3665,
    "preview": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Authentica"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/broadcasting.php",
    "chars": 2146,
    "preview": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Br"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/cache.php",
    "chars": 3272,
    "preview": "<?php\n\nuse Illuminate\\Support\\Str;\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/chimoney.php",
    "chars": 119,
    "preview": "<?php\n\nreturn [\n    'api_key' => env('CHIMONEY_API_KEY'),\n    'main_account_id' => env('CHIMONEY_MAIN_ACCOUNT_ID'),\n];\n"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/cors.php",
    "chars": 846,
    "preview": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Cross-Orig"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/country_code.php",
    "chars": 6009,
    "preview": "<?php\n\nreturn [\n  \"AF\" => \"Afghanistan\",\n  \"AX\" => \"Aland Islands\",\n  \"AL\" => \"Albania\",\n  \"DZ\" => \"Algeria\",\n  \"AS\" => "
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/database.php",
    "chars": 5289,
    "preview": "<?php\n\nuse Illuminate\\Support\\Str;\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/filesystems.php",
    "chars": 2370,
    "preview": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Fi"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/hashing.php",
    "chars": 1572,
    "preview": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Ha"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/logging.php",
    "chars": 3749,
    "preview": "<?php\n\nuse Monolog\\Handler\\NullHandler;\nuse Monolog\\Handler\\StreamHandler;\nuse Monolog\\Handler\\SyslogUdpHandler;\n\nreturn"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/mail.php",
    "chars": 3600,
    "preview": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Ma"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/queue.php",
    "chars": 2906,
    "preview": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Qu"
  },
  {
    "path": "submissions/chiconnect-laravel-web-app/config/sanctum.php",
    "chars": 2294,
    "preview": "<?php\n\nuse Laravel\\Sanctum\\Sanctum;\n\nreturn [\n\n    /*\n    |-------------------------------------------------------------"
  }
]

// ... and 424 more files (download for full content)

About this extraction

This page contains the full source code of the Chimoney/chimoney-community-projects GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 624 files (1.1 MB), approximately 309.1k tokens, and a symbol index with 543 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!